Пример 8 правила автоматизации
Назначение задачи правильной команде с помощью оператора if-then-else
Для запроса ‘Переместить настольный ПК’ координатор команды ‘Поддержки конечного пользователя, Самара’ должен переназначить задачи, назначенные его команде, команде ‘Поддержка конечного пользователя, Москва’ если заявитель принадлежит к "Производственной организации", или команде ‘Поддержки конечного пользователя, Москва’, если запрос принадлежит к Центру исследований и разработок. Для переназначения этих задач можно использовать правило автоматизации.
В следующих разделах описывается, как менеджер рабочего процесса может определить ключевые части этого правила автоматизации.
Триггер
Поскольку правило должно выполняться при создании рабочего процесса и задач, в поле Триггер выбирается опция ‘При создании’.
Выражения
Следующие выражения задаются для правила, чтобы впоследствии их можно было использовать для определения условия для правила, а также действий, которые оно должно выполнять:
1. request
Выражение request
используется для поиска первого запроса, связанного с рабочим процессом, к которому относится задача утверждения. Этот запрос нужен нам для получения информации об организации, в которой работает запросчик (это можно записать в одном выражении, но преимущество записи в трех выражениях заключается в том, что все три значения будут регистрироваться во время выполнения правила, что позволяет лучше понять ситуацию). Оно определяется следующим образом:
workflow.requests[first]
2. requester
Выражение requester
используется для получения пользователя ‘Запрошено для’. Это выражение определяется следующим образом:
request.requested_for
3. organization
Выражение organization
используется для получения организации пользователя ‘Запрошено для’. Это выражение определяется следующим образом:
requester.organization
4. old_team_name
Выражение old_team_name
используется для определения фактического назначения команды для задачи. Это выражение определяется следующим образом:
team.name
5. is_from_manuf
Выражение is_from_manuf
используется для проверки того, принадлежит ли заявитель к организации "Производство". Оно может быть определено следующим образом:
organization contains 'Manufacturing'
6. new_team_name
Выражение new_team_name
используется для установки нового назначения команды, если заявитель принадлежит к организации "Производство". Для этого используется тернарный оператор C <strong>then</strong> A <strong>else</strong> B
который принимает три аргумента A, B и C. Первый аргумент A - это аргумент сравнения, второй аргумент B - результат при истинном сравнении, а третий аргумент C - результат при ложном сравнении. Это выражение определяется следующим образом:
is_from_manuf then 'Поддержка конечного пользователя, Москва' else old_team_name
7. is_from_rd_center
Выражение is_from_rd_center
используется для проверки принадлежности заявителя к центру исследований и разработок. Его можно определить следующим образом:
organization contains 'Research & Development'
8. new_team_name
Выражение new_team_name
используется для назначения новой команды, если запросчик принадлежит к "Организации исследований и разработок". Это выражение определяется следующим образом:
is_from_rd_center then 'Поддержка конечного пользователя, Москва' else new_team_name
9. move_task
Выражение move_task
используется для определения задачи по перемещению настольного ПК. Поскольку темой этой задачи является ‘Переместить настольный ПК на новое место’, выражение можно определить следующим образом:
workflow.tasks['Переместить настольный ПК на новое место']
9. update_cmdb
Выражение update_cmdb
используется для определения задачи по перемещению настольного ПК. Поскольку темой этой задачи является ‘Указать новое местоположение в CI-записи ПК’, выражение можно определить следующим образом:
workflow.tasks['Указать новое местоположение в CI-записи ПК']
Условие
После того как выражения определены в правиле, можно задать условие, которое должно быть выполнено для того, чтобы правило было выполнено. В данном примере правило должно выполняться, если запрашивающий принадлежит к организации "Производство или исследования и разработки". Это просто:
is_from_manuf or is_from_rd_center
Обновление 1 Установите команду назначения задачи ‘Подтверждение доступности подключения к локальной сети’.
Правило должно обновить задачу ‘Подтверждение доступности подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле "Обновить" не должно иметь значения. Это приведет к тому, что его значение по умолчанию будет соответствовать текущей записи.
Установить
Поскольку целью правила является обновление команды назначения текущей задачи, в поле "Установить" необходимо указать следующее:
team = new_team_name
Обновление 2 Установить команду назначения задачи ‘Переместить настольный ПК на новое место’
Выражение move_task
было задано для идентификации этой задачи. Поэтому это выражение можно выбрать в поле Обновить.
Установить
Поскольку целью правила является обновление команды назначения текущей задачи, в поле "Установить" необходимо указать следующее:
team = new_team_name
Обновление 3 Установить команду назначения задачи ‘Указать новое местоположение в CI-записи ПК’
Выражение update_cmdb
было задано для идентификации этой задачи. Поэтому это выражение можно выбрать в поле Обновить.
Обновление 4 Установить команду назначения задачи ‘Подтвердить доступность подключения к локальной сети’
Правило должно обновить задачу ‘Подтвердить доступность подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле "Обновить" не должно иметь значения. Это приведет к тому, что его значение по умолчанию будет соответствовать текущей записи.
Установить
Поскольку правило автоматизации сработает, если в поле "участник" задачи будет выбран специалист, не принадлежащий к новой команде, в поле "Установить" необходимо указать следующее:
member = empty
Обновление 5 Установить команду назначения задачи ‘Переместить настольный ПК на новое место’
Выражение move_task
было задано для идентификации этой задачи. Поэтому это выражение можно выбрать в поле "Обновить".
Установить
Поскольку правило автоматизации сработает, если в поле "участник" задачи будет выбран специалист, не принадлежащий к новой команде, в поле "Усановить" необходимо указать следующее:
member = empty
Обновление 6 Поле назначения участника задачи пустое - ‘Указать новое местоположение в CI-записи ПК’
Выражение update_cmdb
было задано для идентификации этой задачи. Поэтому это выражение можно выбрать в поле "Обновить".
Установить
Поскольку правило автоматизации не сработает, если в поле "участник" задачи будет выбран специалист, не принадлежащий к новой команде, в поле "Установить" необходимо указать следующее:
member = empty