Логические
операторы
В BPMSoft при помощи логических операторов можно осуществлять ветвление внутри процесса.
Существует 4 вида:
- Исключающее «ИЛИ» — используется для выбора только одного маршрута из нескольких вариантов;
- Исключающее «ИЛИ» по событиям — используется для ветвления процесса по разным потокам в зависимости от результата промежуточных событий. Подробнее: Промежуточные события;
- Включающее «ИЛИ» — используется, когда нужно запустить один или несколько условных потоков параллельно;
- Логическое «И» — используется, когда нужно, чтобы выполнялось параллельно несколько маршрутов процесса, только после выполнения всех заданных условий происходит переход к следующему элементу процесса.
Элемент процесса «Исключающее «ИЛИ»
Пример использования элемента процесса «Исключающее «ИЛИ» для ветвления
Рисунок 1 — Пример использования логического оператора «Исключающее «ИЛИ» для ветвления
В данном случае использование оператора «Исключающее ИЛИ» позволяет системе определить, в зависимости от выбора клиента, каким способом доставки отправить заказ.
Пример использования элемента процесса «Исключающее «ИЛИ» для слияния
При слиянии потоков управления логический оператор «Исключающее «ИЛИ»» ждет выполнения одного входящего элемента и только после этого перейдет к следующему шагу.
Рисунок 2 — Пример использования логического оператора «Исключающее «ИЛИ» для слияния
Пример использования элемента «Исключающее «ИЛИ»» для ветвления и слияния в одном процессе
Рисунок 3 — Пример использования логического оператора «Исключающее «ИЛИ»
Для настройки процесса выполните следующие шаги:
- Настройте два начальных события «Сигнал»:
- Первое будет запускаться при добавлении нового заказа с условием «Тип доставки» = заполнено;
- Второе при изменении значения в поле «Тип доставки».
- Настройте элемент «Читать данные», который будет читать данные из заказа следующих полей: «Тип доставки» и «Клиент». Подробнее: Элемент процесса «Читать данные».
- Настройте условные потоки следующим образом:
- Нажмите на кнопку
. На вкладке «Элементы процесса» выберите элемент «Читаем данные заказа» и параметр «Тип доставки». Поставьте двойное равенство, после чего перейдите на вкладку «Выбор из справочника» и найдите объект «Тип доставки», двойным нажатием мыши выберите значение «Доставка курьером»;
- Нажмите на кнопку
Рисунок 4 — Пример формулы
- Вернитесь на вкладку «Элементы процесса» и сохраните изменения;
- Для самовывоза сделайте поток по умолчанию.
- Настройте элемент процесса «Отправить email». Подробнее: Элемент процесса «Отправить email».
- Соедините два потока в один с помощью элемента «Исключающее «ИЛИ»» и завершите процесс элементом «Остановить».
В результате при создании заказа или изменении типа доставки клиенту будет приходить сообщение о выбранном типе доставки.
Элемент процесса «Исключающее «ИЛИ» по событиям»
Пример. Существует процесс, в котором идет согласование и подписание договора директором департамента. Текущий процесс по подготовке счета ждет результат этого подписания:
- Если директор департамента подписывает договор, то процесс переходит на шаг «Отправить клиенту счет»;
- Если директор департамента не подписывает договор, то процесс переходит на шаг «Изменить статус на «Ожидание»».
Рисунок 5 — Пример использования логического оператора «Исключающее «ИЛИ» по событиям»
Элемент процесса «Включающее «ИЛИ»
- Если количество товаров менее 50, задается вопрос пользователю «О закупке нового товара»;
- Если количество товаров менее 70, ставится задача пользователю «Проконтролировать остаток»;
- Если количество товаров более или равно 70, товару присваивается статус «В наличии», то есть сработает поток по умолчанию.
Рисунок 6 — Пример использования логического оператора «Включающее «ИЛИ»»

Таким образом, если количество товара на складе будет менее 50, то будет задаваться вопрос пользователю «О закупке нового товара», но если количество товара на складе будет менее 70, то помимо задачи «Проконтролировать остаток», так же будет задан вопрос пользователю «О закупке нового товара». В иных случаях, если ни одно из условий не выполняется, сработает поток по умолчанию и у товара изменится статус на «В наличии».
При слиянии логический оператор «Включающее «ИЛИ»» работает аналогично оператору «Исключающее «ИЛИ»».
Элемент процесса «Логическое «И»
Пример использования элемента процесса «Логическое «И» для ветвления
Рисунок 7 — Пример использования оператора «Логическое «И» для ветвления
Оба действия выполняются параллельно, что может ускорить общий ход любого процесса.
Пример использования элемента процесса «Логическое «И» для слияния
«Логическое «И» можно применять для слияния нескольких потоков, когда требуется, чтобы следующий элемент активировался, только в случае успешного выполнения всех предыдущих потоков.
Рисунок 8 — Пример использования оператора «Логическое «И» для слияния
Логический оператор «Логическое «И» будет ждать завершения действий «Согласовать с отделом кадров» и «Согласовать с руководителем», только после этого процесс активирует следующий элемент «Подписать заявление».