complex gateway bpmn что это

Types of Gateway in BPMN

Gateways determine what path is taken through a process that controls the flow of both diverging and converging Sequence Flows. That is, a single Gateway could have multiple inputs and multiple output flows. The term “gateway” implies that there is a gating mechanism that either allows or disallows passage through the Gateway–that is, as tokens arrive at a Gateway, they can be merged on input and/or split apart on output as the Gateway mechanisms are invoked. If the flow does not need to be controlled, then a Gateway is not needed.

Gateways, like Activities, are capable of consuming or generating additional control tokens, effectively controlling the execution semantics of a given Process. The main difference is that Gateways do not represent ‘work’ being done and they are considered to have zero effect on the operational measures of the Process being executed (cost, time, etc.).

Type of gateways

All Gateways are represented with a diamond shape, with different icons within to distinguish the type of Gateway. In BPMN we can divide Gateways element into the following categories:

Exclusive Gateway

A diverging Exclusive Gateway (or XOR Gateway) is used to create alternative paths within a Process flow. For a given instance of the Process, only one of the paths can be taken.

When the execution of a workflow arrives at this gateway, all outgoing sequence flows are evaluated in the order in which they are defined. The sequence flow whose condition evaluates to true is selected for propagating the token flow.

Note that the semantics of an outgoing sequence flow:

Exclusive Gateway Example

The following diagram shows an exclusive gateway that will choose one sequence flow based on the value of a property, in this example, the invoice amount. Only two flows have conditions on them going to CFO Approval and Finance Director Approval. The last sequence flow has no condition and will be selected by default if the other conditional flows evaluate to false.

Event-Based Gateway

The event-based gateway also can be used to instantiate a process. When this is the case the Event-Based Exclusive Gateway icon has only a single circle within the diamond. When used to start a process, the Event-Based Exclusive Gateway allows the process to start in several ways based on the event that triggers it.

Event-Based Gateway Example

Parallel Gateway

Parallel gateways are used to represent two tasks in a business flow. A parallel gateway is used to visualize the concurrent execution of activities. A parallel gateway models a fork into multiple paths of execution, or a join of multiple incoming paths of execution.

A parallel gateway can have both fork and join behavior if there are multiple incoming and outgoing sequence flows for the same parallel gateway. In this case, the gateway will first join all the incoming sequence flows, before splitting into multiple concurrent paths of execution.

Parallel Gateway Example

The following diagram shows a definition with two parallel gateways.

Inclusive Gateway

An inclusive Gateway specifies that one or more of the available paths will be taken. They could all be taken, or only one of them.

Inclusive Gateway Example – Car Purchase

The first OR gateway represents the control of the flow of the process along one or more paths in the model.

The second OR gateway represents the reconnection of those paths and the continuation of flow.

Exclusive Event-based Gateway

An exclusive event-based gateway is used to branch a process when alternative paths are determined by events (various messages or signals) rather than by conditional flows. This can happen when the decision about one of the alternative paths is taken by someone out of the process.

Exclusive Event-based Gateway Example

A signing contract process expects a signal regarding a client’s decision during the negotiation process. Further development of the process depends on this decision.

An exclusive event-based gateway, the decision is made based on whichever the associated intermediate event occurs first.

Complex Decision Gateway

A complex decision gateway allows for a more expressive decision within a business process. Multiple factors, rules, and analyses can all combine to yield results. The analysis should result in at least one path always being taken.

Читайте также:  что такое глобальная блокировка в кс го

Complex Gateway Example

A student takes an SAT examination. If the student scores under an 800 (the possible scores range from 200 to 1600), the student will enroll in an expensive class to improve his test score – and then retake the exam. If the student performs moderately, he will read a low-cost book designed to help him improve his score – and then retake the exam. If the student scores above 1000, he will immediately attend university.

Parallel Event-Based Gateway

A Parallel Event-Based gateway is similar to a parallel gateway. It allows for more than one process to happen at the same time. It is important to note that while the Event-Based Parallel Gateway will allow multiple events to pass through and start the corresponding portion of the process, it does not wait for all of the events to arrive. That is, it does not wait and synchronize the events before the start of each processing path is permitted.

Parallel Event-based Gateway Example

Event Gateways can be used to instantiate a Process. By default the Gateway’s instantiate attribute is false, but if set to true, then the Process is instantiated when the first Event of the Gateway’s configuration is triggered. In this example, if your Bank Manager Approval event is triggered then the Increase Overdraft process will be executed.

Summary

We now know how to use the seven different types of gateways in BPMN modeling. Gateways can define all the types of Business Process Sequence Flow behavior:

Источник

Описание нотации BPMN

Нотация BPMN наиболее удобна для декомпозиции, для описания нижних уровней бизнес-процессов, особенно там, где требуется показывать действия участников процессов. Это объясняется самой сутью, методологией, лежащей в основе нотации – это методология workflow – поток работ.

То есть BPMN – это не просто структура процесса, функции, это алгоритм! Это уже не просто некое «до-аналитическое» предположение, что процесс состоит из «вот таких» блоков/функций, это уже четкая последовательность выполняемых действий ее конкретными участниками.

Система обозначений нотации BPMN

BPMN использует в качестве обозначений такие графические элементы, как:

Процесс / задача

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

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

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

Выделим, пожалуй, наиболее интересный блок – это блок ad-hoc процессов, потому что четкая, безальтернативная регламентация деятельности – это вопрос выбора модели компании, бизнеса. Смотря на шаг вперед, мы понимаем, что выбор будущего – это «бирюзовая модель» по классификации, введенной Фредериком Лалу, предполагающая если не отсутствие регламентов как таковых, то иной принцип их выработки и исполнения.

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

События

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

Относительно точки выполнения процесса события делятся на:

Любое событие может возникать из-за какой-то причины, а может инициировать само какой-то результат. Первые события называются – «обработчики», вторые – «инициаторами». Причина возникновения событий-обработчиков и результат процессов-инициаторов называется триггер.

События-инициаторы – это некоторые промежуточные события (включая промежуточное событие с типом «Неопределенное») и все конечные события. Если встречается событие-инициатор, то процесс просто выполняется дальше и ничего не ожидает. На диаграмме триггер внутри события, являющегося инициатором, показывается закрашенным.

Читайте также:  рено трафик какой аккумулятор

Пример различных типов событий:

Шлюзы

Параллельный шлюз (AND, «И») используется для обозначения слияния/ветвления потоков управления в рамках процесса.

Пример использования параллельного шлюза при ветвлении/разделении потоков:

В примере выше параллельный шлюз используется для ветвления потоков управления или создания параллельных веток выполнения процесса: после выполнения Процесса 1 запустится выполнение и Процесса 2, и Процесса 3.

Пример использования параллельного шлюза при слиянии потоков:

В примере выше параллельный шлюз используется для слияния потоков управления или синхронизации параллельных веток выполнения процесса. Выполнение Процесса 3 запустится только тогда, когда выполнится и Процесс 1, и Процесс 2.

Эксклюзивный шлюз

Эксклюзивный шлюз (XOR, «Исключающее ИЛИ») используется для ветвления потока управления на несколько альтернативных потоков, когда выполнение процесса зависит от выполнения некоторого условия.

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

после выполнения Процесса 1 (рисунок выше) дальнейшее выполнение процесса может продолжиться только по одному потоку, исходящему из шлюза:
— если Условие 1 верно, то выполнится только Процесс 3;
— если Условие 2 верно, то выполнится только Процесс 4;
— если ни Условие 1, ни Условия 2 не верны, то выполнится только Процесс 2.

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

На рисунке выше Процесс 3 будет выполнен дважды: после выполнения Процесса 1 и после выполнения Процесса 2.

Неэксклюзивный шлюз

Неэксклюзивный шлюз (OR, «ИЛИ») используется для ветвления потока управления на несколько потоков, когда выполнение процесса зависит от выполнения условий. При этом каждое из указанных условий является независимым, и дальнейшее выполнение процесса может продолжиться сразу по нескольким потокам управления, если условия будут выполнены.

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

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

На рисунке выше Процесс 3 будет выполнен только тогда, когда выполнится и Процесс 1, и Процесс 2 (пример слияния, или синхронизации).

Еще шлюзы

В BPMN различают также еще два типа шлюзов:

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

Эксклюзивный шлюз по событиям (XOR, «Исключающее ИЛИ») используется для ветвления потока управления на несколько альтернативных потоков, когда дальнейшее выполнение процесса зависит от возникновения некоторого события-обработчика, следующего после шлюза.

На рисунке выше после выполнения Процесса 1 дальнейшее выполнение процесса может продолжиться только по одной ветке, исходящей из шлюза:
— если первым возникло Событие 1, то выполнится только Процесс 2;
— если первым возникло Событие 2, то выполнится только Процесс 3.

Поток управления

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

Другие обозначения


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

В качестве объекта данных может использоваться объект любого из следующих справочников: Бумажный документ, Электронный документ, ТМЦ, Информация, Программные продукты, Термины, Прочее.

Немного о правилах нотации

Сколько блоков задач/действий можно умещать на одной диаграмме/модели? С точки зрения нотации – сколько влезет, при чем в прямом смысле – столько, сколько сможете разместить блоков внутри пула процесса. Но с точки зрения анализа, есть не прописанное нигде правило, но которым пользуются аналитики: блоков задач/действий в одном процессе должно быть столько, чтобы не «уходить» на второй этаж пула.

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

Читайте также:  flipped learning что это

Источник

Полный гайд по развилкам (шлюзам, gateway) в BPMN: развилка «ИЛИ\ИЛИ»

Развилка «ИЛИ\ИЛИ» (exclusive gateway) используется на практике чаще всего, но даже с ней не всё понятно. В этой статье разбираемся с развилкой «ИЛИ\ИЛИ» окончательно. А в цикле статей разберем вообще все развилки.

Что нужно знать

1.Токены в BPMN

Чтобы понимать, как работают развилки в BPMN, нужно понимать концепцию токенов. Подробности есть в моей бесплатной е-мейл рассылке (подпишитесь, если еще не).

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

Токен на развилке «ИЛИ\ИЛИ»

Токены помогают «проиграть» будущее исполнение процесса и понять, всё ли правильно нарисовано.

2.Контекст

Некоторые шлюзы используют контекст в своей работе. Контекст — это «виртуальная» таблица данных конкретного инстанса (запуска процесса), куда записываются и сохраняются ВСЕ данные конкретного запуска процесса.

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

Понятие контекста в BPMN

Развилка «ИЛИ\ИЛИ»

Самая часто используемая развилка в BPMN. По-английски называется Exclusive gateway, Data-based Exclusive Gateway, XOR Gateway. По-русски еще называют «оператор исключающего ИЛИ, управляемого данными», хотя официальный перевод сообщества — развилка «или\или».

Как выглядит

Существует 2 возможных варианта отображения. Вариант не влияет не поведение схемы.

Внешний вид развилки «или\или».

В естественных условиях (на диаграммах) в развилку входят и выходят потоки управления (стрелки).

Варианты развилки «ИЛИ\ИЛИ»

Бывает 3 варианта этой развилки:

Как работает развилка «ИЛИ\ИЛИ»

Количество входящих и выходящих потоков управления определяет то, как работает развилка, т.е. мы имеем 3 варианта её работы:

Несколько входов и один выход

В этом случае развилка просто пропускает токены вперёд.

Развилка «ИЛИ\ИЛИ» пропускает токен вперёд

Такая развилка используется тогда, когда варианты бизнес-процесса надо объединить и пустить дальше уже по общей логике.

Пример использования развилки «ИЛИ\ИЛИ»

В этой роли развилка не меняет число токенов.

Один вход и несколько выходов

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

Развилка «ИЛИ\ИЛИ» выбирает куда отправить токен

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

Из-за использования контекста эту развилку часто называют Data-based Exclusive Gateway, т.е. буквально «движимую данными». Если выражение истино (true), то токен переходит по такому потоку управления.

Развилка «ИЛИ\ИЛИ» проверяет контекст

Вот что происходит в примере ниже:

Пример работы развилки «ИЛИ\ИЛИ» с контекстом

Количество токенов не меняется.

Несколько входов и несколько выходов

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

Когда применять развилку «ИЛИ\ИЛИ»

Каверзные вопросы

Чтобы избежать такой ситуации, одну из выходящих веток из развилки можно указать как поток «в противном случае» (Default Flow).

Поток управления «в противном случае» в развилке «ИЛИ\ИЛИ»

В таком потоке нельзя написать выражение. Токен уходит в такой поток если все остальные выражения на всех потоках вернули false.

Так удобнее отслеживать логику и не путаться в токенах. Это необязательно.

В некоторых системах автоматизации есть специальные настройки для этого, в некоторых — просто номером строки в xml файле описания диаграммы (BPMN — на самом деле xml).

Описание выходных потоков управления из развилки «ИЛИ\ИЛИ»

С этой развилкой разобрались. Поделитесь статьей и напиши в коментариях — всё ли понятно? Может есть другие каверзные вопросы?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Сказочный портал