Правила автоматизации: пример 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