Исключающий логический оператор (исключающий гейтвей «ИЛИ»)

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


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


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


При отображении логического оператора не запрещается моделировать несколько входящих и исходящих связей, однако, отображение такой комбинации объединения и разделения должно однозначно интерпретироваться. Поэтому рекомендуется отображать два логических оператора – один для объединения, другой для разделения. Следует отметить, что эта рекомендация касается не только исключающего ИЛИ, но и других логических операторов.
 


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


Логика применения логического оператора XOR предполагает, что истинным может быть только одно условие и один выход. Так, если в приведенном на рисунке ниже случае заменить значение нижней ветки с «сумма < 100» на «сумма < 200», то в этом случае будет нарушено правило применения логического оператора, поскольку у второй снизу ветки значения будут находиться между 100 и 200.
 


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


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


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

Более подробно о применении логических операторов и подходах к моделированию в нотации BPMN вы можете узнать на нашем тренинге Введение в стандарт BPMN 2.0