【问题标题】:OTRS Webservice as Requestor TestOTRS Webservice 作为请求者测试
【发布时间】:2014-10-27 01:00:50
【问题描述】:

我是 OTRS (3.2) 的新手,也是 PERL 的新手,但我被赋予了设置 OTRS 的任务,以便它可以调用我们的远程 Web 服务,以便在我们结束时创建记录票被设置为“关闭”。 我设置了各种动态字段,以便客户服务代表可以填写其他数据,这些数据将与工单详细信息一起传递到 Web 服务调用中。 当工单“关闭”时,我无法触发 Web 服务调用,但我确实在“优先级”更改时触发了它,所以我现在只是使用它来测试 Web 服务。 我只是在使用 OTRS 中包含的 Test.pm 和 TestSimple.pm 文件。

当我查看 Webserice 的调试器时,我可以看到正在进行调用:

   $VAR1 = {
      'TicketID' => '6'
   };

我的网络服务目前只有一种方法“create”,它只返回 true 进行测试。

但是我从 Test.pm 得到以下信息

“没有票号(2014-09-02 09:20:42,错误)”

以及来自 TestSimple.pm 的以下内容

“SOAP 调用中的错误:404 Not Found at /TARGET/SHARE/var/otrs/Kernel/GenericInterface/Transport/HTTP/SOAP.pm 第 578 行(2014-09-02 09:20:43,错误)

我在 Google 上花费了无数小时,但找不到任何相关信息。我能找到的只是 Test.pm 和 TestSimple.pm 的代码,但没有什么能真正帮助我根据需要创建自定义调用程序并在 OTRS 中配置 Web 服务以使其正常工作。

是否有任何示例调用程序可供我查看以了解如何设置?

基本上,我需要将票证信息连同我的自定义动态字段一起传递给我的网络服务。从那里我可以创建我的记录并进行任何处理。 我不确定如何设置 Invoker 以传递必要的票证字段和动态字段,以及如何使其调用我的远程 Web 服务中的特定方法。

我想让 Test.pm 和 TestSimple.pm 工作是第一步,然后我可以根据自己的需要修改它们。我根本没有使用过 PERL,因此非常感谢任何帮助。

【问题讨论】:

    标签: web-services perl otrs


    【解决方案1】:

    我也在为类似的要求而苦苦挣扎。我也从未在 PERL 中编程过,但我至少可以告诉你,Test.pm 中的“Got no TicketNumber”是来自 PrepareRequest 方法,在那里你可以看到这段代码:

    # we need a TicketNumber
    if ( !IsStringWithData( $Param{Data}->{TicketNumber} ) ) {
       return $Self->{DebuggerObject}->Error( Summary => 'Got no TicketNumber' );
    }
    

    您应该将所有对 TicketNumber 的引用更改为 TicketID,或者删除任何验证(也有到 ReturnedData 变量的映射)。

    在您的 WS 接口上调用特定方法非常简单(但文档很少)。您在 Web 服务配置的“OTRS 作为请求者”部分中指定的调用者名称对应于将被调用的 WS 方法。因此,如果您的 WS 接口带有一个名为“create”的方法,只需将 Invoker 命名为“create”即可。

    就动态领域的采集而言,目前还帮不上你的忙,抱歉。

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      相关资源
      最近更新 更多