Эскалация не возвращается при повторном открытии заявки

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
Olga89
OTRS Новобранец
Сообщения: 12
Зарегистрирован: 23 окт 2014, 09:44

Эскалация не возвращается при повторном открытии заявки

Сообщение Olga89 » 27 ноя 2014, 14:20

Здравствуйте, коллеги! Пытаюсь реализовать эскалацию заявок через сервисы и SLA для каждой очереди. Возникла проблема: заявка создается - эскалация назначается, после закрытия заявки - эскалация пропадает, все верно. Но после того, как клиент отвечает на заявку и тем самым переводит ее из статуса close в статус open, эскалация не возвращается. Подскажите, пожалуйста, что сделать для того, чтобы эскалация продолжала отсчет? Заранее спасибо!

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 1 раз

Re: Эскалация не возвращается при повторном открытии заявки

Сообщение merkushov » 27 ноя 2014, 20:18

После снятия эскалации, в заявке данные о ней обнуляются. Следы можно найти только в истории.
Для того чтобы восстановить отсчёт эскалации после её снятия вам нужно написать свой обработчик (1 pm файл) и повесить его на событие TicketStateUpdate. В обработчике, достаньте все записи истории по заявке и на их основе восстановите эскалацию.
Меркушов Виктор, perl программист

Olga89
OTRS Новобранец
Сообщения: 12
Зарегистрирован: 23 окт 2014, 09:44

Re: Эскалация не возвращается при повторном открытии заявки

Сообщение Olga89 » 12 дек 2014, 09:12

Виктор, подскажите, пожалуйста, как писать обработчик и где его писать? Можете какой-нибудь примерчик скинуть?

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 1 раз

Re: Эскалация не возвращается при повторном открытии заявки

Сообщение merkushov » 12 дек 2014, 11:42

Пример и действующие варианты обработчиков лежат тут Kernel/System/Ticket/Event/*
Подключать их к коду лучше через 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 программист

Ответить