Все элементы BPMN с описанием
Подробная справка обо всех элементах BPMN с хорошими и плохими примерами
Group
Используется для визуального объединения элементов
Compensation Activity
Используется для действия компенсации
Business Rule Task
Задача-выполнение бизнес-правила со значком в виде таблицы появилась в BPMN 2.0. Она изображает автоматическое принятие сложного решения по бизнес-правилам. Условия и алгоритм принятия решения описывается описывают нотацией DMN и их использует движок бизнес правил.
Используется для получения сообщения от другого процесса
Задача-выполнение сценария означает автоматизированную функцию, выполняемую самим процессным движком. Сценарий — это короткий программный код (скрипт), например, на языке JavaScript или Groovy, встроенный в XML-определение процесса. Процессный движок не предназначен для выполнения сложных расчетов, его основное назначение — реализация процессной логики. Поэтому задача-выполнение сценария обычно используется для простых вычислений, таких как копирование данных.
Если модель неисполняемая, не пользуйтесь задачами на выполнение сценария, а моделируйте все автоматические действия с помощью задач на вызов сервиса.
Используется для отправки сообщения в другой процесс
Lane
Используется для отображения участника процесса
Плохой пример
Любое использование дорожек: увеличивает размер модели; тяжелей увидеть основной, успешный сценарий (happy path) - он идёт ломанной линией из одной дорожки в другую.
Start interrupting compensation event
Используется для старта подпроцесса-обработчика компенсации и прерывания родительского процесса
Плохой пример
Подпись не соответствует типу события-инициатора компенсации.
У задачи "Забронировать билеты" из прикрепленного события нет исходящего потока.
Неуместно использованы события: инициатор и обработчик сигнала
intermediate attached interrupting compensation catch event
Используется для старта обработки компенсации и прерывании родительского элемента
Плохой пример
В схеме отсутствуют событие-инициатор компенсации.
У события-обработчика компенсации, прикрепленного к верхней задачи отсутствует выходящий поток и задача по её отмене.
End compensation throw event
Используется для завершения процесса (или уничтожения токена) и отправки компенсации
intermediate compensation throw event
Используется для отправки компенсации
End terminate throw event
Используется для уничтожения всех токенов в процессе и завершение процесса
intermediate attached interrupting cancel catch event
Используется для обработки отмены от родительского действия
End cancel throw event
Используется для завершения текущего процесса (или уничтожения токена) и отправки отмены
Start interrupting error event
Используется для старта процесса из-за ошибки
intermediate attached interrupting error catch event
Используется для обработки ошибки, полученной в рамках действия
End error throw event
Используется для отправки ошибки и завершения процесса (или уничтожения токена)
Multi-Instance Loop
Используется для выполнения действия по набору объектов
Standard Loop
Используется для демонстрации выполнения действия до определённых условий
Event Subprocess
Используется для логики процесса, которая может произойти в любой момент, пока жив основной процесс
Ad Hoc Subprocess
Используется для действия, которое выполняется по инициативе исполнителя одной из задач процесса
Transactional Subprocess
Используется для части процесса, которая либо выполнится вместе, либо не будет выполнена вообще
Call Activity
Используется для вызова другого процесса, нарисованного не на этой диаграмме
Association Flow
Используется для соединения элементов и объектов данных
Message Flow
Используется для соединения сообщений и\или пулов, отображает отправку сообщений
Sequence Flow
Используется для передачи работы между элементами процесса
Annotation
Используется для текстового комментария к элементах схемы
Black Box Pool
Используется для клиентов, систем и других участников взаимодействия, чье поведение мы не знаем
Pool
Используется для показа бизнес-процесса и\или участников взаимодействия
Parallel Gateway
Используется для разделения потока управления
Complex Gateway
Используется для сложных сценариев разветвления
Event Gateway
Используется для развилки по потенциальным событиям
Exclusive Gateway
Используется для развилки по одному потоку управления
Inclusive Gateway
Используется для выбора конкретных потоков управления
Start non-interrupting signal event
Используется для старта подпроцесса обработчика по сигналу.
Не прерывает родительский процесс
intermediate attached interrputing signal catch event
Используется для ожидания получения сигнала, пока активно родительское действие, и его прерывания при получении сигнала
Start signal event
Используется для старта процесса по сигналу
Start interrupting signal event
Используется для старта подпроцесса обработчика по сигналу и прерывания родительского процесса
intermediate signal catch event
Используется для ожидания получения сигнала
intermediate attached non-interrputing signal catch event
Используется для ожидания получения сигнала, пока активно родительское действие.
Не прерывает родительское действие
intermediate signal throw event
Используется для отправка сигнала
End signal throw event
Используется для отправка сигнала и завершение текущего процесса (или уничтожение токена)
None end event
Используется для завершения процесса (или уничтожения токена)
None start event
Используется для старта процесса
None catch event
Используется для отображения важного события в рамках процесса
intermediate attached interrupting message catch event
Используется для точки ожидания сообщения, пока активно действие и его уничтожения по получению сообщения
Плохой пример
1) "Покупатель оплатил заказ" - прерывающий тип не соответствует подписи - непрерывающему событию.
2) "Прошло 3 часа" - тип события-сообщения не соответствует подписи. Уместно использовать событие-таймер
End message throw event
Используется для завершения текущего процесса (или уничтожения токена) и отправки сообщения другому участнику взаимодействия
Start non-interrupting message event
Используется для старта встроенного подпроцесса обработчика по сообщению пока активен родительский процесс.
Не прерывает родительский процесс.
intermediate message catch event
Используется для отображения точки ожидания сообщения от другого участника взаимодействия
intermediate message throw event
Используется для точки отправки сообщения другому участнику взаимодействия
intermediate attached non-interrputing message catch event
Используется для точки ожидания сообщения, пока активно родительское действие.
Не прерывает родительское действие.
Плохой пример
1) "Покупатель отказался заказ" - непрерывающий тип не соответствует подписи - прерывающему событию.
2) "Прошло 3 часа" - тип события-сообщения не соответствует подписи. Уместно использовать событие-таймер
Start message event
Используется для старта процесса при получении сообщения от других участников взаимодействия
Start interrupting message event
Используется для старта встроенного подпроцесса обработчика по сообщению и уничтожения родительского процесса
intermediate link catch event
Используется для замены потока управления и отображения начала замены
intermediate link throw event
Используется для замены потока управления и отображения завершения замены
Start non-interrupting timer event
Используется для старта встроенного подпроцесса обработчика по таймеру.
Не прерывает родительский процесс
Start timer event
Используется для старта процесса по времени
Start interrupting timer event
Используется для старта встроенного подпроцесса обработчика по таймеру и уничтожению родительского процесса
intermediate timer catch event
Используется для старта ожидания таймера в процессе
intermediate interrupting attached timer catch event
Используется для прерывании выполняемого родительского действия если достигнуто время, указанное на таймере.
Отсчёт таймера начинается в момент старта родительского действия.
intermediate non-interrupting attached timer catch event
Используется для старта ожидания таймера, пока родительское действие и активно.
В момент срабатывания таймера запускает второй сценарий по выходящему потоку управления .
Не прерывает родительское действие.
intermediate attached non-interrputing conditional catch event
Используется для ожидания выполнения условия во время выполнения родительского действия.
Не прерывает родительское действие
Плохой пример
1) "Прошло 3 часа" - тип события-условие не соответствует подписи. Уместно использовать событие-таймер
2) "Поступило указание прервать изготовление" - "Покупатель оплатил заказ" - непрерывающий тип не соответствует подписи - прерывающему событию.
intermediate conditional catch event
Используется для ожидания выполнения условия
intermediate attached conditional catch event
Используется для ожидания выполнения условия, пока активно родительское действие, и его прерывания по наступлению события
Start conditional event
Используется для старта процесса по условию
Start interrupting conditional event
Используется для старта встроенного подпроцесса и прерывания родительского процеса
Start non-interrupting conditional event
Используется для старта встроенного подпроцесса пока активен родительский процесс.
Не прерывает родительский процесс.
Data Object
Используется для создания сущности(например документа) только в рамках процесса
Data Store
Используется для ит-систем и\или хранилищ данных в любой форме (папка, архив)
End escalation throw event
Используется для завершения текущего процесса (или уничтожения токена) и отправки эскалации
intermediate attached non-interrupting escalation catch event
Используется для обработки эскалации пока активно родительское действие.
Не прерывает родительское действие
Start interrupting escalation event
Используется для старта встроенного подпроцесса при наступлении события эскалации, прерывающего родительский процесс
intermediate attached interrupting escalation catch event
Используется для обработки эскалации и завершения родительского действия
Start non-interrupting escalation event
Используется для старта встроенного подпроцесса при получении эскалации.
Не прерывает родительский процесс.
intermediate escalation throw event
Используется для запуска эскалации
