Обработка связей действий
Связи действий соединяют узлы задачи в последовательность:
В простейшей форме связи просто сообщают рабочему процессу, какими должны быть следующие действия после события. Если для задачи существует несколько возможных выходов, можно с помощью связей сконфигурировать, что должно произойти далее в зависимости от того, как завершится задача.
Для всех узлов, за исключением узла Начало, должны существовать входящие связи, которые должны быть включены в рабочий процесс.
После того как узел добавлен, необходимо связать его с другим узлом.
1. Выберите средство связывания .
* 
Пока узел выбран, добавить связи невозможно. При попытке добавить связь убедитесь, что нет выбранных узлов.
Выбранные узлы выделяются черной рамкой:
2. Щелкните первый узел и перетащите курсор ко второму узлу.
3. Когда курсор достигнет второго узла, отпустите кнопку мыши.
См. примеры, приведенные ниже.
Основные связи
Обработка связей действий, если используется обработка состояний действий по умолчанию.
Связи управляющих событий
Обработка связей действий для задач, в которые включены пользовательские управляющие события.
Замкнутые связи
Задание опции Ссылка цикла в свойствах связей.
Основные связи
Самая распространенная основная связь - это та, с помощью которой просто утверждается, что при завершении одного события может начаться следующее. Можно также создать связи для других действий рабочего процесса. Например, можно задать, что событие должно быть прервано, если приостановлена конкретная задача.
Рассмотрим следующий пример.
1. Создадим следующие узлы.
"На проверке" - робот стандартных методов автоматически задает для состояния объекта значение "На проверке". Взаимодействия с пользователем не требуется.
"Проверить объект" - это задание, назначаемое одиночному пользователю для проверки объекта.
2. Создадим основную связь между этими двумя узлами:
3. Дважды щелкните связь, чтобы открыть окно Свойства ссылки:
Это означает, что сразу после завершения роботом стандартных методов своего задания (помещения объекта в состояние "На проверке") автоматически создается новое задание "Проверить объект" и назначается пользователю.
4. Для более сложного рабочего процесса, как правило, включающего маршрутизацию соединений или действия администрирования рабочего процесса, можно использовать дополнительные опции в окне Свойства ссылки.
Например, пользователь с соответствующими разрешениями может использовать действия диспетчера рабочих процессов для приостановки узла. Затем можно использовать события связи, чтобы гарантировать, что в случае приостановки задачи руководителю проекта будет отправлено электронное письмо:
Связи управляющих событий
Обычно для задач существуют управляющие события. Дополнительные сведения см. в разделе Вкладка "Маршрутизация".
Например, вы решили предоставить пользователю, выполняющему задание "Проверить объект", две опции для завершения задания: "Требуется работа" и "Продолжить".
При конфигурировании исходящих из задачи связей опция Завершить будет недоступна. Вместо этого отображаются управляющие события:
Для каждого пользовательского управляющего события необходимо конфигурировать исходящую связь. Например, можно указать, что если пользователь выбирает "Требуется работа", то объект перемещается в состояние "Выполняется" Если пользователь выбирает "Продолжить", объект перемещается в состояние "Проверка завершена":
Замкнутые связи
Замкнутые связи (ссылки циклов) можно использовать для разделов рабочего процесса, выполнение которых, возможно, потребуется повторить несколько раз. Замкнутая связь сбрасывает все узлы своего пути, позволяя выполнить действия в узлах несколько раз.
Например, рабочий процесс включает следующий ряд событий.
1. Объект перемещается в состояние "На проверке".
2. Если объект находится в состоянии "На проверке", создается задание "Проверить объект" и назначается проверяющему.
3. Если пользователь завершает задачу, выбрав опцию "Требуется работа", объект перемещается в состояние "Выполняется".
a. Если объект находится в состоянии "Выполняется", создается задание "Создать новую версию объекта" и назначается владельцу объекта.
b. Когда владелец объекта завершает задание "Создать новую версию объекта", объект возвращается в состояние "На проверке".
4. Проверяющему назначается для выполнения новое задание "Проверить объект".
Неизвестно, сколько раз проверяющий может выбрать опцию "Требуется работа", а пытаться конфигурировать процесс вручную чрезвычайно сложно:
Намного лучше была бы опция с инструкцией запустить снова раздел рабочего процесса. Для этого можно выбрать Ссылка цикла в свойствах ссылок:
В результате при каждом выполнении задания "Создать новую версию объекта" объект возвращается в состояние "На проверке", а проверяющему назначается новое задание. Замкнутые связи отображаются красным цветом:
Несколько дополнительных заметок о замкнутых связях.
Для замкнутых связей требуется замкнутый цикл. В следующем рабочем процессе замкнутая связь не имеет смысла:
Чтобы оказывать влияние на рабочий процесс, замкнутая связь должна быть частью замкнутого цикла.

Замкнутые связи сбрасывают любые соединители, находящиеся непосредственно за пределами цикла.
Например, имеется следующий рабочий процесс.
Задание "Утверждение" инициируется, если все три задачи проверки завершаются выбором действия "Согласовать".
Замкнутая связь инициируется, если "Проверка 1", "Проверка 2" или "Проверка 3" завершаются выбором действия "Отклонить". Замкнутая связь состоит из следующих узлов:
"На проверке"
"Проверка_1"
"Проверка_2"
"Проверка_3"
Соединитель "Или"
Также цикл сбрасывает любые непосредственно прилегающие соединители. В данном примере это соединитель "И":
В соответствии с этим рассмотрим следующий сценарий.
1. Робот "На проверке" активируется, инициируя задания "Проверка_1", "Проверка_2" и "Проверка_3".
2. "Проверка_1" завершается выбором действия "Согласовать".
3. "Проверка_2" завершается выбором действия "Согласовать".
В этой точке соединитель "И" по-прежнему ожидает, что "Проверка_3" завершится выбором действия "Согласовать", перед инициированием задания "Утверждение".
4. "Проверка_3" завершается выбором действия "Отклонить", инициируя замкнутую связь.
5. Робот "На проверке" активируется снова, повторно инициируя задания "Проверка_1", "Проверка_2" и "Проверка_3".
6. "Проверка_3" завершается выбором действия "Согласовать".
Однако, несмотря на то что все три проверки теперь завершены выбором действия "Согласовать", задание "Утверждение" не инициируется.
Это происходит, потому что при инициировании замкнутой связи был также сброшен соединитель "И". При этом был аннулирован предыдущий выбор действия "Согласовать" для заданий "Проверка_1" и "Проверка_2". Теперь рабочий процесс снова ожидает завершения заданий "Проверка_1" и "Проверка_2".

Замкнутая связь оказывает влияние только на соединители, непосредственно прилегающие к ней, даже если замкнутая связь может изменить их поведение.
Например, имеется следующий рабочий процесс.
Задание "Доставка" настроено так, что можно выбрать "Да" или "Нет". Если выбрано "Да", становится доступна любая из следующих опций: "Доставка A", "Доставка B" и "Доставка C".
Предположим, задание "Доставка" завершается выбором значения "Да".
Рабочий процесс проверяет, была ли выбрана какая-либо опция доставки. Если это сделано, он переходит к условному соединителю, который инициирует задание "Доставка A", "Доставка B" или "Доставка C" в зависимости от выбранных опций.
Рабочий процесс инициирует задание "Подтверждение". По завершении задания "Подтверждение" замкнутая связь сбрасывает задание "Доставка" и все соседние соединители:
Однако это не влияет на соединители, которые не являются соседними, даже если они критически изменяются. Рассмотрим следующий сценарий.
1. Задание "Доставка" завершается выбором "Да", затем выбирается опция "Доставка B".
Инициируется задание "Подтверждение".
Опция "Доставка B" инициирует робот задания B.
2. Задание "Подтверждение" завершается инициированием замкнутой связи.
3. Задание "Доставка" инициируется повторно.
4. Задание "Доставка" завершается выбором значения "Да" с последующим выбором опций "Доставка A", "Доставка B" и "Доставка C".
Роботы заданий "Доставка A" и "Доставка C" никогда не инициируются. Инициируется только робот задания "Доставка B". Причина заключается в том, что условный разъем не был сброшен как часть замкнутой связи, был сброшен только соседний соединитель "ИЛИ".
Было ли это полезно?