通过 SOAP 更新 OTRS 中的动态字段
Update dynamic fields in OTRS over SOAP
我花了几天时间尝试通过 SOAP 在 OTRS 中创建或更新工单的动态字段,但不幸的是没有成功。我基本上尝试了所有命令变体:
$response = $soapclient->__soapCall("Dispatch", array("user", "password",
"TicketObject", "TicketUpdate",
"DynamicField", array("name" => "fieldName", "value" => "Example"));
我倾向于认为这是不可能的(OTRS 版本 5.0.14)。我错了吗?有没有办法通过 SOAP 和 php 更新票证的动态字段?
最后我设法使它工作。我 post 这是我的解决方案。
首先,我们必须在 OTRS 文件 bin/cgi-bin/rpc.pl 中修复(错误?)并添加到 "dispatch" 子例程中这两行:
$CommonObject{DynamicField} = $Kernel::OM->Get('Kernel::System::DynamicField');
$CommonObject{TicketDynamicObject}=$Kernel::OM->Get('Kernel::System::DynamicFieldValue');
然后我们要得到想要的动态字段的动态字段ID:
$dynfield = $soap_client->__soapCall("Dispatch", array($user, $pass,
"DynamicField", "DynamicFieldGet",
"Name", $dynamic_field_name));
为工单设置动态字段(假设 ticketId 的工单已经存在)$value:
$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 中修复吗?
我花了几天时间尝试通过 SOAP 在 OTRS 中创建或更新工单的动态字段,但不幸的是没有成功。我基本上尝试了所有命令变体:
$response = $soapclient->__soapCall("Dispatch", array("user", "password",
"TicketObject", "TicketUpdate",
"DynamicField", array("name" => "fieldName", "value" => "Example"));
我倾向于认为这是不可能的(OTRS 版本 5.0.14)。我错了吗?有没有办法通过 SOAP 和 php 更新票证的动态字段?
最后我设法使它工作。我 post 这是我的解决方案。
首先,我们必须在 OTRS 文件 bin/cgi-bin/rpc.pl 中修复(错误?)并添加到 "dispatch" 子例程中这两行:
$CommonObject{DynamicField} = $Kernel::OM->Get('Kernel::System::DynamicField'); $CommonObject{TicketDynamicObject}=$Kernel::OM->Get('Kernel::System::DynamicFieldValue');
然后我们要得到想要的动态字段的动态字段ID:
$dynfield = $soap_client->__soapCall("Dispatch", array($user, $pass,
"DynamicField", "DynamicFieldGet",
"Name", $dynamic_field_name));
为工单设置动态字段(假设 ticketId 的工单已经存在)$value:
$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 中修复吗?