Как использовать события для ветвления процесса
Для ветвления процесса в зависимости от наступления тех или иных событий используется логический оператор [Исключающее “ИЛИ” по событиям]. События, от выполнения которых зависит ветвление процесса, помещаются на исходящие потоки логического оператора (Рис. 204).
Пример
После создания договора необходимо отправить его на визирование. Дальнейшее выполнение бизнес-процесса будет зависеть от результата визирования. При получении визы договор необходимо подписать. Если виза была отклонена — договор необходимо отправить на доработку.
Для создания договора используется элемент [Открыть страницу редактирования]. Настройки на странице идентичны настройкам при создании нового документа.
Для отправки договора на визирование необходимо использовать элемент [Автогененируемая страница]. Настройка данного элемента описана в статье “Элемент процесса [Автогенерируемая страница]”. После отправки договора на визирование необходимо добавить визу на страницу договора. Для добавления визы используется элемент [Добавить данные].
Схема с реализованным ветвлением представлена на Рис. 205.
Чтобы построить ветвление процесса, исходящий поток каждой ветви которого должен активироваться в зависимости от результата:
Поместите логический оператор [Исключающее “ИЛИ” по событиям] после действия “Добавить визу” и соедините потоком управления.
Поместите элемент [Обработка сигнала] после логического оператора и соедините потоком управления.
Рис. 206):
Заполните страницу настройки элемента [Обработка сигнала] в случае успешного визирования договора (
В поле [Сигнал какого типа получен?] выберите значение “Получен сигнал от объекта”.
Нажмите на поле [Идентификатор записи], чтобы открыть окно определения значения параметра:
•Выберите элемент [Добавить визу] на вкладке [Элементы процесса].
•Кликните дважды на значении параметра [Id созданной записи]. Выбранное значение появится в верхней части окна определения значения параметра.
•Нажмите на кнопку [Сохранить].
Укажите объект, от которого необходимо получить сигнал. В нашем примере это объект “Виза договора”.
В поле [Какое событие должно произойти?] укажите “Изменение записи”.
Выберите колонку, изменения в которой активируют сигнал. В нашем примере это колонка “Состояние”.
Настройте условия, которым должна соответствовать запись после изменения. Чтобы сигнал активировался после установки визы и открылась страница ранее созданного договора для его подписания, состояние визы должно быть положительным.
Поместите еще один элемент [Обработка сигнала] после логического оператора и соедините потоком управления. Это сигнал “Отправить на доработку”, который должен срабатывать, если визирующий отклонил визу.
Рис. 207): Настройки идентичны настройкам сигнала, который срабатывает после получения визы, с той разницей, что в условиях фильтрации необходимо указать “Состояние=Отрицательная”.
Для запуска обрабатывающего сигнала заполните панель настройки элемента [Обработка сигнала] (
Добавьте элемент [Открыть страницу редактирования] после элементов “Договор завизирован” и “Отправить на доработку”. В случае положительной визы открывается ранее созданный договор, в котором необходимо изменить состояние на “Подписан”. В случае отрицательной визы открывается страница ранее созданного договора для доработки.
Сохраните процесс.
Важно
Логический оператор [Исключающее “ИЛИ” по событиям] требует публикации процесса. В ходе публикации осуществляется проверка всех созданных процессов.
Смотрите также
•Промежуточное событие [Обработка сообщения]