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

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

Добавлено: 17 июн 2014, 09:49
mms
Коллеги, добрый день!

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

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

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

Вопрос в том, как передать в CurrentDate текущую дату?
Сдается мне, что без костылей проблему не решить.

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

Добавлено: 17 июн 2014, 12:49
mms
Вопрос снимается.
Правда без костыля так и не обошлось.

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

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'е далеко не гуру...