Начальные события в BPMN
Краткий ликбез по начальным (стартовым) событиям BPMN
-
Должен ли каждый процесс иметь начальное событие?
-
Обязательно ли давать имя начальному событию?
-
Сколько начальных событий может процесс?
-
Сколько Message Start Event может иметь процесс?
-
Сколько Timer Start Event может иметь процесс?
-
Какие еще ограничения накладываются на стартовые события?
Давайте разберем эти вопросы подробнее.
Должен ли процесс иметь начальное событие?
Как известно из CBOK, каждый процесс имеет входы и выходы. В BPMN в роли такой входной точки выступает Начальное событие (Start Event).
(неопределенное стартовое событие)
Если мы попытаемся задеплоить в Camunda модель процесса с отсутствующим начальным событием, система не даст этого сделать, выдав ошибку формата:
-
process must define a startEvent element
Таким образом, каждый процесс должен иметь как минимум одно начальное событие.
Обязательно ли давать имя начальному событию?
На примере выше мы видим фрагмент процесса обработки заявления на отпуск. Сотрудник формирует заявление на портале, нажимает кнопку "Отправить", после чего запускается процесс. Входные данные процесса – заявление на отпуск. Согласно лучшим практикам Camunda, имя события должны описывать состояние процесса – "Получено новое заявление на отпуск".
Хорошей практикой будет указать имя события, которое будет отражать состояние процесса на момент запуска или указывать на основании чего запускается процесс.
Сколько может быть начальных событий и какими они могут быть?
Предположим, сотрудник может отправить заявление на отпуск не только через корпоративный портал, но и составить его на бумаге.
Для обработки такого заявления наш процесс потребует дополнительную задачу – сотрудник кадровой службы переносит заявление из бумажного оригинала в электронную форму. Логично предположить, что процесс будет иметь дополнительное начальное событие, которое будет использоваться в том случае, если заявление составлено на бумаге.
Однако, есть нюансы.
Процесс не может иметь несколько простых начальных событий (None Start Event).
Обходным решением может быть применение начального события-сообщения (Message Start Event). С точки зрения пользовательского интерфейса это событие может выглядеть как кнопка, доступная только сотруднику с ролью "Кадровая служба", ответственного за прием заявления и перенос его "в цифру".
Нотация BPMN не накладывает ограничение на число начальных событий-сообщений. Однако, если процесс предполагается сделать исполняемым, необходимо присвоить событиям-сообщениям разные имена (Message Name). Иначе система не даст развернуть описание процесса, выдав ошибку:
-
Cannot have more than one message event subscription with name 'Message_document' for scope
Если процесс имеет более одного Message Start Event, они должны иметь разные имена. Точно такие требования предъявляются к начальным событиям типа Signal Event и Conditional Event.
Тип события Условие (Conditional Event) не поддерживается в Camunda 8!
Сколько Timer Start Event может иметь процесс?
Процесс может запускаться начальным событием-таймером (Timer Start Event).
Однако, в процессе не может быть более одного начального события такого типа, иначе система вернёт ошибку при развертывании:
-
multiple none start events or timer start events not supported on process definition
Какие еще ограничения применяются для начальных событий?
Дополнительные ограничения имеют начальные события, используемые в подпроцессах (Subprocesses).
-
Встраиваемый подпроцесс (Embedded Subprocess) может начинаться только с простого события (None Start Event). Причем такое событие может быть только в единственном экземпляре.
-
Подпроцесс по событию (Event Subprocess) в качестве начального события помимо Message и Signal Event, может также иметь: Escalation Event, Error Event, а также Conditional Event (только для Camunda 7).
Итого
В Camunda, согласно нотации BPMN процесс должен иметь:
-
как минимум одно начальное событие (Start Event);
-
не более одного события типа None (Blank) или Timer;
-
Может быть множественные стартовые события типа Signal, Message, Condition (при этом их условия-имена должны быть уникальными).
А еще больше интересной и полезной информации вы сможете узнать на наших тренингах по Camunda.
другие статьи