OutSystemsのSOAP APIを試してみる。
現在、開発中のシステムでSOAPで連携するシステムがあり
SOAP APIも試しています。
REST APIと同じような手順で簡単にAPIコールの処理を実装できます。
Consume SOAP APIを新規作成すると連携先のWSDLのURLを入力を求められる。
RequestとResponseのXMLに対応するStructureも作成される。
アクションは簡単に作れたのですが
コールしてみるとXMLのフォーマットが合わないのか
エラーが出てなかなか動きませんでした。
標準機能だと動きが見えないのでデバッグが難しいです。
ForgeのWebServiceProxyをインストールすると
SOAPの送受信内容を取得できるようだったので入れてみました。
(前提モジュールとしてardoHTTPが必要のようです。)
APIコールの前後で
実行前にTrace_setCommit
実行後にTrace_Get
を呼び、パラメータを手探りで入れて何度か試すと
RequestとResponseの値を取得できました。
本来、なんの値を入れるのが正しいのかはよくわかっていません。。。
今回呼び出そうとしているAPIでは、Headerにパラメータをセットする必要があり
ExtentionのEnhancedWebReferencesの
SetWebReferenceSoapHeadersを使いました。
これでHeaderに指定の要素を追加してリクエストを送ることができました。
SOAPはJSONに比べて敷居が高いように感じます。
処理がブラックボックスになっていて、上手くいかないときに調べられるポイントが少なく
ドキュメントも少ないので、いろいろやってみたらなんとなく動いたという感じです。
今どき、SOAPには力を入れていないのかもしれません。