Проблема при создании Article для созданного тикета. (PHP-SOAP-OTRS 6)
Добавлено: 23 окт 2018, 12:48
Здравствуйте.
Возникла проблема с созданием Article в PHP через SOAP.
У меня на Ubuntu установлен OTRS 6.0.* версии.
Использую код, который работал в 5 версии. Но как мне известно, структуру Article изменили в 6 версии.
Создаю тикет и получаю его ID. Тут всё успешно. Пустой тикет создается.
Но вот содержимое создать не могу.
Пишет ошибку:
Подскажите, пожалуйста. Что изменилось/как это можно поправить?
В офф.документации немного не понимаю, как сделать.
Спасибо.
Возникла проблема с созданием Article в PHP через SOAP.
У меня на Ubuntu установлен OTRS 6.0.* версии.
Использую код, который работал в 5 версии. Но как мне известно, структуру Article изменили в 6 версии.
Создаю тикет и получаю его ID. Тут всё успешно. Пустой тикет создается.
Но вот содержимое создать не могу.
Пишет ошибку:
Проблема вCan't locate object method "ArticleCreate" via package "Kernel::System::Ticket"
, либо во всем блоке передаваемого массива."TicketObject", "ArticleCreate"
Подскажите, пожалуйста. Что изменилось/как это можно поправить?
В офф.документации немного не понимаю, как сделать.
Спасибо.
Код: Выделить всё
public function addArticle(
$ticketID,
$createdBy,
$userID,
$subject,
$body,
$articleType = 'webrequest',
$from = null,
$contentType = 'text/plain; charset=ISO-8859-1'
)
{
if (strlen(trim($subject)) == 0) {
throw new \Exception('Need a subject. Subject is empty');
}
if (strlen(trim($body)) == 0) {
throw new \Exception('Need a body. Body is empty');
}
if (strlen(trim($articleType)) == 0) {
throw new \Exception('Article Type can not be empty.');
}
if (!is_int($ticketID)) {
throw new \Exception('TicketID needs to be an integer');
}
$request = [
"TicketObject", "ArticleCreate",
"TicketID", $ticketID,
"ArticleType", $articleType,
"SenderType", "system",
"HistoryType", "WebRequestCustomer",
"HistoryComment", $createdBy,
"Subject", $subject,
"ContentType", $contentType,
"Body", $body,
"UserID", $userID,
];
switch ($articleType) {
case 'note-internal':
$request = array_merge($request, [
"NoAgentNotify", 1,
]);
break;
case 'webrequest':
$request = array_merge($request, [
"Loop", 0,
"From", $from,
"AutoResponseType", 'auto reply',
"OrigHeader", [
'From' => $from,
'To' => 'Postmaster',
'Subject' => $subject,
'Body' => $body,
]
]);
break;
}
$articleID = $this->send($request);
return $articleID;
}