OTRS RPC SOAP Problem With PHP

English! place to talk about OTRS development, programming and coding

Moderator: tto

MohsenGH7
OTRS newbie
Posts: 1
Joined: 08 Jul 2017, 14:58
OTRS Version?: OTRS 3.3

OTRS RPC SOAP Problem With PHP

Postby MohsenGH7 » 08 Jul 2017, 15:14

I Want To Create An Ticket And This Is My Code:

Code: Select all

url      = "http://my_server_ip/otrs/rpc.pl";  // URL for OTRS server
$username = "root";  // SOAP username set in sysconfig
$password = "toor";  // SOAP password set in sysconfig
$typeID = 2; // id from ticket_type table
$queueID = 2; // id from queue table
$priorityID = 1; // id from ticket_priority table
$ownerID = 2; // id from users table

########################################################################
#### You don't have to change anything below here, although you can ####
########################################################################

#### FORM FIELDS ####
$title = $_GET['title'];
$from = $_GET['cust_login'];
$description = $_GET['description'];
   
#### Initialize new client session ####
$client = new SoapClient(
   null,
   array(
      'location'  => $url,
      'uri'       => "Core",
      'trace'     => 1,
      'login'     => $username,
      'password'  => $password,
      'style'     => SOAP_RPC,
      'use'       => SOAP_ENCODED
   )
);

#### Create a new ticket shell. The function returns the Ticket ID ####
$TicketID = $client->__soapCall(
   "Dispatch", array($username, $password,
   "TicketObject", "TicketCreate",
   "Title",        $title,
   "TypeID",   $typeID,
   "QueueID",   $queueID,
   "LockID",  1,
   "PriorityID",   $priorityID,
   "State",        "new",
   "CustomerUser", $from,
   "OwnerID",      $ownerID,
   "UserID",       1,
   )
);

##### Create an article with the info. The function returns an Article ID ####
$email ="Test@test.com";
$ArticleID = $client->__soapCall("Dispatch",
   array($username, $password,
      "TicketObject",   "ArticleCreate",
      "TicketID",       $TicketID,
      "ArticleType",    "webrequest",
      "SenderType",     "customer",
      "HistoryType",    "WebRequestCustomer",
      "HistoryComment", "created from PHP",
      "From",           $email,
      "Subject",        $title,
      "ContentType",    "text/plain; charset=ISO-8859-1",
      "Body",           $description,
      "UserID",         1,
      "Loop",           0,
      "AutoResponseType", 'auto reply',
      "OrigHeader", array(
         'From' => $email,
         'To' => $from,
         'Subject' => $title,
         'Body' => $description
      ),
   )
);

# Use the Ticket ID to retrieve the Ticket Number.
$TicketNum = $client->__soapCall("Dispatch",
array($username, $password,
"TicketObject",   "TicketNumberLookup",
"TicketID",       $TicketID,
));

# Make sure the ticket number is not displayed in scientific notation
$big_integer = 1202400000;
$Formatted_TicketNum = number_format($TicketNum, 0, '.', '');


# Print the info to the screen.
echo "<html>\n";
echo "<head>\n";
echo "<title>Ticket Successfully Submitted</title>\n";
echo "</head>\n";
echo "<body>\n";
echo "<h1>Success!</h1>\n";
echo "<p>You have successfully created ticket number $Formatted_TicketNum.</p>\n";
echo "</body>\n";
echo "</html>\n";

But This Only Return Zero.
What Is Problem Of My Code?
It Works For Ticket Get But I Cant Add Ticket.
Get Ticket :

Code: Select all

$url = "http://192.168.106.128/otrs/rpc.pl";  // URL for OTRS server
$username = "root";  // SOAP username set in sysconfig
$password = "toor";  // SOAP password set in sysconfig
$TicketID = $_GET['id'];

########################################################################
#### You don't have to change anything below here, although you can ####
########################################################################

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

#### Create and send the SOAP Function Call ####
$TicketDetails = $client->__soapCall("Dispatch",
array($username, $password,
"TicketObject",   "TicketGet",
"TicketID",       $TicketID,
));

####    Get the SOAP response into an array as key/value pairs     ####
#  This is kind of janky, but what it does is parse out the           #
#  detail values in the SOAP response and writes them as a key/value  #
#  pair in the $ticketInfo[] array.                                   #

$ticketInfo = array();
$i = 0;
foreach ($TicketDetails as $name => $value){ // explode the xml response
   if (false !== strpos($name, "s-gensym")){
      $temp[$i] = $value;
      $v = $temp[$i-1];
      if($i % 2 != 0){
         $ticketInfo[$v] = $value;
      }
      $i++;
   }
}

##############################################################################
#### The code below here is just to provide viewable proof that it worked ####
####             It can all be commented out or removed                   ####
##############################################################################
#### Return the SOAP request and response as xml-formatted text ####
/*print "<pre>\n";
print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
print "</pre>";

echo"<hr width='200'>";*/
// Spew out the key/value pairs from the $ticketInfo[] array
/*foreach ($ticketInfo as $name => $value){
   echo "<b>".$name.":</b> ".$value."<br>";
}*/
echo "<pre>";
print_r($ticketInfo);
echo "</pre>";

reneeb
OTRS guru
Posts: 4337
Joined: 13 Mar 2011, 09:54
OTRS Version?: 3.3.x
Company: Perl-Services.de
Contact:

Re: OTRS RPC SOAP Problem With PHP

Postby reneeb » 14 Aug 2017, 13:55

Can you use the GenericInterface? That has lots more debugging stuff...
Perl / OTRS development: http://perl-services.de
Free OTRS add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de


Return to “OTRS Developers”

Who is online

Users browsing this forum: No registered users and 4 guests