
そこで、素晴らしいOTRSをインストールし、そこで作業を開始しました。 そして、ここで管理者は報告が必要でした。 そして、いくつかではなく、むしろ複雑です。 内部レポートを深く調べるのではなく、Webサービスシステムからデータを単純に収集し、別のプログラムでレポートを作成することにしました。
そのため、管理→Webサービスに移動します。


新しいWebサービスを作成します。
1)インターフェイスの名前を入力します
2)ネットワークトランスポートHTTP :: SOAPを選択します
3)[保存]をクリックします。

保存後、[ 操作]を選択できます。
チケットを処理するために必要なのは3つだけです。
SessionCreate-セッションを作成し、今後そのIDを使用し、毎回ログインパスワードを送信しないようにします。
TicketSearch-指定された基準(この場合、特定の期間のオープンとクローズ)でチケットを見つけることができます。 チケットID(より具体的には、番号ではなくID)のリストを返します。
TicketGet-チケットIDで特定のチケット(または複数)を取得できます。

オペレーションを作成するときに、後でそれを呼び出す名前を指定します。

最後に、ネットワークトランスポートの構成に移動して、名前空間とメッセージの長さを設定します。 1000の長さは、私たちにとって非常に素晴らしいものでした。


名前空間は次のリンクです。
example.com/otrs/nph-genericinterface.pl/Webservice/InterfaceName
example.comがドメインである場合、 InterfaceNameはインターフェイスの名前です。 暗号化が構成されている場合、httpではなくhttps。
OTRSのすべての設定がすべて行われます。 今、外部のサービスにアクセスする方法は? これを行うには、SoapUIを配置し、wsdlスキームを取得してSoapUIに渡します。
インターネット上では、OTRS自体はWSDLスキームを放棄しないと多くの人が不満を言いました。これは実際には問題です。
それを共有してくれた親切な人々に感謝します。
github.com/OTRS/otrs/tree/master/development/webservices
そこで、彼らが提案してくれたファイルを少しやり直してください。
GenericTicketConnectorSOAP.wsdlファイルのヘッダーで、 定義名をWebサービスの名前に変更します。
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="GenericTicketConnectorSOAP" targetNamespace="http://www.otrs.org/TicketConnector/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.otrs.org/TicketConnector/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <wsdl:documentation>
さらに、 soapActionのすべてのsoap:操作で、 http://www.otrs.org/TicketConnectorをNameSpaceに変更します。
<soap:operation soapAction="http://www.otrs.org/TicketConnector/TicketCreate" />
そして、 wsdl:portのドキュメントの最後で、 locationに NameSpaceを指定します。
<wsdl:port name="GenericTicketConnector_Port" binding="tns:GenericTicketConnector_Binding"> <soap:address location="http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorSOAP" /> </wsdl:port>
Soap UIを起動し、新しいSOAPProjectを作成し、スキームでファイルを指定します。
結果は次のようになります。 SoapUIは基本的なリクエストを自動的に生成します。

そして最後のコードは、サービスパフォーマンスのチェックです。 サービスからSessionIDが返されました。これは、毎回ユーザー名とパスワードを転送しなくても、他のリクエストで既に使用できます。

いくつかのニュアンス:
1)すでに述べたように、OTRSはWSDLスキームを提供しません。これは非常に不便です。
2)要求に応じて、TicketSearchは500個までのIDを提供します。 500を超える数を受け取る必要がある場合でも、500だけを受け取ることになります。これを回避する方法が見つかりませんでした。
3)TicketGetがSolutionDiffInMin(アプリケーションの解決時間がSLAによるターゲットと異なる時間)を返すためには、Extendedのリクエストに何かを転送する必要があります。
誰かが面白いコメントを持っている場合、コメントは大歓迎です:)
PSは、検索中に500個以下のメッセージが返されたという事実について、「GenericInterface :: Operation :: TicketSearch ### SearchLimit」パラメーターの増加が役立ちました。
助けてくれてeisaevに感謝します。
PPSは、OTRSを質問機として設定する方法に関する2番目の記事です。