Обновление динамических полей в OTRS через SOAP

Я провел несколько дней, пытаясь создать или обновить динамическое поле заявки в OTRS через SOAP, но, к сожалению, безуспешно. Я в основном перепробовал все варианты команд:

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

Я склонен полагать, что это невозможно (версия OTRS 5.0.14). Я ошибся? Есть ли способ обновить динамические поля заявки через SOAP и php?

0

Решение

В конце концов мне удалось заставить его работать. Я публикую здесь свое решение.

  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. Затем мы должны получить идентификатор динамического поля нужного динамического поля:

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

  1. Установите динамическое поле для заявки (при условии, что заявка с 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?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]