Открыть сервис

События BPMN

Событие BPMN — это элемент нотации моделирования бизнес-процессов (Business Process Model and Notation, BPMN 2.0), обозначающий нечто происходящее в ходе выполнения процесса. События влияют на поток управления: они могут запускать процесс, изменять его ход, прерывать или завершать его. В отличие от задач (действий) и шлюзов (точек ветвления), события имеют триггер — причину, по которой они наступают, и результат — последствие для процесса. События визуально обозначаются кругами, внутри которых размещаются маркеры, указывающие на тип триггера.

Классификация событий

События BPMN классифицируются по двум основным признакам: положению в процессе (тип по потоку) и характеру триггера (тип по причине).

По положению в потоке

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

  • Стартовые события (Start Events) — находятся в начале процесса. Они определяют, при каких условиях процесс запускается. Без стартового события процесс не может начаться. Стартовое событие может быть только одно на диаграмме (если процесс не является пулом с несколькими независимыми стартами).
  • Промежуточные события (Intermediate Events) — располагаются между задачами и шлюзами внутри потока. Они не начинают и не завершают процесс, а лишь ожидают наступления определённого условия (например, получения сообщения) или генерируют результат (например, отправляют уведомление). Промежуточные события могут быть как «ловящими» (Catching), так и «бросающими» (Throwing).
  • Конечные события (End Events) — завершают поток процесса. Когда процесс доходит до конечного события, все действия в данной ветви прекращаются. Конечное событие может быть только одно на поток, но в параллельных ветвях их может быть несколько.

По типу триггера

Триггер определяет, что именно вызывает наступление события. Основные типы триггеров:

  • Пустой (None) — событие без явно заданного триггера. Используется для стартовых и конечных событий в простых процессах, где не требуется дополнительной логики запуска или завершения.
  • Сообщение (Message) — событие, связанное с получением или отправкой сообщения. Сообщение может быть как внутренним (между участниками одного процесса), так и внешним (от другого процесса или системы). Визуализируется конвертом.
  • Таймер (Timer) — событие, наступающее по истечении заданного времени, в определённый момент времени или по расписанию. Используется для задержек, ожидания даты или периодического запуска. Визуализируется часами.
  • Ошибка (Error) — событие, сигнализирующее о возникновении ошибки в процессе. Обычно используется для прерывания потока и перехода к обработке ошибки. Визуализируется молнией.
  • Эскалация (Escalation) — событие, указывающее на необходимость перехода на более высокий уровень управления (например, при превышении лимита времени или ресурсов). Визуализируется стрелкой вверх.
  • Условие (Conditional) — событие, наступающее при выполнении некоторого логического условия. Например, «если температура превышает 100°C». Визуализируется листом бумаги с загнутым углом.
  • Ссылка (Link) — событие, используемое для соединения разрывов в диаграмме (например, при переходе на другую страницу или для упрощения сложных потоков). Визуализируется стрелкой.
  • Сигнал (Signal) — событие, которое широковещательно передаётся всем участникам процесса. В отличие от сообщения, которое адресовано конкретному получателю, сигнал могут «поймать» несколько процессов. Визуализируется треугольником.
  • Прерывание (Terminate) — конечное событие, которое немедленно завершает все параллельные ветви процесса (в отличие от обычного конечного события, завершающего только текущую ветвь). Визуализируется жирной точкой.
  • Множественное (Multiple) — событие, которое может быть вызвано одним из нескольких триггеров (для ловящих) или генерировать несколько результатов (для бросающих). Визуализируется пятиугольником.

Стартовые события

Стартовые события определяют, как процесс инициируется. Наиболее распространённые типы:

  • Пустое стартовое событие — процесс начинается сразу после его активации (например, при запуске экземпляра процесса вручную).
  • Стартовое событие по таймеру — процесс запускается в заданное время или по расписанию. Пример: «Ежедневно в 8:00 запускать процесс проверки остатков».
  • Стартовое событие по сообщению — процесс начинается при получении сообщения от другого процесса или внешней системы. Пример: «При получении заказа от клиента запустить процесс обработки заказа».
  • Стартовое событие по сигналу — процесс запускается при получении широковещательного сигнала. Пример: «При сигнале «Начало рабочего дня» запустить процесс учёта рабочего времени».
  • Стартовое событие по условию — процесс запускается, когда выполняется некоторое условие (например, изменение данных в базе). В BPMN 2.0 такое событие используется редко, чаще применяется в расширениях.

Промежуточные события

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

  • Промежуточное событие-таймер — ожидает заданное время (например, «ждать 2 дня») или наступления даты. Часто используется для создания задержек.
  • Промежуточное событие-сообщение (ловящее) — ожидает получения сообщения. Пример: «Ожидать подтверждения от руководителя».
  • Промежуточное событие-сообщение (бросающее) — отправляет сообщение другому процессу или участнику. Пример: «Отправить уведомление клиенту».
  • Промежуточное событие-сигнал (ловящее) — ожидает получения сигнала. Пример: «Ожидать сигнал о завершении параллельной ветви».
  • Промежуточное событие-ошибка (ловящее) — используется в границах подпроцессов для перехвата ошибок. Пример: «При возникновении ошибки «Недостаточно средств» перейти к задаче «Запросить пополнение»».

Конечные события

Конечные события завершают поток. Основные типы:

  • Пустое конечное событие — просто завершает поток без дополнительных действий.
  • Конечное событие-сообщение — при завершении потока отправляет сообщение. Пример: «Отправить уведомление о завершении процесса».
  • Конечное событие-ошибка — завершает поток с указанием ошибки. Используется для передачи ошибки на более высокий уровень.
  • Конечное событие-прерывание (Terminate) — немедленно завершает все параллельные ветви процесса. Пример: «При обнаружении критической ошибки немедленно остановить все операции».

События в подпроцессах и границах

События могут быть привязаны к границам подпроцессов (как прерывающие, так и непрерывающие). Это позволяет реагировать на внешние условия, не изменяя внутреннюю логику подпроцесса.

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

Применение событий в моделировании

События BPMN используются для:

  • Автоматизации бизнес-процессов — события позволяют связать процесс с внешними системами (ERP, CRM, базы данных) через сообщения и сигналы.
  • Управления временем — таймеры задают сроки выполнения, задержки и расписания.
  • Обработки исключений — события ошибок и эскалаций позволяют корректно реагировать на сбои.
  • Организации взаимодействия между процессами — сообщения и сигналы обеспечивают обмен данными между разными процессами или участниками.
  • Моделирования сложных сценариев — множественные события и граничные события позволяют описывать параллельные и альтернативные пути выполнения.

Примеры использования

  • Процесс обработки заказа в интернет-магазине: стартовое событие по сообщению («Получен новый заказ»), промежуточное событие-таймер («Ожидать оплаты 3 дня»), промежуточное событие-сообщение («Получено подтверждение оплаты»), конечное событие-сообщение («Отправить уведомление о готовности заказа»).
  • Процесс согласования документа: стартовое событие по сообщению («Документ отправлен на согласование»), промежуточное событие-таймер («Ожидать согласования 5 рабочих дней»), граничное событие-эскалация («При превышении срока отправить напоминание руководителю»), конечное событие-ошибка («Если документ отклонён, завершить процесс с ошибкой»).

Критика и ограничения

Нотация BPMN 2.0, включая события, критикуется за избыточную сложность для простых процессов. Многие типы событий (например, множественные, эскалации) редко используются на практике, что затрудняет понимание диаграмм неподготовленными пользователями. Кроме того, события, связанные с сообщениями и сигналами, требуют чёткого определения интерфейсов взаимодействия между системами, что не всегда реализуемо без дополнительной технической документации.

Источники

  • Business Process Model and Notation (BPMN), Version 2.0. Object Management Group (OMG), 2011.
  • Silver B. BPMN Method and Style. — Cody-Cassidy Press, 2011.
  • Freund J., Rücker B. Real-Life BPMN: Using BPMN 2.0 to Analyze, Improve, and Automate Processes. — CreateSpace Independent Publishing Platform, 2014.
  • ГОСТ Р ИСО 19440-2018 «Интеграция автоматизированных систем. Моделирование бизнес-процессов. Нотация BPMN».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →