13.01.2021, 04:36 | #1 |
Участник
|
Пропуск шага в Workflow по условию
Ситуация такая: есть workflow в котором есть цепочка шагов подтверждения с разными пределами по сумме
Шаг 1 - до 2000 - подтверждает группа пользователей 1 Шаг 2 - до 10000 - подтверждает группа пользователей 2 Шаг 3 - до 15000 - подтверждает группа пользователей 3 При этом есть шанс что в группе 1 и в группе 2 будет один и тот же пользователь. Задача проанализировать шаги, и если действительно шаг 1 и шаг 2 пересекаются по позователям то надо чтобы Шаг 1 или пропустился или само-подтвердился, чтобы мы сразу перешли к шагу 2. Я покопался в коде и пока что решил это в методе insert() на таблице WorkflowWorkItemTable, но мне не очень нравится это решение. Мне кажется что должно быть место получше. Нашел класс SysWorkflowWorkItemHelper где есть метод sipWorkItem(), но к сожалению когда я возвращаю True для пропуска первого шага весь процесс рушится дальше по коду с ошибкой - не найтен шаг. Кто нибудь возился в этом движке?
__________________
С уважением, Dozer |
|
13.01.2021, 10:57 | #2 |
Banned
|
В свое время хотели сделать что-то подобное в Ax2012 (следующий шаг видит контекст предыдущего) и сдались в итоге: пусть одобряют по два раза. В D365 там вообще расширять чертовски тяжело, все пометили как not hookable.
|
|
15.01.2021, 13:35 | #3 |
Участник
|
Цитата:
Сообщение от Dozer
Ситуация такая: есть workflow в котором есть цепочка шагов подтверждения с разными пределами по сумме
Шаг 1 - до 2000 - подтверждает группа пользователей 1 Шаг 2 - до 10000 - подтверждает группа пользователей 2 Шаг 3 - до 15000 - подтверждает группа пользователей 3 При этом есть шанс что в группе 1 и в группе 2 будет один и тот же пользователь. Задача проанализировать шаги, и если действительно шаг 1 и шаг 2 пересекаются по позователям то надо чтобы Шаг 1 или пропустился или само-подтвердился, чтобы мы сразу перешли к шагу 2. Я покопался в коде и пока что решил это в методе insert() на таблице WorkflowWorkItemTable, но мне не очень нравится это решение. Мне кажется что должно быть место получше. Нашел класс SysWorkflowWorkItemHelper где есть метод sipWorkItem(), но к сожалению когда я возвращаю True для пропуска первого шага весь процесс рушится дальше по коду с ошибкой - не найтен шаг. Кто нибудь возился в этом движке? Шаг1 <=2000 Шаг2 >2000 <=10000 Шаг3 >10000 ? |
|
Теги |
ax, d365 for operations, workflow |
|
|