После проверки наличия поставьте исключающий шлюз с ветками «товар доступен» и «товара нет». Вторая ведёт к уведомлению и отдельному завершению, не проходя через резервирование и оплату.
Как показать отсутствие товара альтернативной веткой BPMN
После проверки наличия поставьте исключающий шлюз с ветками «товар доступен» и «товара нет». Вторая ведёт к уведомлению и отдельному завершению, не проходя через резервирование и оплату.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Основной процесс заказа: проверить наличие → зарезервировать товар → передать в оплату. Если товара нет, клиент получает уведомление, а заказ закрывается без оплаты. Как отразить альтернативу в BPMN?
Ответ
После проверки наличия поставьте исключающий шлюз с ветками «товар доступен» и «товара нет». Вторая ведёт к уведомлению и отдельному завершению, не проходя через резервирование и оплату.
Внутри одного процесса схема читается так:
Старт → Проверить наличие → XOR
доступен → Зарезервировать → Передать в оплату → Завершить ветку
недоступен → Уведомить клиента → Завершить без оплаты
Условия на выходах должны исключать одновременный выбор обеих веток. Это бизнес-результат проверки, а не техническое исключение сервиса. Отдельно моделируется отказ самого запроса к складу: отсутствие ответа ещё не означает отсутствие товара. Если уведомление показано как обмен с другим участником в отдельном пуле, его обозначают потоком сообщений, а не потоком управления через границу пулов.
Источник: www.omg.org.