Не отрабатывает элемент процесса "Изменить права доступа", при запуске процесса используя AppScheduler

Здравствуйте.

Создал БП UsrTestChangeRight, содержащий только элемент "Изменить права доступа". Запуская процесс вручную, через раздел "Библиотека процессов", он отрабатывает и в таблицу SysAccountRight добавляются записи.
Но если запускать процесс используя AppScheduler, он завершается без ошибок (появляется запись в журнале процессов) но записи в таблице SysAccountRight не добавляются. Запуск происходит при сохранении контрагента, пробовал использовать элемент "Изменить права доступа" напрямую в событийном подпроцессе замещающей схемы, но там нет возможности открыть окно настроек этого элемента.
Код запуска через AppScheduler:

Dictionarystring, object> parameters = new Dictionarystring, object>();
AppScheduler.ScheduleImmediateProcessJob("TestChangeRight", "Account", "UsrTestChangeRight", "Default", "Supervisor", parameters);

Подскажите пожалуйста, в чем может быть проблема?
И какие еще есть способы запустить БП из серверного кода, с передачей параметров?

Насколько я понимаю когда БП запускается через AppScheduler, не получиться получить UserConnetion, какие есть альтернативы UserConnetion, для того что бы подобный код работал:

StoredProcedure SomeProcedure= new StoredProcedure(UserConnection, "SomeProcedure") as StoredProcedure;
SomeProcedure.PackageName = UserConnection.DBEngine.SystemPackageName;
SomeProcedure.Execute();
return true;

Нравится

3 комментария

Здравствуйте!

Как-то все смешалось.
UserConnection берется пользователя, указанного в параметре userName. Вы точно передаете корректные параметры в процесс?

По вызову хранимой процедуры из элемента "Задание-сценарий". Корректный вызов следующий:
StoredProcedure SomeProcedure = new StoredProcedure(UserConnection, "SomeProcedure") as StoredProcedure;
SomeProcedure.Execute();

Также Вы можете задавать права доступа непосредственно из процедурой SomeProcedure, вызвав ее из процесса, передавая в нее нужные параметры, например, Id записи. Код элемента "Задание-сценарий":

var Id=new.Guid("e24018bf-4ef6-49ef-a331-4fdb6b742e4c");
StoredProcedure SomeProcedure = new StoredProcedure(UserConnection, "SomeProcedure")
.WithParameter("Id", Id) as StoredProcedure;
SomeProcedure.Execute();
return true;

Алексей, со второй частью понятно. А что насчет первой "не отрабатывает элемент процесса "Изменить права доступа", при запуске процесса используя AppScheduler" и какие еще есть способы запустить БП из серверного кода, с передачей параметров?

Как вариант вызвать процесс через вебсервис. Более подробно описано здесь.

Показать все комментарии