Правила автоматизации: пример 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 'Производственная организация'
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 Выбор команды для назначения задачи ‘Подтвердить доступность подключения к локальной сети’.
Правило обновляет задачу ‘Подтвердить доступность подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле "Обновить" не нужно заполнять. В этом случае значение по умолчанию присваивается текущей записи.
Задать
Цель правила - выбор новой команды для назначения текущей задачи, соответственно, в поле "Задать" указывается следующее:
team = new_team_name
Обновление 2 Выбор команды для назначения задачи ‘Переместить настольный ПК на новое место’
Заданное ранее выражение move_task
идентифицирует эту задачу, соответственно, это выражение выбирается в поле "Обновить".
Задать
Цель правила - выбор новой команды для назначения текущей задачи, соответственно, в поле "Задать" указывается следующее:
team = new_team_name
Обновление 3 Выбор команды для назначения задачи ‘Указать новое местоположение в записи КЕ для ПК’
Заданное ранее выражение update_cmdb
идентифицирует эту задачу, соответственно, это выражение выбирается в поле "Обновить".
Обновление 4 Отсутствие назначенного участника в задаче ‘Подтвердить доступность подключения к локальной сети’
Правило обновляет задачу ‘Подтвердить доступность подключения к локальной сети’. Поскольку это задача, для которой определено правило автоматизации, поле "Обновить" не нужно заполнять. В этом случае значение по умолчанию присваивается текущей записи.
Задать
Правило автоматизации не будет выполнено, если в задаче в поле "Участник" указан специалист не из новой команды. Соответственно, в поле "Задать" указывается следующее:
member = empty
Обновление 5 Отсутствие назначенного участника в задаче ‘Переместить настольный ПК на новое место’
Заданное ранее выражение move_task
идентифицирует эту задачу, соответственно, это выражение выбирается в поле "Обновить".
Задать
Правило автоматизации не будет выполнено, если в задаче в поле "Участник" указан специалист не из новой команды. Соответственно, в поле "Задать" указывается следующее:
member = empty
Обновление 6 Отсутствие назначенного участника в задаче ‘Указать новое местоположение в записи КЕ для ПК’
Заданное ранее выражение update_cmdb
идентифицирует эту задачу, соответственно, это выражение выбирается в поле "Обновить".
Задать
Правило автоматизации не будет выполнено, если в задаче в поле "Участник" указан специалист не из новой команды. Соответственно, в поле "Задать" указывается следующее:
member = empty