Руководство пользователя RR Tech Service Management

Правила автоматизации: пример 4

Создание цикла повторной обработки в рабочем процессе

Если не удается завершить задачу, статус предыдущих задач не обновляется до ‘Назначено’ и рабочий процесс меняет статус на ‘Процесс приостановлен’. Менеджер рабочих процессов принимает решение по возобновлению выполнения. Для некоторых рабочих процессов это всегда означает повторную обработку ранее выполненной задачи.

В этом примере есть 3 задачи, требующие последовательного выполнения:

  • Разработать новый релиз
    • Передать новый релиз на тестирование
      • Протестировать новый релиз

Если третья задача не выполняется, менеджер рабочих процессов планирует, что правило автоматизации установит статус первой задачи обратно на ‘Назначено’, а двух других задач - на ‘Зарегистрировано’, что обеспечит возврат рабочего процесса к первой задаче.

Ниже описано, как менеджер рабочих процессов может определить основные элементы такого правила автоматизации.

Триггер

Поскольку правило должно выполняться после смены статуса третьей задачи на ‘Сбой’, в поле "Триггер" выбирается вариант ‘При обновлении статуса’.

Выражения

Для правила определяются следующие выражения, которые в дальнейшем используются для определения условия правила и выполняемых им действий:

1. has_failed

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

  • status = failed

2. note

Выражение note необходимо для поиска комментария, который добавляется к третьей задаче при смене ее статуса на ‘Сбой’. Это последний комментарий к задаче, и он описывает причину сбоя. Такое выражение определяется следующим образом:

  • note[last].text

3. develop_task

Выражение develop_task используется для идентификации задачи разработки нового релиза. Тема такой задачи - ‘Разработать новый релиз’, соответственно, выражение определяется следующим образом:

  • workflow.tasks['Разработать новый релиз']

4. transfer_task

Выражение develop_task используется для идентификации задачи передачи нового релиза на тестирование. Тема такой задачи - ‘Передать новый релиз на тестирование’, соответственно, выражение определяется следующим образом:

  • workflow.tasks['Передать новый релиз на тестирование']

Условие

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

  • has_failed

Это все, что нужно добавить в условие правила.

Обновление 1

Первое выполняемое правилом действие — это добавление в задачу разработки комментария, который сообщит разработчику причину повторного открытия задачи. Для этой задачи уже задано выражение develop_task. Это выражение выбирается в поле "Обновить".

Добавить комментарий

Поскольку первое действие добавляет комментарий к задаче разработки, нужно изменить опцию по умолчанию ‘Установить’ на ‘Добавить комментарий’. При этом появится текстовое поле для ввода комментария. Чтобы добавить последний комментарий, оставленный для неуспешной задачи, в создаваемом комментарии можно использовать выражение, определенное для последнего комментария:

Новый релиз не прошел тестирование:

{{note}}

Обновление 2

Второе выполняемое правилом действие - повторное открытие задачи разработки. Для его выполнения в поле "Обновить" устанавливается выражение develop_task.

Задать

Поскольку второе действие меняет статус задачи разработки обратно на ‘Назначено’, в поле "Задать" указывается следующее:

  • status = assigned

Обновление 3

Третье выполняемое правилом действие - обновление задачи передачи на тестирование. Для его выполнения в поле "Обновить" устанавливается выражение transfer_task.

Задать

Поскольку третье действие меняет статус задачи на ‘Зарегистрировано’, в поле "Задать" указывается следующее:

  • status = registered

Обновление 4

Четвертое выполняемое правилом действие - обновление статуса задачи тестирования. Поскольку это задача, для которой определено правило автоматизации, в поле "Обновить" не нужно устанавливать какое-либо значение. По умолчанию оно будет соответствовать текущей записи (т.е. задаче тестирования).

Задать

Поскольку четвертое действие меняет статус задачи тестирования обратно на ‘Зарегистрировано’, в поле "Задать" указывается следующее:

  • status = registered

Обновление 5

Пятое выполняемое правилом действие - обновление статуса рабочего процесса, который был установлен на ‘Процесс приостановлен’ после неудавшегося завершения задачи тестирования. Для обновления рабочего процесса достаточно указать workflow в поле "Обновить".

Задать

Чтобы пятое действие вернуло статус рабочего процесса к значению ‘Внедрение’, в поле "Задать" указывается следующее:

  • status = implementation