4D v14.3SOAP DECLARATION |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
SOAP DECLARATION
SOAP DECLARATION
SOAP DECLARATION コマンドを使用して、Webサービスとして公開された4Dメソッドで使用される引数の型を明示的に宣言できます。 メソッドがWebサービスとして公開されると、標準の引数$0, $1... $nが外部へのWebサービス引数の定義に使用されます (特にWSDLファイル内で)。SOAPプロトコルは、引数が明示的に命名されていることを要求します。4Dは“FourD_arg0, FourD_arg1 ... FourD_argN”をデフォルトで使用します。 このデフォルトの動作は、以下の理由で問題となる場合があります:
SOAP DECLARATION コマンドを使用すればこれらの制限から解放されます。このコマンドを入出力引数毎に実行し、名前と型を割り当てます。 Note: SOAP DECLARATION コマンドが使用されていても、依然として4Dの変数と配列をCompiler_Webメソッド内で“コンパイラ”テーマのコマンドを使用して宣言する必要があります。 variableには、Webサービスを呼び出すときに参照される4D変数を渡します。 警告: プロセス変数または4D引数 ($0 から $n) のみを参照できます。ローカルおよびインタープロセス変数は使用できません。 デフォルトで、テキスト型の引数のみが使用できるため、非Unicodeモードのデータベースでは、SOAPサーバのレスポンスは32KBに制限されます。しかしBLOBを使用すれば32KBを超えるレスポンスを返信できます。この制限を超えるには、SOAP DECLARATION コマンドを呼び出す前に引数をBLOBとして宣言します (例題 4参照)。 Note: クライアント側では、このタイプのWebサービスを4Dから呼び出した場合、Webサービスウィザードはテキスト型の変数を生成します。これを使用可能にするには、プロクシメソッド内の値を受け取る変数をBLOB型に変更します。 typeには対応する4Dのデータ型を渡します。ほとんどのタイプの4D変数と配列を使用できます。 Styled Textテーマの以下の定義済み定数と、XMLタイプの場合テーマの2つの定数を使用できます:
input_outputには、処理される引数が“入力” (例. メソッドが値を受け取る場合に対応) または “出力” (例. メソッドが値を返す場合に対応) であるかを示す値を渡します。テーマの以下の定義済み定数を使用できます:
Is XML と Is DOM reference 定数を使用して、入出力共に変数を"XML structure" と "DOM reference" 型に宣言できます。このタイプの引数が指定されると、引数への処理やエンコードは行われず、データはそのまま送信されます (例題 5参照)。
Note: 出力引数としてを使用するDOM参照の場合、例えばOn Startupで作成し、アプリケーションの終了時に廃棄されるグローバルな参照を使用することをお勧めします。実際Webサービス内で作成されるDOM参照は、DOM CLOSE XMLで閉じることはできません。これはメソッドの実行が終了して、値が実際にWebサービスクライアントに返されるときにも、XML参照が存在していなければならないためです。Webサービスを複数回呼び出せば、閉じられないDOM参照が複数できることになり、メモリ不足を引き起こすかもしれません。
4D変数を参照する入力SOAP引数 (4Dメソッド引数を除く) はまずCOMPILER_WEBプロジェクトメソッド内で宣言されなければなりません。実際Webサービスメソッド内でプロセス変数を使用するには、メソッドが呼び出される前にそれらが宣言されていることを必要とします。COMPILER_WEBプロジェクトメソッドは、存在すれば、SOAPリクエストが受け入れられるたびに呼び出されます。デフォルトでCOMPILER_WEBメソッドは存在しません。明示的に作成する必要があります。 COMPILER_WEBメソッドはWebサーバでも使用されます (参照)。 aliasには、WSDLとSOAP交換時に表示される引数の名前を渡します。 警告: この名前はRPC内でユニークでなければなりません (入力、出力引数両方で)。そうでなければ最後の宣言のみが有効になります。 Note: 引数名は数字で始まっていてはならず、スペースを含むことはできません。さらに互換性の問題を避けるため、アクセント文字などの拡張文字は使用しないことをお勧めします。 Note: SOAP DECLARATION コマンドはWebサービスとして公開されるメソッドに含まれていなければなりません。他のメソッドから呼び出すことはできません。 この例題は引数名を指定します: ` Webサービスメソッド内で この例題は郵便番号の配列を倍長整数型で受け取ります: `COMPILER_WEB メソッド この例題では、引数名を指定せずに、2つの戻り値を参照しています: SOAP DECLARATION(ret1;Is LongInt;SOAP output) この例題は、非Unicodeモードのデータベースにおいて、32KBを超える値を返すことを可能にします: C_BLOB($0)
以下の例題では様々なタイプの宣言を示しています: ALL RECORDS([Contact]) |
プロパティ
プロダクト: 4D
履歴
変更: 4D v11 SQL Release 2 参照
Is data file locked ARTICLE USAGE
ランゲージリファレンス ( 4D v14 R2) Inherited from : SOAP DECLARATION ( 4D v11 SQL Release 6) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||