Ошибка (Error)
Событие типа
Ошибка
используется для получения или отправления ошибки с заданным кодом. Ошибка
не является исключением, которое представляет из себя техническую ошибку, и должно быть обработано другим образом.Тип события
Ошибка
должен использоваться только для "бизнес-ошибок" (т.е. ошибок бизнес-процесса), а не для технических ошибок в результате исполнения модели процесса.Ошибка
изображается внутри события в виде молнии:
Увеличить
Пример XML-представления
Ошибки
в событии:<bpmn2:errorEventDefinition id="b95b6605-0811-4480-b9f0-42c997c82dd3" errorRef="df314666-c9c7-4161-b742-006d96285d33"/>
Сама
Ошибка
представляет из себя элемент Error
в коде модели (родитель - элемент "definitions"):<bpmn2:error id="df314666-c9c7-4161-b742-006d96285d33" errorCode="ERROR" name="New Error"/>
В качестве
errorCode
также можно добавить название класса пользовательских исключений.При редактировании типа
Ошибка
в таблице "Event Definitions" появляется следующее окно:
Увеличить
Поле "Error" содержит код ожидаемой ошибки. Можно выбрать код из выпадающего списка, который содержит все сохраненные в модели ошибки.
Либо нажать на пиктограмму "плюс" (напротив поля "Error") и в открывшемся окне ввести код ошибки в поле "Error Code":

Увеличить
На вкладке General необходимо ввести имя ошибки в поле "Name".
Поле "Data Type" не используется.
Ошибка
обрабатывается первым подходящим событием, ожидающим ее. Остальные триггеры не срабатывают.- При добавлении в
Граничное Событие (Boundary Event)
типаОшибка
поле "Cancel Activity" в свойствах события пропадает, т.к. в результате ошибки выполнение текущего элемента в любом случае будет прервано и поток будет перенаправлен. - Тип
Ошибка
может быть добавлен вСтартовое Событие (Start Event)
только, если оно стартует подпроцесс, а не сам процесс. При этом такоеСтартовое Событие
будет перехватывать ошибку в процессе, если заданная ошибка произойдет. - Если тип
Ошибка
добавлен вКонечное Событие (End Event)
, то после прихода в него, текущий поток исполнения завершится. Эта ошибка также может запустить дополнительное событие, которое ждет этот тип ошибки. - Если аттрибут "errorRef" не заполнен в типе
Ошибка
дляГраничного События
, то триггер сработает на любую ошибку.

Увеличить

Увеличить

Увеличить

Увеличить