Коллеги, добрый день!
Поделитесь, пожалуйста, опытом, если кто решал похожую задачу.
Есть необходимость выводить в дайджесте, в блоке "Заявки с напоминанием (pending tickets)" те заявки, по которым DueDate > чем текущие время / дата.
В Ticket -> Frontend::Agent::Dashboard
есть возможность задать критерии отбора заявок, например
DynamicField_ITSMDueDate_GreaterThan=CurrentDate;StateType=open;SortBy=DynamicField_ITSMDueDate;OrderBy=Down;
Вопрос в том, как передать в CurrentDate текущую дату?
Сдается мне, что без костылей проблему не решить.
Вывод заявок с просроченным DueDate в дайджесте
Модератор: ykolesnikov
Вывод заявок с просроченным DueDate в дайджесте
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)
Re: Вывод заявок с просроченным DueDate в дайджесте
Вопрос снимается.
Правда без костыля так и не обошлось.
Решили следующим образом:
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
add after
Прошу прощения за корявый код, в perl'е далеко не гуру...
Правда без костыля так и не обошлось.
Решили следующим образом:
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;
Код: Выделить всё
if ($DynamicFieldsParameters{$1}->{$2} eq "CurrentDate"){
my $SystemTime = $Self->{TimeObject}->SystemTime();
my $TimeStamp = $Self->{TimeObject}->SystemTime2TimeStamp(
SystemTime => $SystemTime,
);
$DynamicFieldsParameters{$1}->{$2} = $TimeStamp;
}
Mstislav Martynyuk
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)
Проектирование и разработка информационных систем: https://www.reunico.com
OTRS 3.1.1 (SLES) -> OTRS 6.0.5 (Debian 9)