Проблемы с запуском БП из задания-сценария другого БП

Не удается реализовать те приёмы что описаны в топике https://community.terrasoft.ru/forum/topic/25071#comment-68913.

Прошу помощи или подсказки как всё таки организовать вызов Бп изи задания сценария, при условии что это задание сценарий не для интерпретируемого процесса.

Самая частая ошибка о том что у UserConnection.ProcessSchemaManager нет такого метода как GetInstanceByName.

При том как в вышеуказанном топике посоветовал реализовать вызов Мотков Илья не происходит ничего, даже ошибок никаких нет.

Нравится

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

var processSchema = manager.GetInstanceByName("NrbSendDeadlineEmail");
var flowEngine = new FlowEngine(userConnection);
Dictionary parameter = new Dictionary();
parameter.Add("Case", caseId.ToString());
flowEngine.RunProcess(processSchema, parameter);

Так же этот прием не работает, который был указан в топике что выше постом.

Итак на данный момент сложилась вот такая ситуация.
Из БП-1 вызывается БП-2 (листинг кода ниже) -

string schedulerJobGroupName = "CreateOtkActivityProcessGroup";//- Любое имя группы триггеров
string jobProcessName = "CreateOtkActivityProcess"; //- Название процесса, который нужно запустить
string schedulerJobName = "CreateOtkActivityJobName"; //- Любое имя
 
IDictionary<string, object> parameters = new Dictionary<string, object>();
parameters["AccountId"] = Guid.Parse("9f1b2cce-f98c-4f52-b4da-04cae9e307ad"); //AccountId это параметр в БП-2 с типом Уникальный идентификатор
 
var job = AppScheduler.CreateProcessJob(schedulerJobName,
										schedulerJobGroupName,
										jobProcessName,
										UserConnection.Workspace.Name,
										UserConnection.CurrentUser.Name,
										parameters);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow);
AppScheduler.Instance.ScheduleJob(job, trigger);
 
return true;

БП-2 в свою очередь начинает выполняться и завершается, но есть одно НО.
Ни один из элементов этого БП так и не начал выполняться, т.е. БП-2 завершился без выполнения каких либо действий.
Скрины для данного поведения:
http://prntscr.com/fk1173
http://prntscr.com/fk11gu

Но как только мы сами запускаем БП-2 то наблюдаем его реальный процесс жизни, т.е. те элементы что в нём присутствуют отрабатывают согласно логике.
http://prntscr.com/fk127z

Что вобще происходит и что не так то? Уже все возможные статьи изучены и просмотрены, но понимание сути никак не приходит.

var processSchemaManager = (ProcessSchemaManager)UserConnection.GetSchemaManager(@"ProcessSchemaManager");
var processSchema = processSchemaManager.GetInstanceByName(@"CreateOtkActivityProcess");
 
var process = processSchema.CreateProcess(UserConnection);
process.SetPropertyValue(@"AccountId", accountCollection[accountIndex]);
process.SetPropertyValue(@"OwnerId", contactCollection[contactIndex]);
process.Execute(UserConnection);

Тему можно считать закрытой.

Хотелось бы добавить, что запускаемый процесс необходимо сделать компилируемым, иначе будет ошибка.

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