Проблемы с запуском БП из задания-сценария другого БП
Не удается реализовать те приёмы что описаны в топике https://community.terrasoft.ru/forum/topic/25071#comment-68913.
Прошу помощи или подсказки как всё таки организовать вызов Бп изи задания сценария, при условии что это задание сценарий не для интерпретируемого процесса.
Самая частая ошибка о том что у UserConnection.ProcessSchemaManager нет такого метода как GetInstanceByName.
При том как в вышеуказанном топике посоветовал реализовать вызов Мотков Илья не происходит ничего, даже ошибок никаких нет.
Нравится
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);
Тему можно считать закрытой.
Хотелось бы добавить, что запускаемый процесс необходимо сделать компилируемым, иначе будет ошибка.