DIsplay OTRS 5 articleid с использованием мыльного API (функция ArticleIndex)

в настоящее время я разрабатываю поисковую систему для otrs с использованием soap api, basiccaly, у меня уже есть успешный идентификатор и обратный билет, но теперь у меня проблема с получением списка статей на основе идентификатора заявки, ниже приведен код метода article_index:

    public function article_index($ticket_id, $params = array())
{
if (is_null($ticket_id)) {
return null;
}
$params['TicketID'] = $ticket_id;
$params['DynamicFields'] = "1";

$result = $this->dispatch_call("ArticleIndex", $params);
if (is_array($result)) {
return self::object_to_hash($result);
} else {
return null;
}
}

private function dispatch_call($endpoint, $params)
{
$soap_params = array();
$soap_params[] = new SoapParam($this->username, $this->login_type);
if (!is_null($this->password)) {
$soap_params[] = new SoapParam($this->password, "Password");
}
foreach ($params as $key => $value) {
$soap_params[] = new SoapParam($value, $key);
}
//$soap_params[] = array('trace' => '1');

try {
$client = new \SoapClient(null, array(
'location' => $this->base_url . '/nph-genericinterface.pl/Webservice/' . $this->webservice,
'uri' => $this->namespace,
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
'stream_context'=> stream_context_create(array('ssl'=> array('verify_peer'=>false,'verify_peer_name'=>false)))
));

$result = $client->__soapCall($endpoint, $soap_params);
// echo "Response:\n" . $client->__getLastResponse() . "\n";
unset($client);
return $result;
} catch (SoapFault $fault) {
//echo "Response:\n" . $client->__getLastResponse() . "\n";
unset($client);
return null;
}
}
private static function object_to_hash($obj)
{
$arr = array();
$arr_obj = is_object($obj) ? get_object_vars($obj) : $obj;
foreach ($arr_obj as $key => $value) {
$value = (is_array($value) || is_object($value)) ? self::object_to_hash($value) : $value;
$arr[$key] = $value;
}
return $arr;
}

ниже приведен код функции для вызова article_index метод

    $data = raw_searcharticle($id);
function raw_searcharticle($id){
$otrs = new Otrs();
$message = "";
try {

if(is_array($id) ){
$message .= "not a single result";
}else{
if($id == ''){
$message .= "Ticket not found";
}else{
$article_get = $otrs->article_index($id);
(array)$message = $article_get;
}
}
} catch (\Exception $e) {
(array)$message = $e;
}
return $message;
}

проблема в том, что результат всегда возвращает:

{array (2) [«faultcode»] => string (6) «Server» [«faultstring»] => string (21) «Got
no OperationType! «}

я действительно понятия не имею, что не так с кодом.
заранее спасибо

0

Решение

Задача ещё не решена.

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

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

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