Вывод заявок с просроченным DueDate в дайджесте

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

Модератор: ykolesnikov

Ответить
mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Вывод заявок с просроченным DueDate в дайджесте

Сообщение mms » 17 июн 2014, 09:49

Коллеги, добрый день!

Поделитесь, пожалуйста, опытом, если кто решал похожую задачу.

Есть необходимость выводить в дайджесте, в блоке "Заявки с напоминанием (pending tickets)" те заявки, по которым DueDate > чем текущие время / дата.
В Ticket -> Frontend::Agent::Dashboard
есть возможность задать критерии отбора заявок, например

DynamicField_ITSMDueDate_GreaterThan=CurrentDate;StateType=open;SortBy=DynamicField_ITSMDueDate;OrderBy=Down;

Вопрос в том, как передать в CurrentDate текущую дату?
Сдается мне, что без костылей проблему не решить.
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

mms
OTRS Новобранец
Сообщения: 43
Зарегистрирован: 28 фев 2012, 17:54
Поблагодарили: 2 раза

Re: Вывод заявок с просроченным DueDate в дайджесте

Сообщение mms » 17 июн 2014, 12:49

Вопрос снимается.
Правда без костыля так и не обошлось.

Решили следующим образом:

1. Настройка.
в конфигурации OTRS
Frontend::Agent::Dashboard (Ticket)

Attributes: DynamicField_ITSMDueDate_SmallerThan=CurrentDate;StateType=open;SortBy=DynamicField_ITSMDueDate;OrderBy=Down;
Filter: All
DefaultColumns =>
DynamicField_ITSMDueDate = 2

2. Костыль.
в Kernel/Output/HTML/DashboardTicketGeneric.pm

find

Код: Выделить всё

        # check if parameter is a dynamic field and capture dynamic field name (with DynamicField_)
        # in $1 and the Operator in $2
        # possible Dynamic Fields options include:
        #   DynamicField_NameX_Equals=123;
        #   DynamicField_NameX_Like=value*;
        #   DynamicField_NameX_GreaterThan=2001-01-01 01:01:01;
        #   DynamicField_NameX_GreaterThanEquals=2001-01-01 01:01:01;
        #   DynamicField_NameX_SmallerThan=2002-02-02 02:02:02;
        #   DynamicField_NameX_SmallerThanEquals=2002-02-02 02:02:02;
        elsif ( $Key =~ m{\A (DynamicField_.+?) _ (.+?) \z}sxm ) {
            $DynamicFieldsParameters{$1}->{$2} = $Value;
add after

Код: Выделить всё

            if ($DynamicFieldsParameters{$1}->{$2} eq "CurrentDate"){
               my $SystemTime = $Self->{TimeObject}->SystemTime();
               my $TimeStamp = $Self->{TimeObject}->SystemTime2TimeStamp(
                  SystemTime => $SystemTime,
               );
               $DynamicFieldsParameters{$1}->{$2} = $TimeStamp;
            }
Прошу прощения за корявый код, в perl'е далеко не гуру...
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)

Ответить