В чем разница между ошибками и компенсационными событиями в BPMN?

Я пытаюсь смоделировать процесс развертывания некоторого программного обеспечения с использованием BPMN. Различные части развертывания могут пойти не так, и я хочу указать на диаграмме, какие шаги следует предпринять в каждом случае.

Сначала казалось, что я должен использовать для этого события «компенсации», но в итоге я использовал события «ошибки». Мне не удалось найти четкое различие между этими двумя понятиями, но лучшее, что я придумал, это то, что «ошибка» указывает, что должно произойти немедленно, если задача выдает ошибку, тогда как «компенсация» указывает, что должно произойти, если когда-нибудь позже процесс необходимо обратить вспять.

Примеры компенсации, которые я видел, — это такие вещи, как турагент, бронирующий отель: задача по отмене бронирования будет тогда компенсационным событием в задаче бронирования. Мне не удалось найти много подходящих примеров «ошибки»: правильно ли я использую «ошибку» в моем случае?


person Allan Lewis    schedule 29.05.2013    source источник


Ответы (2)


Добавление к приведенному ниже ответу ...

Согласно спецификации BPMN стр. 302 "компенсация связана с отменой шагов, которые уже были успешно завершены, поскольку их результаты и, возможно, побочные эффекты больше не желательны и должны быть обращены вспять».

Ошибка имеет свое литературное значение и триггеры ошибок являются критическими и приостанавливают выполнение в месте возникновения.

person arunvg    schedule 11.09.2013

Лучшее, что я могу понять, но это может быть неправдой.

Компенсация позволяет вам что-то исправить, чтобы процесс все еще мог завершиться. Отмена — это отказ от действия. Ошибка — это когда происходит сбой процесса и запускается действие, которое не исправляет процесс.

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

Пример заказа пиццы: если заказ пиццы по телефону или через Интернет был отменен (отмена), никакие компенсирующие действия не требуются. Если платежная система выйдет из строя (ошибка), пользователь должен быть уведомлен, компенсация не будет получена автоматически. Компенсация позволит принять альтернативные меры, например, другие карты, наложенный платеж или вкладку.

Поэтому, если процесс не завершается по стандартному пути, может потребоваться ошибка или компенсация. Если этот альтернативный путь вызывается, но дальнейшая работа (компенсирующие действия) не требуется, то произойдет ошибка. Отмены, как правило, не требуют альтернативных путей.

person Adam Smith    schedule 09.09.2013