Показать сообщение отдельно
Старый 15.01.2021, 13:35   #3  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от 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
?