Serien prozessticket

Hilfe zu Znuny Problemen aller Art
Locked
loeschner
Znuny newbie
Posts: 22
Joined: 09 Dec 2015, 11:52
Znuny Version: OTRS 5

Serien prozessticket

Post by loeschner »

Servus zusammen,

ich knobel jetzt seit 2 Tagen daran, wie ich ca 100 Datensätze in otrs bekomme. Pro Datensatz soll ein Prozessticket erstellt werden und die Daten müssen in die entsprechenden DynamicFields.
ich denke, dass es am erfolgsversprechendsten ist über die SOAP Schnittstelle zu gehen...
hierüber habe ich es auch bereits geschaft normale Tickets zu erstellen.

Code: Select all

error_reporting(E_ALL);
#### OTRS specific information ####
$url = "http://ticketsystem.XXXX.de/otrs/rpc.pl"; // URL for OTRS server
$username = "soap_user"; // SOAP username set in sysconfig
$password = "soap_pass"; // SOAP password set in sysconfig

$client = new SoapClient(
 null, 
 array(
 'location' => $url,
 'uri' => "Core",
 'trace' => 1,
 'login' => $username,
 'password' => $password,
 'style' => SOAP_RPC,
 'use' => SOAP_ENCODED
 )
);

# Ticketnummer erstellen
$ticketnr = $client->__soapCall("Dispatch", array($username, $password, "TicketObject", "TicketCreateNumber"));

if(! is_string($ticketnr) ) $ticketnr = number_format($ticketnr,0, '.', '');

#echo $ticketnr;
# Neues Ticket erstellen
$title = "Adobe Testticket";
$queue = "Zentrale IT";
$userid = 9;   # Die OTRS-ID des Users, der die Tickets erstellen soll !! Dieser Wert variiert natürlich in jeder Otrs-Installation
$dynamicfield_accvorname = "Max";
$dynamicfield_accnachname = "Mustermann";
$dynamicfield_accmail = "max.muastermann@gehtnicht.de";
$dynamicfield_accstart = "";
$dynamicfield_accende = "";
$dynamicfield_acctyp = "";
$dynamicfield_accstatus = "";
$dynamicfield_mastandort = "";

$ticketid = $client->__soapCall("Dispatch", array($username, $password, "TicketObject", "TicketCreate",
									       "TN", $ticketnr,
									       "Title", "[ Ticket#: ".$ticketnr." ] ".$title,
									       "Queue", $queue,
									       "Lock" , "unlock",
									       "PriorityID", 5,
									       "State" , "new",
									       "OwnerID" , $userid,
									       "UserID", $userid,
										   "DynamicField_ProzessManagementProcessID","Process-1fb58d4dfdc7b2881e6de7d97d011dbd",
										   "DynamicField_ProzessManagementActivityID","Activity-56cdea182b8b865ec78dd5789d6e35aa",
										   "DynamicField_accvorname", $dynamicfield_accvorname,
										   "DynamicField_accnachname", $dynamicfield_accnachname,
										   "DynamicField_accmail", $dynamicfield_accmail
									       ));


echo "REQUEST:\n".$client->__getLastRequest()."\n";
echo "RESPONSE:\n".$client->__getLastResponse()."\n\n";
Das Problem hier ist, dass daraus kein Prozessticket wird und die dynamischen Felder nicht geschrieben werden.
hat jemand eine Idee??

ich bin natürlich auch für andere Lösungswege offen, die mich ans Ziel bringen... ;)

LG Christian
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Serien prozessticket

Post by RStraub »

Schau dir mal die API hier an:
https://otrs.github.io/doc/api/otrs/sta ... te.pm.html

Für mich sieht es so aus als ob dein "Fehler" ist, dass du versuchst die dynamischen Felder direkt zu übergeben. Die API erfordert allerdings ein Array (oder Hash) innerhalb dieser dann die Namen <=> Wert Paare übergeben werden.
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Locked