Эскалация не возвращается при повторном открытии заявки
Модератор: ykolesnikov
Эскалация не возвращается при повторном открытии заявки
Здравствуйте, коллеги! Пытаюсь реализовать эскалацию заявок через сервисы и SLA для каждой очереди. Возникла проблема: заявка создается - эскалация назначается, после закрытия заявки - эскалация пропадает, все верно. Но после того, как клиент отвечает на заявку и тем самым переводит ее из статуса close в статус open, эскалация не возвращается. Подскажите, пожалуйста, что сделать для того, чтобы эскалация продолжала отсчет? Заранее спасибо!
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Эскалация не возвращается при повторном открытии заявки
После снятия эскалации, в заявке данные о ней обнуляются. Следы можно найти только в истории.
Для того чтобы восстановить отсчёт эскалации после её снятия вам нужно написать свой обработчик (1 pm файл) и повесить его на событие TicketStateUpdate. В обработчике, достаньте все записи истории по заявке и на их основе восстановите эскалацию.
Для того чтобы восстановить отсчёт эскалации после её снятия вам нужно написать свой обработчик (1 pm файл) и повесить его на событие TicketStateUpdate. В обработчике, достаньте все записи истории по заявке и на их основе восстановите эскалацию.
Меркушов Виктор, perl программист
Re: Эскалация не возвращается при повторном открытии заявки
Виктор, подскажите, пожалуйста, как писать обработчик и где его писать? Можете какой-нибудь примерчик скинуть?
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Эскалация не возвращается при повторном открытии заявки
Пример и действующие варианты обработчиков лежат тут Kernel/System/Ticket/Event/*
Подключать их к коду лучше через xml файл, который нужно положить в Kernel/Config/Files/ Пример xml блока
при подключении нужно указать событие, по которому будет запускаться обработчик.
Методы для работы с историей заявок лежат в Kernel::System::Ticket
Генерация события TicketStateUpdate происходит в Kernel::System::Ticket::TicketStateSet. Помимо идентификатора заявки в обработчик передаётся хэш, содержащий поля заявки в её предыдущем состоянии.
Остальное дело техники.
Подключать их к коду лучше через xml файл, который нужно положить в Kernel/Config/Files/ Пример xml блока
Код: Выделить всё
<ConfigItem Name="Ticket::EventModulePost###100-ArchiveRestore" Required="1" Valid="1">
<Description Translatable="1">Restores a ticket from the archive (only if the event is a state change, from closed to any open available state).</Description>
<Group>Ticket</Group>
<SubGroup>Core::Ticket</SubGroup>
<Setting>
<Hash>
<Item Key="Module">Kernel::System::Ticket::Event::ArchiveRestore</Item>
<Item Key="Event">TicketStateUpdate</Item>
</Hash>
</Setting>
</ConfigItem>
Методы для работы с историей заявок лежат в Kernel::System::Ticket
Генерация события TicketStateUpdate происходит в Kernel::System::Ticket::TicketStateSet. Помимо идентификатора заявки в обработчик передаётся хэш, содержащий поля заявки в её предыдущем состоянии.
Остальное дело техники.
Меркушов Виктор, perl программист