Soap Zugriff GetAllCustomQueues funzt nicht

Hilfe zu Znuny Problemen aller Art
Locked
ManFromHamburgo
Znuny newbie
Posts: 2
Joined: 14 Jul 2010, 08:37
Znuny Version: 2.3.2

Soap Zugriff GetAllCustomQueues funzt nicht

Post by ManFromHamburgo »

Moin

kurze Soap Frage bzw. Bitte

Kann mal jemand folgendes PHP Script gegen seinen OTRS Server abfeuern. Eigentlich laut Doku sollte es eine Liste aller QueueID's eines Users mit der UserID 2 zurückgeben, die der User in den Preferences unter MyQueues markiert hat.

Code: Select all

<?PHP
error_reporting(E_ALL|E_STRICT);

# Please define the connection information here:
$url      = "http://yourserver/otrs/rpc.pl";
$title    = "My Test Ticket via SOAP and PHP";
$from     = "me@example.com";

# Set up a new SOAP connection:
$client = new SoapClient(null, array('location'  =>
$url,
                                     'uri'       => "Core",
                                     'trace'     => 1,
                                     'login'     => "some_user",
                                     'password'  => "some_pass",
                                     'style'     => SOAP_RPC,
                                     'use'       => SOAP_ENCODED));

try {
$result = $client->__soapCall("Dispatch", array("some_user", "some_pass", "QueueObject", "GetAllCustomQueues", "UserID",2));
} catch (SoapFault $fault) {
  echo "REQUEST:\n".$client->__getLastRequest()."\n";
  echo "RESPONSE:\n".$client->__getLastResponse()."\n";
  echo "</pre>";
  exit;
}
echo "REQUEST:\n".$client->__getLastRequest()."\n";
echo "RESPONSE:\n".$client->__getLastResponse()."\n\n";
var_dump($result);
echo $result;
?>
Syntaktisch und laut Doku auch logisch ist dieses Script korrekt und sollte funzen. Führe ich es aber aus, ist das Resultset NULL und im Serverlog finde ich folgenden Eintrag:

[Thu Jul 15 15:54:34 2010][Error][Kernel::System::User::UserUpdate][350] Need UserFirstname!

Kann mir irgendjemand erzählen, warum zum Teufel der Server die UserUpdate() Funktion aufruft. Ich finde auch in dem entsprechenden Queue.Pm Modul bei der Methode GetAllCustomQueues() absolut keinen Hinweis, warum die Methode UserUpdate() ausgeführt wird.

Könnte das vielleicht mal jemand testen?

Vielen Dank

Jan
fnold
Znuny newbie
Posts: 12
Joined: 16 Jul 2010, 23:35
Znuny Version: 3.0.11

Re: Soap Zugriff GetAllCustomQueues funzt nicht

Post by fnold »

Hi Jan,

die Lösung ist vermutlich ganz banal: Du must die Userid in Gänsefüschen übergeben "2" statt 2.

Code: Select all

$result = $client->__soapCall("Dispatch", array("some_user", "some_pass", "QueueObject", "GetAllCustomQueues", "UserID","2"));
Bei mir scheints dann zu laufen.
(Wobei ich zusätzlich noch den Soapuser und das Soappass in der Conig unter Core::SOAP geändert habe, aber das sollte nicht das Problem sein)
Regards,
Florian
--------------------------------------------------------------
OTRS 3.1.11, ITSM 3.1.7, SLES 10SP4, MySQL (under VMware ESX 4) connected to LDAP for Agents and Customers.
(ab 3.Mai.2013: OTRS 3.2.6 ITSM 3.2.4, MySQL (under VMware ESX 4) connected to LDAP for Agents and Customers.
Andre Bauer
Znuny guru
Posts: 2189
Joined: 08 Dec 2005, 17:01
Znuny Version: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

Re: Soap Zugriff GetAllCustomQueues funzt nicht

Post by Andre Bauer »

Ich machs so:

Code: Select all

<?php
/*
    OTRS SOAP
*/

# otrs soap config
$soap_url = "http://localhost/otrs/rpc.pl";
$soap_user = "some_user";
$soap_pass = "some_pass";

// new soap connection to otrs
$client = new SoapClient(null, array(
    'location'  => $soap_url,
    'uri'       => "Core",
    'trace'     => 1,
    'login'     => $soap_user,
    'password'  => $soap_pass,
    'style'     => SOAP_RPC,
    'use'       => SOAP_ENCODED));

echo "<pre>";

// get queues
$queues = $client->__soapCall("Dispatch", array($soap_user, $soap_pass,
    "QueueObject", "GetAllQueues"
));

// create new array from data values
$values = array_values($queues);
$key_start = 0;
$key_end = count($values)-1;

// create new asoc array with key & values
$queue_array = array();
for ($key = $key_start; $key < $key_end; $key++) {
    $value = $key + 1;
    $queue_array[$values[$key]] = $values[$value];
    $key++;
}

// get data from new queue array
print_r($queue_array);

echo "</pre>";

?>
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org
Locked