2016-07-11 12 views
3

soap apiを使用してすべてのotrsチケットを表示する方法を教えてください。個々のチケットは、このようなURLにチケットIDを渡すことで表示することができます。soap apiを使用してすべてのotrsチケットを表示する

$url = "https://url/otrs/rpc.pl"; //// URL for OTRS server 
$username = "username"; //// SOAP username set in sysconfig 
$password = "password"; //// SOAP password set in sysconfig 
$TicketID = $_GET['id']; 
    //////// 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 //////// 
    $sql = 
    $TicketDetails = $client->__soapCall("Dispatch", 
     array($username, $password, 
      "TicketObject", "TicketGet", 
      "TicketID", $TicketID, 
     )); 
$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++; 
     } 
    } 
var_dump($ticketInfo); 
    exit(); 

は、どのように私は、APIを使用して、すべてのチケットを表示することができます?????

答えて

2

チケットIDのリストを取得するにはTicketSearch API callを使用してください。チケットの詳細を取得するために既に表示したように、このリストをTicketGetにフィードします。

+0

私はuが言ったようにしました。 otrsダッシュボードと同じように新しいチケットと開いているチケットを表示するにはどうすればいいですか? ここまで私が何をしたのかのコードです。 http://phpfiddle.org/main/code/wb4u-nrsj –

+1

あなたはまだ問題があるとは思いませんか?あなたは結果を上手くループしているようです。ダッシュボードには通常、チケットにいくつかのフィルタが適用されています。これらの定義を見つけるために、OTRSのSysConfigをチェックインしてください。 – MichielB

+0

新しいチケットテーブルのダッシュボードに表示されるチケットに適用されるフィルタを教えてください。私は本当にここで立ち往生しています。 私はquery select * from 'ticket'を使用します。ここで、ticket_state_id = '1' id idでDESC; ダッシュボードの新しいチケットテーブルよりも多くの結果が得られます。私はここに他のフィルタが適用されているか、API経由で取得する方法があるのだろうかと思っています。 –

関連する問題