Как использовать событие «сигнал» в Bizagi. Прилагаемая бизнес-ситуация состоит из родительского процесса, в котором создаётся некое количество авторов (Collection), с которыми ведутся переговоры, что порождает соответствующее количество подпроцессов «Переговоры с авторами». В подпроцессе фиксируются некие переговорные данные и решением исполнителя подпроцесс может быть завершён. И в то же время в родительском процессе реализован мониторинг стадий переговоров и возможность, при наличии успешного завершения переговоров хотя бы с одним автором, завершить автоматически все остальные подпроцессы переговоров. В противном случае, у исполнителя могут «зависнуть» экземпляры процессов, которые уже не имеют смысла.

Это реализовывается с помощью события типа «сигнал», которое будет отправляться во все незавершённые подпроцессы «Переговоры с авторами», после принятия ответственным исполнителем соответствующего решения на уровне родельского процесса.


В родительском процессе размещается событие типа «сигнал», которе отправляет необходимый сигнал.

signal

Соответственно, в подпроцессе размещается событие типа «сигнал», которое принимает отправленный сигнал и отправляет маркер на дополнительную ветку завершения подпроцесса.

signal1

Так как событие типа «сигнал» отправляет широковещательный сигнал, то для идентификации приёмником отправленного сигнала необходимой настройкой будет присвоение одинакового имени и событию-отправителю, и событию-приёмнику. Никакие дополнительные настройки не требуются.