Главный секрет BPMN: Токены в BPMN и их работа с каждым элементом

Денис Котов
Денис Котов
Дата публикации: 19 мая 2025 г.
Дата обновления: 19 мая 2025 г.

Главный секрет BPMN: Токены в BPMN и их работа с каждым элементом

Сегодня мы подробно расскажем о главном секрете BPMN — понятии токена. Знание того, что такое токены в BPMN и как они работают с каждым элементом диаграммы, кардинально меняет ваше понимание бизнес-процессов. Это знание делит всех людей на две категории: тех, кто просто видел значки BPMN, и тех, кто действительно понимает, как работает BPMN на глубоком уровне.

Если вы хотите перейти из первой категории во вторую, это руководство — то, что вам нужно. Мы разберёмся в том, что такое токены, как они движутся и изменяются по диаграмме, и почему понимание этого механизма — ключ к успешному моделированию бизнес-процессов.

Видео-версия статьи: https://vkvideo.ru/video-227313390_456239084

Что такое токен в BPMN и почему это важно

Токен — это виртуальная абстракция, которая показывает, кто сейчас в нашей схеме бизнес-процесса ответственен за исполнение текущей работы. У токена нет физического представления, это нечто похожее на эстафетную палочку в команде бегунов.

Представьте бизнес-процесс как команду спортсменов, которые бегут эстафету. Каждый токен — это эстафетная палочка, которая передается от одного бегуна к другому. Палочка символизирует ответственность за успешное выполнение части бизнес-процесса в текущий момент времени.

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

Ключевой момент: экземпляр бизнес-процесса считается завершённым, когда в нём не осталось ни одного токена (эстафетной палочки). Количество токенов может меняться в процессе выполнения — они могут появляться, исчезать и перемещаться по диаграмме.

Простой пример движения токена в бизнес-процессе

Рассмотрим самый простой сценарий. Процесс начинается, и у нас появляется один токен — спортсмен с эстафетной палочкой.

Спортсмен выполняет своё действие, затем, в зависимости от решения на шлюзе, токен перемещается дальше по выбранному пути. Действие считается завершённым, когда токен покидает его и идёт к следующему элементу процесса.

Таким образом путь токена в простом процессе выглядит линейно — один токен движется от начала к концу по одному потоку управления.

Простой Линейный Путь Токена В Bpmn

Параллельный шлюз — рождение нескольких токенов

Теперь усложним ситуацию. Рассмотрим параллельный шлюз — элемент, который одновременно открывает несколько потоков управления.

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

Процесс считается завершённым только тогда, когда все эти токены завершили свои пути и исчезли из схемы.

Это значит, что параллельные ветки процесса могут выполняться независимо друг от друга, и порядок их завершения не обязательно фиксирован — он зависит от того, как быстро участники выполняют свои задачи.

Параллельный Шлюз Создает Несколько Токенов

Инклюзивный (И-ИЛИ) шлюз — условное распределение токенов

Инклюзивный шлюз, работает сложнее параллельного. Токены здесь рождаются не на всех ветках, а только на тех, где выполнены условия.

Например, если у нас три выхода из шлюза, и условия выполнены для двух из них, то токен разделится на две части — один токен пойдет по первой условной ветке, второй — по второй. Третий путь останется без токена, так как условие там не выполнено.

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

Инклюзивный Шлюз Распределяет Токены По Условиям

Комплексный шлюз — сложная логика завершения токенов

Комплексный шлюз — это ещё более продвинутый элемент, который работает с токенами по сложным правилам.

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

В этом случае, даже если один токен ещё не завершил путь, шлюз пропустит дальше следующий токен, а незавершённый токен будет уничтожен.

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

Комплексный Шлюз С Правилами Завершения Токенов

Шлюзы по событиям — ожидание и реакция на события

Шлюзы по событиям работают иначе, чем логические шлюзы. Они завязаны на наступление внешних или внутренних событий.

Когда токен достигает такого шлюза, он фактически "зависает" в ожидании одного из нескольких возможных событий. Токен как будто одновременно находится на всех ветках, но не движется пока не произойдет какое-то событие.

Например, если событие не произошло в течение 15 минут, процесс пойдет по пути тайм-аута. Если событие произошло сразу, процесс пойдет по соответствующему пути и завершится.

Таким образом, здесь путь токена зависит не от выбора на шлюзе, а от того, какие события произошли после него.

Шлюзы По Событиям И Ожидание Токеном Событий

Собирающие шлюзы — ожидание нескольких токенов

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

Рассмотрим ситуацию: параллельный шлюз на старте создает два токена. Эти токены движутся по разным веткам и приходят к собирающему шлюзу, который ожидает оба токена.

Если один токен приходит раньше, процесс ждет второго. Только когда приходят оба токена, шлюз пропускает один токен дальше, а два входящих токена уничтожаются.

Это важный механизм для синхронизации параллельных веток процесса.

Собирающий Шлюз И Ожидание Нескольких Токенов

Особенности работы с токенами у разных шлюзов

Разные типы шлюзов имеют свои особенности по работе с токенами:

  • Параллельный шлюз рождает токены на всех ветках.
  • Инклюзивный шлюз рождает токены только на ветках с выполненными условиями.
  • Комплексный шлюз задает правила, сколько токенов должно завершиться, чтобы продолжить процесс.
  • Шлюзы по событиям не создают новых токенов, а ожидают наступления событий.
  • Собирающие шлюзы ждут заданное количество токенов и объединяют их в один.

Понимание этих особенностей помогает правильно моделировать бизнес-процессы и предсказывать поведение процесса при исполнении.

Работа с промежуточными событиями и токенами

События в BPMN бывают двух типов — catch (ожидающие) и throw (отправляющие).

Если процесс достигает промежуточного события catch, токен "зависает" и ждёт наступления внешнего события (например, сообщения или сигнала). После получения события токен движется дальше.

Промежуточные события throw срабатывают мгновенно — как только событие отправлено, токен продолжает движение.

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

Промежуточные События Catch И Throw И Их Влияние На Токены

Прикрепленные события и их влияние на токены

Прикрепленные события — это особый тип событий, которые "висят" на действиях и активируются, если происходит определённое условие (например, таймер).

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

Если событие произошло раньше, чем закончилось действие, токен продолжит движение по основной ветке.

Такая логика позволяет моделировать повторяющиеся или прерывающиеся действия с точным контролем над количеством запусков.

Прикрепленные События И Управление Токенами

Завершающие события и их роль в завершении процесса

Завершающие события в BPMN уничтожают токены, которые достигают их, но по-разному влияют на завершение процесса:

  • Обычное завершающее событие уничтожает токен, но процесс считается завершённым только если других токенов в процессе не осталось.
  • Специфические завершающие события (например, отправка сообщения) также уничтожают токен, но процесс может продолжаться, если остались другие токены.
  • Завершающее событие terminate (останов) — очень мощный символ, который уничтожает все токены в процессе и мгновенно завершает процесс.

Использование события terminate требует аккуратности, так как оно прерывает все действия и сбрасывает процесс.

Завершающие События И Их Влияние На Токены И Процесс

Компенсационные события и особенности работы с токенами

Компенсационные события — это особый вид событий, которые запускают компенсирующие действия при отмене или ошибке в процессе.

Если в процессе есть действие с прикрепленным промежуточным ожиданием компенсации, и происходит событие компенсации, процесс считается завершённым, но запускается компенсирующее действие.

Например, если в процессе была операция начисления баланса клиенту, а затем произошло событие компенсации, запускается действие, которое "отменяет" эту операцию — списывает баланс обратно.

Такой механизм позволяет реализовывать сложные сценарии отката и исправления ошибок в бизнес-процессах.

Компенсационные События И Работа Токенов

Особенности потоков управления в действиях BPMN

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

Это аналогично ситуации, когда после действия стоит параллельный шлюз, который создает несколько токенов.

Точно так же, если в действие входит несколько потоков управления, оно может быть выполнено несколько раз — по одному разу для каждого токена, пришедшего на вход.

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

Множественные Входящие И Исходящие Потоки Управления В Действиях Bpmn

Токены и подпроцессы — вложенные процессы и обработчики событий

В BPMN подпроцессы — это вложенные процессы внутри основного процесса. Механика работы с токенами в них такая же, как и в основном процессе.

Ключевой момент — это способ завершения подпроцесса. Если подпроцесс завершается ошибкой, эскалацией или другим событием, и к нему прикреплен обработчик события, токен переходит в соответствующую точку родительского процесса.

Также существуют встроенные подпроцессы-обработчики, которые могут быть прерывающими и непрерывающими:

  • Непрерывающие обработчики запускаются при наступлении события, но основной процесс продолжает работать, пока все токены не завершатся.
  • Прерывающие обработчики при срабатывании уничтожают все активные токены процесса и запускают новый токен, который ведет выполнение обработки.

Это позволяет моделировать сложные сценарии управления ошибками, таймерами и внешними событиями.

Токены И Работа С Подпроцессами В Bpmn

Итоги — понимание токенов как ключ к мастерству в BPMN

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

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

Теперь вы можете уверенно создавать схемы BPMN, зная, как именно в них "текут" токены и как это влияет на результат исполнения.

Поиграться с токенами в интерактивном режиме можно на нашем сервисе stormbpmn.com

FAQ: Часто задаваемые вопросы о токенах в BPMN

Что такое токен в BPMN?

Токен — это виртуальный маркер, который показывает текущую точку исполнения бизнес-процесса. Он символизирует ответственность за выполнение работы и движется по диаграмме от одного элемента к другому.

Как токены появляются и исчезают?

Токены рождаются, например, на параллельных шлюзах или в результате выполнения действий с несколькими исходящими потоками. Они исчезают при достижении завершающих событий или уничтожаются по правилам сложных шлюзов и событий.

Почему важно знать про токены в BPMN?

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

Как работают токены с параллельными шлюзами?

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

Что происходит с токенами при прерывающих и непрерывающих подпроцессах-обработчиках?

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

Можно ли несколько токенов находиться одновременно в процессе?

Да, особенно если процесс содержит параллельные ветвления или инклюзивные шлюзы, одновременно может существовать несколько токенов, каждый на своей ветке.

Что такое событие terminate (останов) и как оно влияет на токены?

Это завершающее событие, которое мгновенно уничтожает все токены и завершает процесс, независимо от того, где они находятся.

Как токены работают с событиями ожидания (catch) и отправки (throw)?

Токен на событии ожидания "зависает" и ждет внешнего сигнала, а на событии отправки срабатывает мгновенно и продолжает движение.

Можно ли моделировать откат действий с помощью токенов?

Да, используя компенсационные события, можно запускать компенсирующие действия, которые "отменяют" ранее выполненные операции.

Новые статьи в вашем электрическом ящике

Обзоры конференций, лучшие практики процессного подхода и учебные статьи в вашей почте. Не чаще 1 раза в неделю.

Без спама, только то, что вы запросили.

Похожие публикации

Контекст в BPMN: Полное руководство по пониманию и применению
BPMN — Метод и стиль. Брюс Сильвер

Бесплатно моделируйте бизнес-процессы в BPMN без ошибок

Stormbpmn автоматически анализирует ваши модели по 60+ правилам, ускоряя работу и предотвращая ошибки.

Проверка качества BPMN