WEB SERVICE CALL
WEB SERVICE CALL ( accessURL ; soapAction ; methodName ; nameSpace {; complexType {; *}} )
引数 | 型 | 説明 | |
---|---|---|---|
accessURL | Text | → | WebサービスへのアクセスURL |
soapAction | Text | → | SOAPActionフィールドの内容 |
methodName | Text | → | メソッドの名前 |
nameSpace | Text | → | 名前空間 |
complexType | Integer | → | 複合タイプの設定 (省略された場合、シンプルタイプ) |
* | 演算子 | → | 接続を終了しない |
説明
WEB SERVICE CALLコマンドは、HTTPリクエストを送ることでWebサービスを呼び出すために使用します。このリクエストには、事前にWEB SERVICE SET PARAMETERコマンドを使用して作成したSOAPメッセージが含まれています。
一連のWEB SERVICE SET PARAMETERコマンド呼び出しは、新しいリクエストを作成します。WEB SERVICE CALLコマンドの実行はまた、以前に呼び出したWebサービスの結果を消去し、新しい結果に置き換えます。
accessURL には、Webサービスへアクセスできる完全なURLを渡します (このURLをWebサービスを説明するWSDLファイルのURLと混同しないでください) 。
- ****保護モードでのアクセス(SSL)**: SSLを用いて、保護モードでWebサービスを使用したい場合、http://の代わりとしてURLの前にhttps://を渡します。この設定により、保護モードでの自動接続が可能になります。なお、このコマンドはサーバー認証を使用することができます( HTTP SET CERTIFICATES FOLDER コマンドを参照して下さい)。この認証が有効でない(失効しているか無効である)場合、OKシステム変数は0に設定され、エラー901 "Invalid server certificate" が返されます。このエラーは ON ERR CALL コマンドに実装されたエラーハンドリングメソッドにより割り込み可能です。
soapAction には、リクエストのSOAPActionフィールドの内容を渡します。このフィールドは一般的に"ServiceName#MethodName"値を含みます。
methodName には、 (Webサービスに属する) 実行したいリモートメソッドの名前を渡します。
namespace には、SOAPリクエストに使用するXML名前空間を渡します。XML名前空間に関する詳細は、4DのDesign Referenceマニュアルを参照してください。
オプション引数 complexType は、(WEB SERVICE SET PARAMETERとWEB SERVICE GET RESULTコマンドを使用して定義された) 送信および受信するWebサービス引数の設定を示します。
引数 complexType の値は、Webサービスの公開モード (DOC または RPC、4DのDesign Referenceマニュアルを参照してください) とその引数により異なります。
complexType には*Web Services (Client)*テーマにある以下の定数の1つを必ず渡します:
定数 | 型 | 値 |
---|---|---|
Web Service dynamic | 倍長整数 | 0 |
Web Service manual | 倍長整数 | 3 |
Web Service manual in | 倍長整数 | 1 |
Web Service manual out | 倍長整数 | 2 |
それぞれの定数は、Webサービス"設定"に対応しています。設定は公開モード (RPC/DOC) と引数のタイプ (入出力、シンプルまたは複合) の組み合わせを表します。
Note: 引数 “input” または “output” の特徴は、プロキシメソッド/Webサービスの視点から評価されるということを覚えておいてください。
- 引数 “input” はプロキシメソッドに、そしてWebサービスへ渡される値です。
- 引数 “output” は、Webサービスから、そしてプロキシメソッドから返されます (一般的に$0経由) 。
可能となる設定と対応する定数のすべてを以下のリストに示します:
Input引数 | ||
---|---|---|
Output引数 | シンプル | 複合 |
シンプル | Web Service Dynamic | Web Service Manual In |
(RPCモード) | (RPCモード) | |
複合 | Web Service Manual Out | Web Service Manual |
(RPCモード) | (RPCまたはDOCモード) |
使用する設定に応じて、このリクエストの内容をフォーマットするかは開発者に任されています。
そのため、以下で説明する5つの設定を実 装することができます。すべての場合において、4DはWebサービスへ送られるSOAPリクエストやそのエンベローブのフォーマット処理を行います。
Note: 複合XMLタイプであるにも関わらず、4Dはシンプルタイプとしてデータの配列を処理します。
RPCモード、シンプルinputとoutput
最も使いやすいのはこの設定です。この場合、引数 complexType には定数 Web Service Dynamic が含まれるかこの引数が省略されます。
送られた引数と受け取った応答は、前処理されることなく直接的に処理できます。
WEB SERVICE GET RESULTコマンドの例題を参照してください。
RPCモード、複合inputとシンプルoutput
この場合、引数 complexType には定数 Web Service Manual In が含まれます。この設定ではWebサービスに、WEB SERVICE SET PARAMETERコマンドを使用してBLOBの形でXMLソースの要素を必ず “手動で” 渡さなければなりません。
最初のBLOBを有効なXML要素としてフォーマットするかしないかを決定するのは、ユーザ次第です。最初の要素として、このBLOBには、最終リクエ ストの 要素の最初に現れる “child” 要素が含まれなければなりません。
例題
var $1 : Blob
var $0 : Boolean
WEB SERVICE SET PARAMETER("MyXMLBlob";$1)
WEB SERVICE CALL("http://my.domain.com/my_service";"MySoapAction";"TheMethod";"http://my.namespace.com/";Web Service manual in)
WEB SERVICE GET RESULT($0;"MyOutputVar";*)
RPCモード、シンプルinputと複合output
この場合、引数complexTypeには、定数Web Service Manual Outが含まれます。それぞれの引数outputはBLOBに保存されているXML要素の形でWebサービスから返されます。WEB SERVICE GET RESULTコマンド. を使用してこの引数を取り出します。そして、受け取ったBLOBの内容を4Dの XMLコマンドを使用して解析します。
例題
var $0 : Blob
var $1 : Boolean
WEB SERVICE SET PARAMETER("MyInputVar";$1)
WEB SERVICE CALL("http://my.domain.com/my_service";"MySoapAction";"TheMethod";"http://my.namespace.com/";Web Service manual out)
WEB SERVICE GET RESULT($0;"MyXMLOutput";*)