OutSystemsには、SOAP APIを公開する機能だけでなく、どこかで公開されているAPIを利用する機能もあります。
この機能で取り込んだAPIはService Studio上のアイコンとして取り込まれ、Flow上で他のActionと同じように使えるようになります。
SOAPは最近あまり見ないのと、大体企業システムのAPIで気軽に使えるのが見つからなかったので、OutSystemsのSOAP機能(1)SOAP API作成 で作成したSOAP APIを使って動作確認していきます。
SOAP APIを利用する
SOAP APIを参照して利用するためには、まず、LogicタブのIntegrations>SOAPを右クリックして、Consume SOAP Web Serviceを選択します。
SOAP APIの仕様を表すWSDLのURLを表示されたダイアログの入力欄に設定してOKボタンをクリック(CHOOSE A FILEボタンから、ローカルに保存したwsdl選択することもできるようです)。
OutSystemsで公開したSOAP APIはSOAP 1.1/1.2の両方で公開されるようです(OutSystems 10は.NET Stackのみ)。
そのため、参照URLを入力した時点で以下のダイアログが表示されます。
今回は動作確認だけなので、とりあえず上の方を選択してみました。
メソッド選択ダイアログでは全部選択してFINISHボタンをクリック。
(1)で定義したWebMethod1がきちんと取り込まれました。
Input/Outputのパラメータも正しく取り込めてます。
なお、WebMethod2は簡単にAPI利用のテストができるように、対象Entityを全件返すAPIとして定義しました。
動作確認
画面を用意して、Screen Actionから、とりこんだSOAP APIを利用することで動作確認します。
1レコード作成するSOAP APIに渡す値をそれぞれInputで受取り、登録ボタンクリックでSOAP APIを呼び出し、結果をボタンの下部に表示しています。
ボタンのScreen Actionはこんな感じです。他のActionと同様にFlowの中のアイコンとしてSOAP APIが呼び出せているのが確認できると思います。WebMethod1のパラメータはSOAP API参照時に作成されたStructureを渡しています。Structureの3つの属性が画面上の3つのInputに紐付いてます。
ログ
SOAP APIのログはService CenterのMonitoring>Integrationsに出力されます。
通常は、いつ、どのAPIを呼び出して何秒くらいかかったか位しか出力されません。
ここで詳細なログを出力させるためには、同じくService CenterでeSpaceを開き、Integrationsタブで、出力するログを詳細化したいAPIを選択します。
この画面でLogging Levelを変更します。
Fullは常時、SOAP API通信のHTTPリクエスト/レスポンスを記録。Troubleshootはエラー発生時のみ記録です。