SOAP DECLARATION
SOAP DECLARATION ( variable ; type ; input_output {; alias} )
引数 | 型 | 説明 | |
---|---|---|---|
variable | Variable | → | 入出力SOAP引数を参照する変数 |
type | Integer | → | 引数が指す4Dの型 |
input_output | Integer | → | 1 = SOAP入力, 2 = SOAP出力 |
alias | Text | → | SOAP交換の間 この引数用に公開される名前 |
説明
SOAP DECLARATION コマンドを使用して、Webサービスとして公開された4Dメソッドで使用される引数の型を明示的に宣言できます。
メソッドがWebサービスとして公開されると、標準の引数*$0*, $1... $nが外部へのWebサービス引数の定義に使用されます (特にWSDLファイル内で)。SOAPプロトコルは、引数が明示的に命名されていることを要求します。4Dは“FourD_arg0, FourD_arg1 ... FourD_argN”をデフォルトで使用します。
このデフォルトの動作は、以下の理由で問題となる場合があります:
- $0 や $1, $2を配列として宣言できません。ゆえにポインタを使用する必要がありますが、この場合、値の型はWSDLファイル生成時に分かっていなければなりません。
- 入出力引数の名前を変更したい、あるいは変更しなければならない時があります。
- XML構造とDOM参照を引数として使用したい場合があります。
- 32 KBを超えるサイズの値を返したい時があります (非Unicodeモードのテキストサイズの上限)。
- 最後に、この動作だとRPC呼び出しごとに複数の値を返すことができません ($0に)。
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型に変更します。
Notes:
- クライアント側では、このタイプのWebサービスを4Dから呼び出した場合、Webサービスウィザードはテキスト型の変数を生成します。これを使用可能にするには、プロクシメソッド内の値を受け取る変数をBLOB型に変更します。
- このコマンドはBlobオブジェクト(4D.Blob 型)をサポートしません。詳細はdeveloper.4d.com の Passing blobs and blob objects to 4D commands を参照してください。
typeには対応する4Dのデータ型を渡します。ほとんどのタイプの4D変数と配列を使用できます。 テーマの以下の定義済み定数と、XMLタイプの場合テーマの2つの定数を使用できます:
定数 | 型 | 値 |
---|---|---|
Boolean array | 倍長整数 | 22 |
Date array | 倍長整数 | 17 |
Integer array | 倍長整数 | 15 |
Is BLOB | 倍長整数 | 30 |
Is Boolean | 倍長整数 | 6 |
Is date | 倍長整数 | 4 |
Is integer | 倍長整数 | 8 |
Is longint | 倍長整数 | 9 |
Is real | 倍長整数 | 1 |
Is string var | 倍長整数 | 24 |
Is text | 倍長整数 | 2 |
Is time | 倍長整数 | 11 |
LongInt array | 倍長整数 | 16 |
Real array | 倍長整数 | 14 |
String array | 倍長整数 | 21 |
Text array | 倍長整数 | 18 |
定数 | 型 | 値 |
---|---|---|
Is DOM reference | 倍長整数 | 37 |
Is XML | 倍長整数 | 36 |
input_outputには、処理される引数が“入力” (例. メソッドが値を受け取る場合に対応) または “出力” (例. メソッドが値を返す場合に対応) であるかを示す値を渡します。テーマの以下の定義済み定数を使用できます:
定数 | 型 | 値 |
---|---|---|
SOAP input | 倍長整数 | 1 |
SOAP output | 倍長整数 | 2 |