Подпроцесс Транзакция

Время чтения: 1 мин. 706 просмотров

Определение и обозначение подпроцесса “Транзакция”

Транзакция BPMN – это подпроцесс, для которого может быть задано несколько вариантов выхода:

    1. Успешное завершение – изображается в виде потока операций, выходящего из транзакции.

Транзакция изображается на диаграмме в виде прямоугольника с закругленными углами, выполненного двойной тонкой линией:

Обозначение подпроцесса транзакции BPMN

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

Пример подпроцесса “Транзакция”

На диаграмме ниже приведен пример подпроцесса «Транзакция» BPMN:

Пример подпроцесса транзакции BPMN

В качестве примера Транзакции приведен подпроцесс «Организация путешествия». Подпроцесс инициируется из родительского процесса и заключается в параллельном выполнении двух действий: бронирование авиабилета и бронирование отеля. При успешном выполнении обоих действий подпроцесс завершается успешно и родительский процесс переходит к задаче оплаты бронирования.

Если хотя бы одно из действий «Забронировать авиабилет» или «Забронировать отель» выполняется с ошибкой (например, ошибка системы бронирования на сайте), то подпроцесс «Транзакция» последовательно выполняет следующие действия:

  • Инициирует граничное прерывающее событие «Ошибка при бронировании». При этом события-компенсации не происходят и задачи-компенсации не выполняются.
  • Родительский процесс продолжает выполнение через задачу «Обратиться в службу поддержки клиентов».

Если на любом этапе бронирования потребовалась отмена бронирования (например, клиент пожелал отменить бронирование, то подпроцесс «Транзакция» BPMN последовательно выполняет следующие действия:

  • Инициирует все граничные события-компенсации и выполняет все задачи-компенсации. Это задачи «Отменить бронирование» и «Отправить уведомление об отмене брони».
  • Инициирует граничное прерывающее событие «Бронирования отменены». При этом родительский процесс продолжает выполнение через задачу «Отправить уведомление об отмене».

Оставьте комментарий

Нажимая кнопку "Отправить комментарий" вы даёте согласие на обработку персональных данных в соответствии с политикой конфиденциальности

Поделиться этой страницей

Подпроцесс Транзакция

Или скопируйте ссылку

СОДЕРЖИМОЕ