Стартовые, промежуточные и конечные события Camunda BPMN

Первое деление по типам — самое очевидное. События могут быть:

  1. Стартовые (start event). Любой процесс в BPMN должен начинаться со стартового события (и при создании диаграммы BPMN в Camunda Modeler стартовое событие создается автоматически). Для StartEvent в Camunda Modeler используется кружок, нарисованный тонкой линией (см. рис.)
Стартовые события в Camunda Modeler

В стандарт BPMN это не входит, но для улучшения читаемости диаграммы стартовые события часто «заливаются» зеленым цветом при помощи соответствующей кнопки на панели инструментов Camunda Modeler. В качестве примера стартового события можно привести, например, ручной запуск процесса в Camunda Tasklist или срабатывание таймера на определенную дату (когда процесс должен стартовать автоматически).

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

Движок Camunda для запуска процесса требует наличия стартового события: без него процесс просто не может быть запущен (в Camunda TaskList вы после нажатия на кнопку Start Process такой процесс просто не увидите в списке).

Стартовые события могут быть разных типов: обычное, событие-сообщение, событие-таймер, условное событие, событие-сигнал. Но эти типы буду рассмотрены в следующих разделах.

  1. Промежуточные события (Intermediate events)— те, которые находятся между стартовыми и конечными событиями.

В BPMN промежуточное событие принято изображать при помощи двойного кружка (пример промежуточного события в Camunda Modeler представлен на рис.)

Промежуточное событие (Intermediate event) в окне Camunda Modeler

Точно так же, как и в случае со стартовыми событиями, для улучшения читаемости промежуточные события принято помечать цветом (желтым), хотя про цвет стандарт BPMN ничего не говорит.

В качестве примера промежуточного сообщения можно привести, например, ожидание отклика заказчика на предложенные условия или наступление определенной даты.

Промежуточные события могут быть размещены на диаграмме не только отдельным элементов, но и на какой-либо задаче (см. рис.)

Задача с двумя промежуточными событиями

В некоторых ситуациях может возникнуть вопрос: использовать ли промежуточное событие или задачу? Теоретически выбор производится исходя из того, нужно ли нам что-то предпринимать или достаточно подождать, пока что-то произойдет. Если нужны какие-то действия с нашей стороны, то это — задача, а если действий не нужно, а требуется просто дождаться чего-то, то это — промежуточное событие. На практике же грань может оказаться достаточно тонкой.

Промежуточные события тоже могут быть разных типов (простое событие, событие-таймер, событие-сообщение, событие-сигнал). Подробнее про типы промежуточных событий рассказывается в следующих разделах.

  1. Конечные события (end events) — события, наступление которых означает завершение бизнес-процесса.

В диаграммах Camunda должно быть по крайней мере одно конечное событие (хотя их вполне может быть и несколько, различных разновидностей). На диаграмме BPMN в Camunda Modeler конечное событие отображается кружком с полужирной линией (она должна быть заметно толще, чем линия, предусмотренная для события начала процесса) — см. рис.

Конечные события на диаграмме Camunda Modeler

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

Если в ходе выполнения конечное событие будет достигнуто в подпроцессе, то управление будет передано родительскому процессу.

Типы конечных событий (события-сообщения, события-сигналы и т.п.) будут рассмотрены в следующих разделах.