Как использовать события для ветвления процесса
Для ветвления процесса в зависимости от наступления тех или иных событий используется логический оператор [Исключающее “ИЛИ” по событиям]. События, от выполнения которых зависит ветвление процесса, помещаются на исходящие потоки логического оператора (Рис. 153).
Пример
После создания договора необходимо отправить его на визирование. Дальнейшее выполнение бизнес-процесса будет зависеть от результата визирования. При получении визы договор необходимо подписать. Если виза была отклонена — договор необходимо отправить на доработку.
Для создания договора используется элемент [Открыть страницу редактирования]. Настройки на странице идентичны настройкам при создании нового документа.
Для отправки договора на визирование необходимо использовать элемент [Автогененируемая страница]. Настройка данного элемента описана в статье “Как использовать настраиваемые страницы”. После отправки договора на визирование необходимо добавить визу на страницу договора. Для добавления визы используется элемент [Добавить данные].
Схема с реализованным ветвлением представлена на Рис. 154.
Чтобы построить ветвление процесса, исходящий поток каждой ветви которого должен активироваться в зависимости от результата:
1.Поместите логический оператор [Исключающее “ИЛИ” по событиям] после действия “Добавить визу” и соедините потоком управления.
2.Поместите элемент [Обработка сигнала] после логического оператора и соедините потоком управления.
3.Заполните страницу настройки элемента [Обработка сигнала] в случае успешного визирования договора (Рис. 155):
a.В поле [Сигнал какого типа получен?] выберите значение “Получен сигнал записи от объекта”.
b.Нажмите на поле [Идентификатор записи], чтобы открыть окно определения значения параметра:
•Выберите элемент [Добавить визу] на вкладке [Элементы процесса].
•Щелкните дважды курсором мыши на значении параметра [id созданной записи]. Выбранное значение появится в верхней части окна определения значения параметра.
•Нажмите на кнопку [Сохранить].
c.Укажите объект, от которого необходимо получить сигнал. В нашем примере это объект “Виза договора”.
d.В поле [Какое событие должно произойти?] укажите “Изменение записи”.
e.Выберите колонку, изменения в которой активируют сигнал. В нашем примере это колонка “Состояние”.
f.Настройте условия, которым должна соответствовать запись после изменения. Чтобы сигнал активировался после установки визы и открылась страница ранее созданного договора для его подписания, состояние визы должно быть положительным.
4.Поместите еще один элемент [Обработка сигнала] после логического оператора и соедините потоком управления. Это сигнал “Отправить на доработку”, который должен срабатывать, если визирующий отклонил визу.
5.Заполните страницу настройки элемента [Обработка сигнала] (Рис. 156). Настройки идентичны настройкам сигнала, который срабатывает после получения визы, с той разницей, что в условиях фильтрации необходимо указать “Состояние=Отрицательная”.
6.Добавьте элемент [Открыть страницу редактирования] после элементов “Договор завизирован” и “Отправить на доработку”. В случае положительной визы открывается ранее созданный договор, в котором необходимо изменить состояние на “Подписан”. В случае отрицательной визы открывается страница ранее созданного договора для доработки.
7.Сохраните процесс.
Важно
Логический оператор [Исключающее “ИЛИ” по событиям] требует публикации процесса. В ходе публикации осуществляется проверка всех созданных процессов.
Смотрите также
•Элемент процесса [Обработка сообщения]