Skip to main content

カスタム SOAP メッセージの作成

特別な場合として、Web クライアントでカスタム SOAP メッセージの送信が必要なことがあります。基本的な要件は以下のとおりです。

  1. %SOAP.WebRequestOpens in a new tab のサブクラスを作成し、その LOCATION パラメータまたは Location プロパティを設定します。

  2. このサブクラスで、SOAP メッセージを送信するメソッドを作成します。このメソッドは、%Library.CharacterStreamOpens in a new tab のインスタンスを作成し、送信する SOAP メッセージをそのインスタンスに配置します。メッセージの形式が正しいことを確認する必要があります。

  3. 次に、このメソッドによって 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 のクラス・ドキュメントを参照してください。

FeedbackOpens in a new tab