передача id задачи в параметр диаграммы

Добрый день!

Бизнес-процесс состоит из нескольких задач,
в скрипте процесса в событии onafterexecute каждой задачи
нужно прописать определенный код, для которого нужно знать id задачи. код будет отрабатывать при создании задачи и при ее выполнении.

Вопрос состоит в том, как правильно передать id каждой задачи в свой параметр диаграммы, и потом получить значения параметра в событии onafterexecute задачи?

Спасибо.

Нравится

5 комментариев

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

Для этого модифицируйте элемент процесса "Задача", добавив параметр TaskID:

1

2

и далее, на 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 её в БД.

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