【问题标题】:Update dynamic fields in OTRS over SOAP通过 SOAP 更新 OTRS 中的动态字段
【发布时间】:2017-01-29 02:05:18
【问题描述】:

我花了几天时间尝试通过 SOAP 在 OTRS 中创建或更新工单的动态字段,但不幸的是没有成功。我基本上尝试了所有命令的变体:

$response = $soapclient->__soapCall("Dispatch", array("user", "password",
                                    "TicketObject", "TicketUpdate",
                                    "DynamicField", array("name" => "fieldName", "value" => "Example"));

我倾向于认为这是不可能的(OTRS 版本 5.0.14)。我错了吗?有没有办法通过 SOAP 和 php 更新票证的动态字段?

【问题讨论】:

    标签: php soap otrs


    【解决方案1】:

    最后我设法让它工作。我在这里发布我的解决方案。

    1. 首先,我们必须修复 OTRS 文件 bin/cgi-bin/rpc.pl 中的(一个错误?)并将这两行添加到“dispatch”子例程中:

      $CommonObject{DynamicField} = $Kernel::OM->Get('Kernel::System::DynamicField'); $CommonObject{TicketDynamicObject}=$Kernel::OM->Get('Kernel::System::DynamicFieldValue');

    2. 那么我们要获取想要的动态字段的动态字段ID:

    $dynfield = $soap_client->__soapCall("Dispatch", array($user, $pass, "DynamicField", "DynamicFieldGet", "Name", $dynamic_field_name));

    1. 使用 $value 为工单设置动态字段(假设已经存在带有 ticketId 的工单):

      $result = $soap_client->__soapCall("Dispatch", array($user, $pass, "TicketDynamicObject", "ValueSet", "FieldID", $dynfield->ID, "ObjectID", $ticketId, "Value", array("0" => array("ValueText" => (string) $value)), "UserID", $userId, ));

    如果创建了工单,那么我们可以随后为该工单设置动态字段。

    有人知道为什么 OTRS 中缺少这两行吗?会在新版 OTRS 中修复吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多