Страница 1 из 1

Уведомление о наступлении даты выполнения DueDate

Добавлено: 17 мар 2014, 10:03
ykolesnikov
Добрый день!
Для некоторых типов заявок, обычно, не связанных с инцидентами, бывает необходимо установить конкретную дату, когда работа по заявке должна быть выполнена. Кроме того неплохо иметь способ напомнить агенту, что эта дата наступила.
Давно искал способ осуществить эту возможность без дополнительного кодирования.
Наконец, развитие 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>
7. Создаете задание Планировщика
Параметры:
- Автоматическое выполнение(несколько заявок) - каждый час в рабочие часы рабочих дней - по вашему выбору
- Фильтр заявок - Состояние - открыта
Выполнить к дате (before/after): поставить галку в checkbox, - более чем ...назад, 1 час (по вашему выбору)
DueDateReached - "Вкл."
- Действия по заявке - DueDateReached - "Выкл."
- Сохранить задание.
Теперь, создаем заявки с указанием даты выполнения и пользуемся. :)

Re: Уведомление о наступлении даты выполнения DueDate

Добавлено: 15 дек 2015, 15:48
orient_19
Небольшое дополнение:
Мне понадобилось сортировать тикеты по дате, когда нужно их выполнить, в дайджесте.
Чтобы добавить в виджет "Новые заявки" столбец "Выполнить к дате", нужно в конфигурации системы "Ticket -> Frontend::Agent::Dashboard" в параметре "DashboardBackend###0120-TicketNew" добавить в "DefaultColumns" новую колонку "DynamicField_DueDate" со значением "1 - включено" или "2 - включено по умолчанию".
Для остальных виджетов столбец задается аналогично:
заявки с напоминанием - DashboardBackend###0100-TicketPendingReminder
эскалированные заявки - DashboardBackend###0110-TicketEscalation
новые заявки - DashboardBackend###0120-TicketNew
открытые заявки (требуется ответить) - DashboardBackend###0130-TicketOpen

Re: Уведомление о наступлении даты выполнения DueDate

Добавлено: 12 янв 2018, 10:56
paver
Имели место странные глюки, возможно связанные с версией продукта (сейчас мучаю 5.0.23). При ручной установке этого поля в 0 соответствующая запись просто исчезала из таблицы dynamic_field_value.

Удалось победить заменой типа поля DueDateReached на выпадающий список. Оно и по смыслу правильнее, поскольку никакого множественного значения в нем не должно быть.

Бонусом получил возможность задавать значение DueDateReached при модификации ранее созданных заявок (без этого поля) на форме редактирования динамических полей.
при наступлении даты (как это проверить чуть ниже) изменить значение поля DueDateReached - c "Вкл." на "Выкл.
Вообще-то наоборот ))
У меня:
ITSMDueDate - Срок
DueDateReached - Срок достигнут (0 - Нет, 1 - Да)