Понятие потока, как и понятие токена, в BPMN активно используется, но при этом очень скупо поясняются. Так, в официальной документации понятию «токен» посвящено около двух абзацев. Если вам интересно разобраться, что это такое, смотрите мой видео урок, посвященный этому элементу, или читайте статью «Что такое токен в BPMN». Про поток в BPMN информации еще меньше. Потому я решил восполнить это явное упущение.
Поток в BPMN
Понятие потока, как и понятие токена, в BPMN активно используется, но при этом очень скупо поясняются. Так, в официальной документации понятию «токен» посвящено около двух абзацев. Если вам интересно разобраться, что это такое, смотрите мой видео урок, посвященный этому элементу, или читайте статью «Что такое токен в BPMN». Про поток в BPMN информации еще меньше. Потому я решил восполнить это явное упущение.
В рамках курса я также говорю нередко о потоках. Иногда упоминаю, что по ним движется токен, иногда использую выражение «движется процесс». В принципе, это одно и то же. Но вернемся к потокам. И начнем с определения.
Поток (flow) – это виртуальный объект, в рамках которого движется информация при переходе из одной точки процесса в другую.
Вважно понимать, что в нашем случае поток – понятие виртуальное. Здесь нет математического или физического деления. Потому поток может разделяться на любое число потоков, также свободно несколько потоков могут собираться в один. При этом, если поток делится на два параллельных потока, это не означает, что мы также пропорционально разделили информацию. Каждый из новых потоков является таким же полноценным, как и их общий предшественник. А тот поток, который был перед этим, теряет свою актуальность.
Что движется в потоках
В потоке может двигаться любая информация, которая нам необходима. Тем не менее, имеет смысл провести определенную классификацию:
- В неисполняемых процессах в потоке может двигаться все, что нужно для процесса. Это могут быть документы, вербальная информация и т.д. Причем, здесь мы ее описываем двумя-тремя словами. Т.е. это не точная информация. В случае неисполняемого процесса она нужна только для того, чтобы описать какую-то сущность. Она может даже не иметь какой-то точной привязки к определенным значениям, к каким-то числам, формулам и т.д.
Например, на определенном этапе процесса мы указываем, что необходимо составить договор на поставку. В неисполняемом процессе можно не указывать номер договора, дату, другие подробности. Для понимания нам достаточно знать, что здесь будет заключен договор.
- В исполняемых процессах обязательно должно быть точное указание информации, точная привязка к документации. По стандартам BPMN только такая информация идет в нашем потоке.
Например, в BPMN есть такое понятие, как Сигнал. Если мы передаем в потоке определенный Сигнал, он должен быть четко идентифицирован и описан в формате XML. Или, например, мы передаем в исполняемом процессе Сообщение. В этом случае должно быть четко понятно, какое конкретно сообщение мы передаем с этапа на этап, какая информация должна быть передана. Оформляется все это в виде алгоритма и программного кода.
Потому очень важно всегда понимать, о каких потоках вы говорите, для исполняемых или неисполняемых процессов. И работать с информацией в соответствии с описанными выше требованиями.