2016-07-11 3 views
3

비누 API를 사용하여 모든 otrs 티켓을 표시 할 수 있습니까? 개별 티켓은 다음과 같이 URL에 티켓 ID를 전달하여 표시 할 수 있습니다비누 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를 통해 얻을 수있는 방법이 있는지 궁금합니다. –