Использование ветвлений и слияний типа «ИЛИ» или «Исключающее ИЛИ» на диаграмме процесса означает, что часть экземпляров процесса, описываемых данной диаграммой, имеют один набор операций, а другие, описываемые этой же диаграммой — другой. При выполнении имитации движок имитации в точке ветвления принимает решение о ходе дальнейшего выполнения экземпляра имитирующего процесса: в соответствии с какой ветвью или ветвями диаграммы необходимо продолжить создавать экземпляры имитирующих операций.
Ветвление и слияние типа «ИЛИ»
Во время имитации в точке ветвления типа «ИЛИ» движок имитации принимает решение о создании экземпляров имитирующих операций в соответствии с одной или несколькими ветвями диаграммы. Принятие решения моделируется путем записи логического условия, которое необходимо проверить в точке ветвления во время имитации. Ветви, исходящие из точки ветвления типа «ИЛИ», могут объединиться в точке слияния типа «ИЛИ» или не объединяться нигде на диаграмме.
Реестр бизнес-процессов. Аудит бизнес-процессов
При задании на диаграмме точки слияния типа «ИЛИ», если для нее не задано время синхронизации, завершение выполнения экземпляров имитирующих операций каждой из ветвей экземпляра имитирующего процесса запускает дальнейшее выполнение экземпляра имитирующего процесса. Если время синхронизации для точки слияния задано, то первое завершение выполнения экземпляров имитирующих операций одной из ветвей продолжает дальнейшее выполнение экземпляра имитирующего процесса и запускает время синхронизации. Завершение экземпляров имитирующих операций других ветвей экземпляра имитирующего процесса в течение времени синхронизации не продолжает дальнейшее выполнение экземпляра имитирующего процесса. По истечении времени синхронизации данный алгоритм повторяется снова.
Ветвление и слияние типа «Исключающее ИЛИ»
Во время имитации в точке ветвления типа «Исключающее ИЛИ» движок имитации выбирает только одну ветвь, в соответствии с которой будут созданы экземпляры имитирующих операций. Принятие решения движком имитации моделируется путем записи логического условия, которое необходимо проверить в точке ветвления во время имитации. Ветви, исходящие из точки ветвления типа «Исключающее ИЛИ», могут объединиться в точке слияния типа «Исключающее ИЛИ» или не объединяться нигде на диаграмме.
При задании на диаграмме точки слияния типа «Исключающее ИЛИ» завершение выполнения экземпляров имитирующих операций той ветви, которая была выбрана в точке ветвления, запускает дальнейшее выполнение экземпляра имитирующего процесса. Значение параметра «Время синхронизации» не влияет на алгоритм построения экземпляра имитирующего процесса.
Моделирование в нотации Basic Flowchart/Cross-functional Flowchart
Ветвление и слияние типа «ИЛИ»
В нотации Basic Flowchart/Cross-functional Flowchart ветвление и слияние типа «ИЛИ» не предусмотрены.
Регламент бизнес процессов: что это и зачем он нужен? | Александр Высоцкий
Ветвление и слияние типа «Исключающее ИЛИ»
При моделировании ветвления типа «Исключающее ИЛИ» в качестве точки ветвления используется фигура «Решение», у которой есть исходящие стрелки «Связь предшествования». В качестве точки слияния выступает фигура операции или фигура «Решение», у которой есть входящие стрелки «Связь предшествования», которые ранее вышли из одной фигуры «Решение» (Рис.1).
Рисунок 1. Моделирование ветвления и слияния типа «Исключающее ИЛИ» на диаграмме процесса в нотации Basic Flowchart/Cross-functional Flowchart
Моделирование в нотации ЕРС
Ветвление и слияние типа «ИЛИ»
Для моделирования ветвления и слияния типа «ИЛИ» в нотации ЕРС используется оператор (Рис.2).
Рисунок 2. Моделирование ветвления и слияния типа «ИЛИ» на диаграмме процесса в нотации EPC
Время синхронизации задается для оператора «ИЛИ».
Пример использования параметра «время синхронизации»
В качестве примера рассмотрим процесс «Обслуживание клиента», диаграмма которого приведена на Рис.3.
Рисунок 3. Диаграмма процесса «Обслуживание клиента»
По условиям примера клиент может обратиться в компанию для приобретения либо продукта А, либо продукта Б, либо для приобретения обоих продуктов. После выяснения информации о заказе клиента сотрудники компании изготавливают один или оба продукта и отправляют заказ клиенту. Изготовление каждого продукта занимает разное время. Поэтому если клиенту необходимы оба продукта, то изготовленные продукты могут быть отправлены клиенту либо оба сразу, либо по отдельности по мере изготовления каждого.
Возможна ситуация, когда один из продуктов уже изготовлен, а до окончания изготовления второго продукта осталось не более 8 часов. В этом случае целесообразно подождать изготовления второго продукта и отправить весь заказ клиенту сразу.
Для моделирования данной ситуации для оператора слияния «ИЛИ» необходимо задать время синхронизации (Рис.4).
Рисунок 4. Задание времени синхронизации для оператора слияния OR
В результате, в случае, если компания будет изготавливать для клиента оба продукта, возможны 2 ситуации:
Отправка клиенту продуктов будет осуществлена 1 раз, если разность между временем окончания изготовления каждого из продуктов составит не более 8 часов.
Каждый продукт будет отправлен клиенту отдельно, если разность между временем окончания изготовления каждого из продуктов составит 8 часов и более.
Ветвление и слияние типа «Исключающее ИЛИ»
Для моделирования ветвления и слияния типа «Исключающее ИЛИ» в нотации ЕРС используется оператор (Рис.5)
Рисунок 5. Моделирование ветвления типа «Исключающее ИЛИ» на диаграмме процесса в нотации ЕРС
Моделирование в нотации BPMN
Ветвление и слияние типа «ИЛИ»
Для моделирования ветвления и слияния типа «ИЛИ» в нотации BPMN используются Неэксклюзивный и Комплексный шлюзы (Рис.6-7). Точка ветвления может быть также представлена в виде фигуры операции, у которой есть исходящие стрелки типа «Условный поток управления» (Рис.8). Время синхронизации задается для Неэксклюзивного или Комплексного шлюзов, отображающих точку слияния.
Рисунок 6. Моделирование ветвления и слияния типа «ИЛИ» с использованием Неэксклюзивного шлюза
Рисунок 7. Моделирование ветвления и слияния типа «ИЛИ» с использованием Комплексного шлюза
Рисунок 8. Моделирование ветвления типа «ИЛИ» при помощи стрелок типа «Условный поток управления» и слияния типа «ИЛИ» при помощи Неэксклюзивного шлюза
После выполнения экземпляра имитирующей операции «Процесс 1» дальнейшее построение экземпляра имитирующего процесса может продолжиться в соответствии с любой ветвью, для которой окажется верным условие, заданное в Окне свойств стрелки, исходящей из шлюза (Рис.6-7), или в Окне свойств стрелки типа «Условный поток управления», исходящей из фигуры операции (Рис.8).
Например, для Рис.6:
— если верно Условие 1, то будет создан экземпляр имитирующей операции «Процесс 3»;
— если верно Условие 2, то будет создан экземпляр имитирующей операции «Процесс 4»;
— если ни Условие 1, ни Условие 2 не верны, то будет создан экземпляр имитирующей операции «Процесс 2».
При этом верными могут оказаться оба условия: Условие 1 и Условие 2. В этом случае будут созданы экземпляры обеих имитирующих операций «Процесс 3» и «Процесс 4». Стрелка «Поток управления по умолчанию» используется для отображения перехода к ветви, в соответствии с которой будет создан экземпляр имитирующей операции в случае, если ни одно из заданных логических условий не окажется верным.
Ветвление и слияние типа «Исключающее ИЛИ»
Для моделирования ветвления типа «Исключающее ИЛИ» в нотации BPMN используются Эксклюзивный шлюз и Эксклюзивный шлюз по событиям . Для моделирования слияния типа «Исключающее ИЛИ» в нотации BPMN используются Эксклюзивный шлюз (Рис.9). Также смоделировать слияние типа «Исключающее ИЛИ» можно, если не добавлять шлюз слияния на диаграмму (Рис.10).
Рисунок 9. Использование Эксклюзивного шлюза для моделирования ветвления и слияния типа «Исключающее ИЛИ» в нотации BPMN
Рисунок 10. Использование Эксклюзивного шлюза по событиям и отсутствия шлюза слияния для моделирования ветвления и слияния типа «Исключающее ИЛИ» в нотации BPMN
На Рис.9 после выполнения экземпляра имитирующей операции «Процесс 1» дальнейшее построение экземпляра имитирующего процесса может продолжиться только в соответствии с одной ветвью, для которой окажется верным условие, заданное в Окне свойств стрелки, исходящей из шлюза:
— если верно Условие 1, то будет создан экземпляр имитирующей операции «Процесс 3»;
— если верно Условие 2, то будет создан экземпляр имитирующей операции «Процесс 4»;
— если ни Условие 1, ни Условие 2 не верны, то будет создан экземпляр имитирующей операции «Процесс 2».
При этом Условие 1 и Условие 2 не могут оба оказаться верными. Стрелка «Поток управления по умолчанию» используется для отображения перехода к ветви, в соответствии с которой будет создан экземпляр имитирующей операции в случае, если ни одно из заданных логических условий не окажется верным.
На Рис.10 после выполнения экземпляра имитирующей операции «Процесс 1» дальнейшее построение экземпляра имитирующего процесса может продолжиться только в соответствии с одной ветвью, экземпляр имитирующего события которой возникнет первым:
— если первым возник экземпляр имитирующего события «Событие 1», то будет создан экземпляр имитирующей операции «Процесс 2»;
— если первым возник экземпляр имитирующего события «Событие 2», то будет создан экземпляр имитирующей операции «Процесс 3».
Введение в BPMN
Нотация моделирования бизнес-процессов BPMN (Business Process Model and Notation) — это международный стандарт моделирования бизнес-процессов. Он является одним из важнейших компонентов для достижения согласованности между Бизнес-процессами и ИТ-системами.
Большинство современных компаний сегодня выбирают BPMN в качестве стандарта для моделирования своих процессов. Основные причины этого выбора:
- Поддержка популярными программными продуктами для моделирования бизнес-процессов (Business Studio, ELMA, Bizagi и др.);
- Оптимальный набор графических элементов, который позволяет детально описать любой процесс;
- Возможность автоматизировать бизнес-процессы без необходимости программирования;
- Уменьшение разрыва между моделями «Как есть» и «Как должно быть».
Как пользоваться данным руководством
Благодаря большому количеству примеров настоящее руководство по BPMN можно использовать как самоучитель для освоения нотации «с нуля». Для этого рекомендуется читать все главы по порядку с самого начала. Также это руководство подходит в качестве справочника, в котором опытные специалисты могут найти ответ на вопрос, если что-то забыли.
Руководство по BPMN имеет следующие особенности:
- Все содержимое полностью соответствует последней версии спецификации нотации BPMN;
- Статьи сфокусированы на нотации моделирования, без привязки к какому-либо конкретному программному продукту, что дает возможность применять полученные знания в любых программах, которые поддерживают моделирования в BPMN;
- Диаграммы выполнены в едином стиле и в черно-белом цвете для удобства восприятия материала;
- Мы постарались писать простым, понятным языком, чтобы любой специалист смог легко разобраться в теме;
- Любую статью можно прокомментировать: задать вопрос или высказать пожелание по более подробному описанию отдельных моментов.
Хотите быстро освоить BPMN?
Пройдите обучение в нашем учебном центре!
Источник: www.optimacons.info
Полный гайд по развилкам (шлюзам, 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), то токен переходит по такому потоку управления.
Развилка «ИЛИИЛИ» проверяет контекст
Вот что происходит в примере ниже:
- Сотрудник в задаче «Выбрать способ доставки» указывает значение переменной «delivery_method» = Courier
- Это значение сохраняется в контекст.
- Сотрудник выполняет задачу.
- Токен перемещается на развилку.
- Развилка проверяет по очереди правила на всех стрелках (проверка выполняется в том порядке, в котором были созданы ветки к развилке):
- Проверка $ возвращает false
- Проверка $ возвращает true.
- Токен передается в первую сработавшую ветку. Прочие проверки не выполняются.
Пример работы развилки «ИЛИИЛИ» с контекстом
Количество токенов не меняется.
Несколько входов и несколько выходов
Такой вариант работает как сумма вышеописанных. Любой вошедший в развилку токен запускает проверку выражений. Но я не рекомендую объединять роли развилок, т.к. легко запутаться. Официально считается плохим стилем.
Когда применять развилку «ИЛИИЛИ»
- Практически всегда, когда вы хотите показать единичный выбор между вариантами прохождения процессов можно использовать развилку «ИЛИИЛИ».
- Когда вы хотите собрать различные потоки управления и дальше действовать единообразно.
Каверзные вопросы
- А что будет, если ни одно условий не подошло?
Чтобы избежать такой ситуации, одну из выходящих веток из развилки можно указать как поток «в противном случае» (Default Flow).
Поток управления «в противном случае» в развилке «ИЛИИЛИ»
В таком потоке нельзя написать выражение. Токен уходит в такой поток если все остальные выражения на всех потоках вернули false.
- А почему на схемах часто развилки идут парами?
Так удобнее отслеживать логику и не путаться в токенах. Это необязательно.
- Как именно задается последовательность проверок?
В некоторых системах автоматизации есть специальные настройки для этого, в некоторых — просто номером строки в xml файле описания диаграммы (BPMN — на самом деле xml).
Описание выходных потоков управления из развилки «ИЛИИЛИ»
С этой развилкой разобрались. Поделитесь статьей и напиши в коментариях — всё ли понятно? Может есть другие каверзные вопросы?
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник: bpmn2.ru