Сигнал (Signal)

Описание

Событие типа Сигнал используется для получения или отправления сигнала.
Сигнал отличается от Сообщения, тем что Сообщение адресуется конкретному получателю, а Сигнал распространяется по принципу "broadcast" (широковещательная рассылка) и получается всеми ожидающими его Событиями. Сигнал - это глобальное событие, и оно доставляется всем активным процессам.

Графическое представление

Сигнал изображается внутри события в виде треугольника:
Signal

Увеличить

XML-представление

Пример 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

При редактировании типа Сигнал в таблице "Event Definitions" появляется следующее окно:
Signal

Увеличить

Поле "Signal" содержит имя ожидаемого сигнала. Можно выбрать имя из выпадающего списка, который содержит все сохраненные в модели сигналы. Либо нажать на пиктограмму "плюс" (напротив поля "Signal") и в открывшемся окне на вкладке "General" ввести имя сигнала в поле "Name". Поле "Data Type" на вкладке "Signal" не используется:
Signal

Увеличить

Особенности

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

Пример использования

Signal

Увеличить

Предыдущий раздел
Элемент Error
Следующий раздел
Gateways
Была ли страница полезной?