Перейти к содержимому
R-Service R-Service
Руководство пользователя Р-Сервис (RR Tech Service Management)

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

Назначение задачи правильной команде посредством оператора if-then-else

Заголовок раздела «Назначение задачи правильной команде посредством оператора 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 'Производственная организация'

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 'Центр исследований и разработок'

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 используется для определения задачи по изменению местоположения настольного ПК в записи КЕ. Поскольку темой этой задачи является ‘Указать новое местоположение в записи КЕ для ПК’, выражение определяется следующим образом:

  • workflow.tasks['Указать новое местоположение в записи КЕ для ПК']

 

После определения выражений необходимо задать условие, при котором выполняется правило автоматизации. В рассматриваемом примере правило выполняется, если инициатор относится к “Производственной организации” или к “Центру исследований и разработок”. Условие имеет следующий вид:

  • is_from_manuf or is_from_rd_center

 

Обновление 1 Выбор команды для назначения задачи ‘Подтвердить доступность подключения к локальной сети’.

Заголовок раздела «Обновление 1 Выбор команды для назначения задачи ‘Подтвердить доступность подключения к локальной сети’.»

Правило обновляет задачу ‘Подтвердить доступность подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле “Обновить” не нужно заполнять. В этом случае значение по умолчанию присваивается текущей записи.

 

Цель правила - выбор новой команды для назначения текущей задачи, соответственно, в поле “Задать” указывается следующее:

  • team = new_team_name

Обновление 2 Выбор команды для назначения задачи ‘Переместить настольный ПК на новое место’

Заголовок раздела «Обновление 2 Выбор команды для назначения задачи ‘Переместить настольный ПК на новое место’»

Заданное ранее выражение move_task идентифицирует эту задачу, соответственно, это выражение выбирается в поле “Обновить”.

 

Цель правила - выбор новой команды для назначения текущей задачи, соответственно, в поле “Задать” указывается следующее:

  • team = new_team_name

Обновление 3 Выбор команды для назначения задачи ‘Указать новое местоположение в записи КЕ для ПК’

Заголовок раздела «Обновление 3 Выбор команды для назначения задачи ‘Указать новое местоположение в записи КЕ для ПК’»

Заданное ранее выражение update_cmdb идентифицирует эту задачу, соответственно, это выражение выбирается в поле “Обновить”.

Обновление 4 Отсутствие назначенного участника в задаче ‘Подтвердить доступность подключения к локальной сети’

Заголовок раздела «Обновление 4 Отсутствие назначенного участника в задаче ‘Подтвердить доступность подключения к локальной сети’»

Правило обновляет задачу ‘Подтвердить доступность подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле “Обновить” не нужно заполнять. В этом случае значение по умолчанию присваивается текущей записи.

Правило автоматизации не будет выполнено, если в задаче в поле “Участник” указан специалист не из новой команды. Соответственно, в поле “Задать” указывается следующее:

  • member = empty

Обновление 5 Отсутствие назначенного участника в задаче ‘Переместить настольный ПК на новое место’

Заголовок раздела «Обновление 5 Отсутствие назначенного участника в задаче ‘Переместить настольный ПК на новое место’»

Заданное ранее выражение move_task идентифицирует эту задачу, соответственно, это выражение выбирается в поле “Обновить”.

 

Правило автоматизации не будет выполнено, если в задаче в поле “Участник” указан специалист не из новой команды. Соответственно, в поле “Задать” указывается следующее:

  • member = empty

Обновление 6 Отсутствие назначенного участника в задаче ‘Указать новое местоположение в записи КЕ для ПК’

Заголовок раздела «Обновление 6 Отсутствие назначенного участника в задаче ‘Указать новое местоположение в записи КЕ для ПК’»

Заданное ранее выражение update_cmdb идентифицирует эту задачу, соответственно, это выражение выбирается в поле “Обновить”.

 

Правило автоматизации не будет выполнено, если в задаче в поле “Участник” указан специалист не из новой команды. Соответственно, в поле “Задать” указывается следующее:

  • member = empty