Добрый день!
Бизнес-процесс состоит из нескольких задач,
в скрипте процесса в событии onafterexecute каждой задачи
нужно прописать определенный код, для которого нужно знать id задачи. код будет отрабатывать при создании задачи и при ее выполнении.
Вопрос состоит в том, как правильно передать id каждой задачи в свой параметр диаграммы, и потом получить значения параметра в событии onafterexecute задачи?
Спасибо.
Нравится
Здравствуйте.
Для этого модифицируйте элемент процесса "Задача", добавив параметр TaskID:
и далее, на OnAfterExecute Вы можете считать с этого параметра значение ID задачи.
Добрый день! Спасибо за ответ.
Скажите, но ведь если я помещу строчку WFSetParamValue... в блок IsFinish, то параметр будет заполняться только при выполнении задачи ?
А мне нужно
в скрипте процесса в событии onafterexecute каждой задачи
нужно прописать определенный код, для которого нужно знать id задачи.
код будет отрабатывать при как создании задачи, так и при ее выполнении, т.е. уже при создании задачи нужно заполнение этого параметра.
Дарья, в таком случае переместите эту строку на блок выше: try{ if{ //здесь записываем параметр
Дмитрий, если я перенесу эту строку в блок выше
var IsNewTask = false;
try ( if !(DatasetEmpty(TaskDataset) {
то при создании задачи я в этот блок просто не попадаю, т.к. не выполняется условие
if !(DatasetEmpty(TaskDataset)
Дарья, здравствуйте.
Дело в том, что первый раз при открытии карточки задачи, до нажатия кнопки "ОК" мы и не можем записать значение ID задачи в параметр, т.к. еще не было поста в БД, а значит ID еще не был сгенерирован.
Есть два варианта:
1) При повторном запуске шага, на OnAfterExecute можно будет вытянуть ID задачи, в случае если выполнить этот код:
WFSetParamValue(ActionItem, 'TaskID', TaskID);
в блоке try { if {
2) При повторном запуске шага, на OnAfterExecute можно будет вытянуть ID задачи, если она была переведена в конечное состояние, если выполнить этот код, как показано на скриншоте в первом посте.
Дополнительный "обходной" путь - записывать на AfterPost (если задача была создана из БП) значение поля ID в системную настройку(и), и на OnAfterExecute её считывать. НО! Опять таки, шаг придется запускать повтроно, т.к AfterExecute срабатывает при показе окна задачи, т.е. до фактического Post'a её в БД.