カスタム SOAP メッセージの作成
特別な場合として、Web クライアントでカスタム SOAP メッセージの送信が必要なことがあります。基本的な要件は以下のとおりです。
-
%SOAP.WebRequestOpens in a new tab のサブクラスを作成し、その LOCATION パラメータまたは Location プロパティを設定します。
-
このサブクラスで、SOAP メッセージを送信するメソッドを作成します。このメソッドは、%Library.CharacterStreamOpens in a new tab のインスタンスを作成し、送信する SOAP メッセージをそのインスタンスに配置します。メッセージの形式が正しいことを確認する必要があります。
-
次に、このメソッドによって SendSOAPBody() メソッドが起動されます。
method SendSOAPBody(Action As %String, OneWay As %Boolean = 0, Request As %CharacterStream, ByRef Response) as %Status
-
Action は、実行する SOAP アクションの名前を指定する文字列です。
-
OneWay は、メッセージが単方向かどうかを制御する true/false フラグです。
-
Request は、現在のロケールの文字セットで SOAP 要求の本文を組み込む %Library.CharacterStreamOpens in a new tab のインスタンスです。
-
Response は、参照によって文字ストリームか、%XML.NodeOpens in a new tab のインスタンスとして返される応答です。
SendSOAPBody() を呼び出したときに Response が NULL である場合は、メソッドによって Response が %Library.CharacterStreamOpens in a new tab のインスタンスに設定されます。このストリームには、現在のロケールの文字セットで SOAP 応答の本文が格納されます。
SendSOAPBody() を呼び出したときに Response が %Library.CharacterStreamOpens in a new tab のインスタンスである場合は、メソッドによって Response が更新され、現在のロケールの文字セットで SOAP 応答の本文が組み込まれます。
SendSOAPBody() を呼び出したときに Response が %XML.NodeOpens in a new tab のインスタンスである場合は、メソッドによって Response が更新され、本文 DOM がポイントされます。
-
%SOAP.WebRequestOpens in a new tab は %SOAP.WebClientOpens in a new tab のサブクラスであるため、他のパラメータおよびプロパティの設定が必要な場合があります。SOAP ヘッダを追加することもできます。これについては、別途説明しています。詳細は、%SOAP.WebRequestOpens in a new tab のクラス・ドキュメントを参照してください。