Выбор ответа Senior BPMN для системного аналитика обновлено

Компенсация в BPMN

Вопрос

Процесс бронирования тура: забронировать отель, забронировать билет. Если билет не забронирован, бронь отеля нужно отменить. Как это выражается средствами BPMN?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Граничное событие компенсации на «Забронировать отель» и задача «Отменить бронь». В BPMN есть встроенный механизм компенсации: компенсирующая задача прикрепляется через граничное событие компенсации к уже выполненной задаче, а промежуточное или конечное событие компенсации её запускает.

Варианты ответа

  1. Исключающий шлюз после «Забронировать билет» с веткой обратно к началу процесса
  2. Аннотация «при ошибке отменить бронь отеля» рядом с задачей бронирования
  3. Параллельный шлюз на обе задачи, чтобы брони шли одновременно
  4. Граничное событие компенсации на «Забронировать отель» и задача «Отменить бронь»правильный ответ

Разбор

В BPMN есть встроенный механизм компенсации: компенсирующая задача прикрепляется через граничное событие компенсации к уже выполненной задаче, а промежуточное или конечное событие компенсации её запускает. Это прямой аналог компенсаций в саге. Возврат к началу процесса не отменяет уже сделанную бронь. Параллельный шлюз про одновременность. Аннотация не задаёт поведение.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме