Comments 6
OTRS по наступлению события отправляет только id тикета. Заявлено, что можно передавать и другие параметры. Однако это так и не удалось.
Если посмотрите на функцию PrepareRequest в Test.pm, то можете увидеть какие именно параметры для запроса подготавливаются (по-умолчанию Ticket
0
Ребята с форума пробовали
$ReturnData{Owner} = $Param{Data}=>{Owner};
Я пробовал
$ReturnData{CustomerID} = $Param{Data}=>{CustomerID};
Увы не помогло ни мне, ни им.
OTRS начал понимать, что CustomerID это переменная, но во внешнюю систему приходит пустое значение.
$ReturnData{Owner} = $Param{Data}=>{Owner};
Я пробовал
$ReturnData{CustomerID} = $Param{Data}=>{CustomerID};
Увы не помогло ни мне, ни им.
OTRS начал понимать, что CustomerID это переменная, но во внешнюю систему приходит пустое значение.
0
Да. Судя по отладчику, invoker'у в принципе поступает только:
$VAR1 = {
'TicketID' => '14014'
};
0
В общем список полей для определённого события захардкожен. Например для событий по тикетам в Kernel/System/Ticket.pm. Вот например кусок для события TicketCreate:
И здесь действительно только TicketID. А вот например для события TicketStateUpdate:
И здесь действительно уже кроме TicketID передаётся ещё и объект OldTicketData:
# trigger event
$Self->EventHandler(
Event => 'TicketCreate',
Data => {
TicketID => $TicketID,
},
UserID => $Param{UserID},
);
И здесь действительно только TicketID. А вот например для события TicketStateUpdate:
# trigger event, OldTicketData is needed for escalation events
$Self->EventHandler(
Event => 'TicketStateUpdate',
Data => {
TicketID => $Param{TicketID},
OldTicketData => \%Ticket,
},
UserID => $Param{UserID},
);
И здесь действительно уже кроме TicketID передаётся ещё и объект OldTicketData:
$VAR1 = {
'OldTicketData' => {
'Age' => 21850,
'ArchiveFlag' => 'n',
'ChangeBy' => '20',
'Changed' => '2017-09-04 17:44:18',
'CreateBy' => '1',
'CreateTimeUnix' => '1504514408',
'Created' => '2017-09-04 11:40:08',
'CustomerID' => '1024',
'CustomerUserID' => 'tester',
'EscalationDestinationDate' => '2017-09-04 15:40:08',
'EscalationDestinationIn' => '2h 4m',
'EscalationDestinationTime' => '1504528808',
'EscalationResponseTime' => '0',
'EscalationSolutionTime' => '1504528808',
'EscalationTime' => -7450,
'EscalationTimeWorkingTime' => '-7450',
'EscalationUpdateTime' => '1504608258',
'GroupID' => '2',
'Lock' => 'lock',
'LockID' => '2',
'Owner' => 'isa',
'OwnerID' => '20',
'Priority' => '3 Обычный',
'PriorityID' => '3',
'Queue' => 'Корзина',
'QueueID' => '10',
'RealTillTimeNotUsed' => '0',
'Responsible' => 'root@localhost',
'ResponsibleID' => '1',
'SLAID' => '',
'ServiceID' => '',
'SolutionTime' => -7450,
'SolutionTimeDestinationDate' => '2017-09-04 15:40:08',
'SolutionTimeDestinationTime' => '1504528808',
'SolutionTimeEscalation' => 1,
'SolutionTimeWorkingTime' => '-7450',
'State' => 'open',
'StateID' => '4',
'StateType' => 'open',
'TicketID' => '14014',
'TicketNumber' => '20170904109849',
'Title' => 'web service test',
'Type' => 'default',
'TypeID' => '1',
'UnlockTimeout' => '1504536258',
'UntilTime' => 0,
'UpdateTime' => 72000,
'UpdateTimeDestinationDate' => '2017-09-05 13:44:18',
'UpdateTimeDestinationTime' => '1504608258',
'UpdateTimeWorkingTime' => 14400
},
'TicketID' => '14014'
};
0
в PrepareRequest можно обращаться к любым объектам OTRS, например для получения всего объекта тикета:
после чего выдать нужные поля в Data…
Еще замечу, что не надо хранить свои правки в otrs/Kernel/* — для этого есть каталог otrs/Custom (то есть свой Invoker надо положить в otrs/Custom/Kernel/GenericInterface/Invoker).
В этом случае при обновлении самого OTRS ваши правки не будут потеряны
my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket');
my %Ticket = $TicketObject->TicketGet(
TicketID => $Param{Data}->{TicketID},
DynamicFields => 1,
);
после чего выдать нужные поля в Data…
Еще замечу, что не надо хранить свои правки в otrs/Kernel/* — для этого есть каталог otrs/Custom (то есть свой Invoker надо положить в otrs/Custom/Kernel/GenericInterface/Invoker).
В этом случае при обновлении самого OTRS ваши правки не будут потеряны
0
Sign up to leave a comment.
Пошаговая настройка веб-сервисов в OTRS 5 в качестве запрашивающего