Для некоторых типов заявок, обычно, не связанных с инцидентами, бывает необходимо установить конкретную дату, когда работа по заявке должна быть выполнена. Кроме того неплохо иметь способ напомнить агенту, что эта дата наступила.
Давно искал способ осуществить эту возможность без дополнительного кодирования.
Наконец, развитие OTRS, дало такую возможность.
Хочу сказать спасибо Алексею Юсову (alexus), который подсказал способ решения задачи.
Итак.
1. Необходимо создать динамическое поле заявки типа Date/Time, назовем его DueDate. Сразу следует сказать, что у тех, у кого установлен пакет ITSM - такое поле уже есть с именем ITSMDueDate.
2. Необходимо создать еще одно динамическое поле заявки, скажем DueDateReached. Мне показалось более удобным выбрать для него тип Multiselect c заданными значениями "Вкл." и "Выкл." Для него необходимо в SysConfig in Ticket -> Core::TicketDynamicFieldDefault включить параметр Ticket::EventModulePost###TicketDynamicFieldDefault, а в Ticket::TicketDynamicFieldDefault###Element1 указать в поле Name - DueDateReached и в поле Value - 1, что соответствует значению - "Вкл."
3. Для формы ввода заявки (телефонной, почтовой или клиентской - зависит от ваших бизнес-процессов ( у меня только в телефонной, у агента)) необходимо сделать это поле активным для ввода значения (параметр Ticket::Frontend::AgentTicketPhone###DynamicField и/или Ticket::Frontend::AgentTicketEmail###DynamicField и/или Ticket::Frontend::CustomerTicketMessage###DynamicField), указав для имени поля 1 или 2 (доступно для ввода или доступно и обязательно для заполнения)
4. Я, дополнительно внес в этот список и поле DueDateReached со значением 0 (не отображать в форме ввода).
5. Для экранов просмотра заявок (Overview, по желанию, и для TicketZoom - обязательно, иначе, где же агент увидит этот срок?) также надо активировать отображение значения поля DueDate (ITSMDueDate)
6. Необходимо настроить уведомление о наступлении даты выполнения.
Суть работы всего механизма состоит в том, чтобы при наступлении даты (как это проверить чуть ниже) изменить значение поля DueDateReached - c "Вкл." на "Выкл." Это изменение порождает событие TicketDynamicFieldUpdate_DueDateReached, что и приводит к посылке агенту уведомления о наступлении даты выполнения.
Параметры уведомления:
- Событие - TicketDynamicFieldUpdate_DueDateReached
- Фильтр заявок - Состояние - открыта (другие, по желанию)
DueDateReached - Выкл.
- Получатель - Агент(Владелец),(другие по желанию)
- Текст уведомления - настраиваете, как считаете нужным
Например:
Код: Выделить всё
Уважаемый <OTRS_OWNER_UserLastname> <OTRS_OWNER_UserFirstname>
Наступил срок исполнения заявки № <OTRS_TICKET_TicketNumber>
Тема: <OTRS_TICKET_SUBJECT[50]>
Установленный срок -
Выполнить к дате: <OTRS_TICKET_DynamicField_DueDate_Value>
<OTRS_CONFIG_HttpType>://<OTRS_CONFIG_FQDN>/<OTRS_CONFIG_ScriptAlias>index.pl?Action=AgentTicketZoom;TicketID=<OTRS_TICKET_ID>
Параметры:
- Автоматическое выполнение(несколько заявок) - каждый час в рабочие часы рабочих дней - по вашему выбору
- Фильтр заявок - Состояние - открыта
Выполнить к дате (before/after): поставить галку в checkbox, - более чем ...назад, 1 час (по вашему выбору)
DueDateReached - "Вкл."
- Действия по заявке - DueDateReached - "Выкл."
- Сохранить задание.
Теперь, создаем заявки с указанием даты выполнения и пользуемся.