我是OTRS(3.2)的新手,也是PERL的新手,但我已经完成了设置OTRS的任务,这样它就可以调用我们的远程Web服务,这样就可以在我们结束时创建一条记录。票证设置为“已关闭”。 我设置了各种动态字段,以便客户服务代表可以填写其他数据,这些数据将与票证详细信息一起传递到Web服务调用中。 当票证被“关闭”时,我无法触发webservice调用,但是当“优先级”被更改时我确实触发了它,所以我现在只是使用它来测试web服务。 我只是使用OTRS附带的Test.pm和TestSimple.pm文件。
当我查看Webserice的调试器时,我可以看到正在进行调用:
$VAR1 = {
'TicketID' => '6'
};
我的webservice目前只有一个方法“create”,它只返回true进行测试。
但是我从Test.pm
获得以下内容“没有TicketNumber(2014-09-02 09:20:42,错误)”
以及TestSimple.pm中的以下内容
“SOAP调用错误:404找不到/TARGET/SHARE/var/otrs/Kernel/GenericInterface/Transport/HTTP/SOAP.pm第578行(2014-09-02 09:20:43,错误)< / p>
我在Google上花了无数个小时但却找不到任何相关内容。我能找到的只是Test.pm和TestSimple.pm的代码,但没有什么真正有助于我根据自己的需要创建自定义调用程序,并在OTRS中配置Web服务以使其工作。
有没有人有我可以查看的样本调用者,看看如何设置它?
基本上我需要将票证信息和我的自定义动态字段一起传递给我的webservice。从那里我可以在我的最后创建记录并做任何处理。 我不知道如何设置Invoker以传递必要的票证字段和动态字段,以及如何在远程Web服务中调用特定方法。
我想让Test.pm和TestSimple.pm工作是第一步,然后我可以根据我的需要修改它们。我根本没有使用过PERL,所以非常感谢任何帮助。
答案 0 :(得分:0)
我也在努力应对类似的要求。我也从来没有在PERL中编程,但我至少可以告诉你&#34;没有TicketNumber&#34;在Test.pm中就是PrepareRequest方法,在那里你可以看到这段代码:
# we need a TicketNumber
if ( !IsStringWithData( $Param{Data}->{TicketNumber} ) ) {
return $Self->{DebuggerObject}->Error( Summary => 'Got no TicketNumber' );
}
您应该将对TicketNumber的所有引用更改为TicketID,或者删除任何验证(也有映射到ReturnedData变量)。
在WS接口上调用特定方法非常简单(但文档很少)。您在&#34; OTRS中指定的Invoker名称作为请求者&#34; Web服务配置的一部分对应于将被调用的WS方法。因此,如果你有一个名为&#34的方法的WS接口;创建&#34;只需命名Invoker&#34;创建&#34;太
就动态领域的聚集而言,暂时无法帮助你,对不起。
干杯