4D v16.3WEB SERVICE CALL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
WEB SERVICE CALL
WEB SERVICE CALL
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と混同しないでください) 。
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マニュアルを参照してください) とその引数により異なります。
それぞれの定数は、Webサービス"設定"に対応しています。設定は公開モード (RPC/DOC) と引数のタイプ (入出力、シンプルまたは複合) の組み合わせを表します。 Note: 引数 “input” または “output” の特徴は、プロキシメソッド/Webサービスの視点から評価されるということを覚えておいてください。
可能となる設定と対応する定数のすべてを以下のリストに示します:
そのため、以下で説明する5つの設定を実装することができます。すべての場合において、4DはWebサービスへ送られるSOAPリクエストやそのエンベローブのフォーマット処理を行います。 Note: 複合XMLタイプであるにも関わらず、4Dはシンプルタイプとしてデータの配列を処理します。 最も使いやすいのはこの設定です。この場合、引数 complexType には定数 Web Service Dynamic が含まれるかこの引数が省略されます。 送られた引数と受け取った応答は、前処理されることなく直接的に処理できます。 WEB SERVICE GET RESULTコマンドの例題を参照してください。 この場合、引数 complexType には定数 Web Service Manual In が含まれます。この設定ではWebサービスに、WEB SERVICE SET PARAMETERコマンドを使用してBLOBの形でXMLソースの要素を必ず “手動で” 渡さなければなりません。 最初のBLOBを有効なXML要素としてフォーマットするかしないかを決定するのは、ユーザ次第です。最初の要素として、このBLOBには、最終リクエストの <body> 要素の最初に現れる “child” 要素が含まれなければなりません。例題 C_BLOB($1) この場合、引数complexTypeには、定数Web Service Manual Outが含まれます。それぞれの引数outputはBLOBに保存されているXML要素の形でWebサービスから返されます。WEB SERVICE GET RESULTコマンド. を使用してこの引数を取り出します。そして、受け取ったBLOBの内容を4Dの XMLコマンドを使用して解析します。 C_BLOB($0) この場合、complexType 引数にはWeb Service Manual定数を指定します。それぞれのinputとoutput引数は、先に説明した2つの設定に従い、XML要素の形でBLOBに格納しなければなりません。 例題 C_BLOB($0) DOC Webサービスのプロクシ呼び出しメソッドは、複合型INPUT OUTPUT引数を使用するRPC Webサービスのプロクシ呼び出しメソッドと同様です。 C_BLOB($0) 注: DOC Webサービスの場合、引数として渡される文字列の値 (上記の“MyXMLInput” と “MyXMLOutput”) は重要ではありません。空の文字列を渡すことさえできます。実際、これらの値はXMLドキュメントを含むSOAPリクエストでは使用されません。にもかか わらずこれらの引数は必須です。 DOCモード (または複合タイプのRPCモード) で公開されたWebサービスを使用するには、以下に従うことをお勧めします:
オプションの * 引数を使用して呼び出しを最適化できます。この引数を指定すると、コマンドはその実行後に、処理により使用される接続を閉じません。この場合、次のWEB SERVICE CALLは * 引数が渡されていれば同じ接続を再利用します。接続を閉じるには、WEB SERVICE CALLコマンドを * 引数なしで呼び出します。このメカニズムにより、同じサーバ上の複数の異なるWebサービスを連続して呼び出すような処理が高速化されます。特にWAN環 境 (例えばインターネット経由) の場合に顕著です。この設定はWebサーバの“keep-alive”設定に基づきます。この設定では通常接続ごとの最大リクエスト数を設定し、リクエス トを拒否することもあります。一連のWEB SERVICE CALLリクエストがこの最大数の制限に達した場合、またはkeep-alive接続が許可されていない場合、4Dは新しい接続を作成します。 リクエストが正しくルーティングされ、Webサービスがそれを受け入れると、システム変数OKは1に設定されます。そうでなければ0に設定され、エラーが生成されます。
参照
|
プロパティ
プロダクト: 4D 履歴
変更: 4D v11 SQL ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||