система R-Service

Пример 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