Автор: Кинзябулатов Рамиль.  Создана: 15 февраля 2021

Поток в BPMN

Понятие потока, как и понятие токена, в BPMN активно используется, но при этом очень скупо поясняются. Так, в официальной документации понятию «токен» посвящено около двух абзацев. Если вам интересно разобраться, что это такое, смотрите мой видео-урок, посвященный этому элементу, или читайте статью «Что такое токен в BPMN». Про поток в BPMN информации еще меньше. Поэтому я решил восполнить это явное упущение.

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

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

 

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

Что движется в потоках

В потоке может двигаться любая информация, которая нам необходима. Тем не менее, имеет смысл провести определенную классификацию:

  1. В неисполняемых процессах в потоке может двигаться все, что нужно для процесса. Это могут быть документы, вербальная информация и т.д. Причем, здесь мы информацию описываем двумя-тремя словами, т.е. она не точная. И нужна только для того, чтобы описать какую-то сущность. Она может даже не иметь какой-то точной привязки к определенным значениям, к каким-то числам, формулам и т.д. 

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

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

Например, в BPMN есть такое понятие, как Сигнал. Если мы передаем в потоке определенный Сигнал, он должен быть четко идентифицирован и описан в формате XML.  Или, например, мы передаем в исполняемом процессе Сообщение. В этом случае должно быть четко понятно, какое конкретно сообщение мы передаем с этапа на этап, какая информация должна быть передана. Оформляется все это в виде алгоритма и программного кода.

Очень важно всегда понимать, о каких потоках вы говорите, для исполняемых или неисполняемых процессов. И работать с информацией в соответствии с описанными выше требованиями.