Yuri Kolesnikov
Всем привет!
Столкнулся с кейсом, который вроде как не вписывается в доступные возможности шлюзов
При старте процесса необходимо определить исполнителя основной активности
Варианта для определения исполнителя два:
1. Исполнитель назначается менеджером
2. Исполнитель самостоятельно забирает себе задачу
Оба варианта равноценны и имеет смысл только какой вариант сработает раньше. Если менеджер выполнил свою задачу, то задача для исполнителей должна быть прервана и наоборот: если кто-то из исполнителей забрал задачу себе, то UserTask для менеджера должен быть прерван и процесс идет дальше.
Функционал Exclusive gateway не подходит, так как мы должны одновременно запустить оба UserTask, а Parallel gateway ждет два токена для продолжения процесса.
Кто-нибудь сталкивался с похожими кейсами? Буду рад любым соображениям.
Решали это ролями (группами в понятиях камунды). Есть роли Assign (Назначить исполнителя) и Work (выполнить задачу). В CandidateGroups пишем обе роли. И менеджер и сотрудник видят нераспределенные задачи в UI. Для первого активна кнопка Назначить, для второго - Взять в работу. И та и другая проставляют в задаче Assignee. После этого таску видит только назначенный исполнитель