Сигнал (Signal)
Событие типа
Сигнал
используется для получения или отправления сигнала.Сигнал
отличается от Сообщения
, тем что Сообщение
адресуется конкретному получателю, а Сигнал
распространяется по принципу "broadcast" (широковещательная рассылка) и получается всеми ожидающими его Событиями
.
Сигнал
- это глобальное событие, и оно доставляется всем активным процессам.Сигнал
изображается внутри события в виде треугольника:
Увеличить
Пример XML-представления
Сигнала
в событии:<bpmn2:signalEventDefinition id="ef3d2fff-d721-4280-ac02-608e7692ef45" signalRef="b73cce34-0492-466e-9651-86d8a0fe0154"/>
Атрибут "signalRef" является ссылкой на глобальный сигнал.
Сам
Сигнал
представляет из себя элемент "signal" в коде модели (родитель - элемент "definitions"):<bpmn2:signal id="b73cce34-0492-466e-9651-86d8a0fe0154" name="New Signal"/>
В атрибут "name" можно написать выражение с переменными контекста.
При редактировании типа
Сигнал
в таблице "Event Definitions" появляется следующее окно:
Увеличить
Поле "Signal" содержит имя ожидаемого сигнала. Можно выбрать имя из выпадающего списка, который содержит все сохраненные в модели сигналы.
Либо нажать на пиктограмму "плюс" (напротив поля "Signal") и в открывшемся окне на вкладке "General" ввести имя сигнала в поле "Name".
Поле "Data Type" на вкладке "Signal" не используется:

Увеличить
- У
Стартовых Событий
, если их несколько, в процессе не должны бытьСигналы
с одинаковыми ссылками или одинаковыми именами. - Если поток исполнения приходит в
Конечное Событие с сигналом
, то происходит отправка данного сигнала и исполнение завершается.

Увеличить