WSDLファイルを読み込んでSOAPメソッドを実行します。
WSDLの定義はインポート機能によって本コンポーネントに設定することができます。詳しくは、下記トピック「WSDLインポート機能」を参照してください。
| 入力 | フォーマット | XML,ParameterList |
|---|---|---|
| 接続数 | 1 | |
| 説明 | WSDL読み込みによって定義されたストリーム | |
| 出力 | フォーマット | MIME,XML,ParameterList |
| 説明 | 出力形式に応じたストリームが出力されます。 |
| 名前 | プロパティ型 | マッピング | 説明 |
|---|---|---|---|
| WSDLファイルパス | remoteFile | - |
実行に使用するWSDLファイルを指定します。 ここで指定するWSDLファイルは実行時および設計時に読み込まれ、使用されます。 |
| サービス名 | string | - |
実行するWebサービスのサービス名。(WSDLファイル内のservice要素) 通常はWSDLインポート機能で設定されます。 |
| ポート | string | - |
実行するWebサービスのポート。(指定したサービスで定義されているport) 通常はWSDLインポート機能で設定されます。 |
| メソッド名 | string | - |
実行するWebサービスのメソッド名。(指定したポートにバインディングされているoperation) 通常はWSDLインポート機能で設定されます。 |
| 出力形式 | choice | - |
出力ストリームを指定します。
「RequestXXXX」を指定した場合はSOAPリクエストは実行されません。デバッグ時や、このコンポーネントの出力をさらに加工して後でHTTP(Post)コンポーネントで送信する場合などに使用します。 「ResponseXXXX」を指定した場合はSOAPリクエストが実行され、そのレスポンスが出力ストリームとなります。
|
| コネクション名 | connection | - |
このコンポーネントでは接続先のSOAPサーバーはWSDLファイルの「soap:address」で定義されているロケーションとなりますが、
このプロパティにコネクションで定義されているHTTPのコネクションを指定することでWSDLでの定義を上書きすることができます。 以下の場合には、コネクションを参照するようにして、接続設定でプロキシーや認証の設定を行います。 (または、このコンポーネントではメッセージを作成するだけとして、HTTP(Post)コンポーネントで送信するという方法があります。)
|
| コミット | 何もしません。 |
|---|---|
| ロールバック | 何もしません。 |
| タイプ | パラ メータ | エラー処理フロー へのストリーム | エラー コード | 説明 |
|---|---|---|---|---|
| SOAPフォルト | なし | SOAPFaultのSOAPEnvelope(XML) | なし | 実行中にSOAPFaultが発生した場合や、通信先のWebサービスがSOAPFaultを返した場合 |
| 汎用 | なし | コンポーネントの入力ストリーム | なし | WSDLの読み込みに失敗した場合 |
| なし | 入力ストリームの形式が不正な場合 | |||
| なし | Webサービスが実行できなかった場合 | |||
| なし | 実行したWebサービスがSOAP以外のレスポンスを返した場合 |
WSDLの定義から簡単にプロパティや入出力ストリームの設定を行うために、本コンポーネントにはインポート機能を用意しています。
WSDLをインポートするためのダイアログボックスを表示するには、以下の2つの方法があります。

WSDLのインポートダイアログボックスでは、各リストから選択して「OK」をクリックすると自動的にインスペクタのサービス名、ポート、メソッド名が設定されます。また、ストリームペインの入力タブと出力タブのフィールドが自動的に定義されます。

入力または出力のストリーム型にParameterListが選択できるのは選択したオペレーションが以下の条件を満たしている場合です。
つまり、Documentスタイルのオペレーションや構造体を含む複雑なパラメータがある場合はXMLしか選択できなくなります。
このコンポーネントは呼び出すSOAPのWebServiceがRPCスタイルであるか、ドキュメントスタイルであるかにより異なる動作をします。SOAPのスタイルはWSDLの「soap:operation/style」属性により明示されます。
以下に、それぞれの場合でのコンポーネントの動作について解説します。
Documentスタイルの場合は、入力ストリームはXMLに限定されます。(ParameterListをとることはできません。)
Operationが1つのパラメータを持つ場合(つまりSOAP:Body要素の直下の要素が1つになる場合)には、その要素をDocumentElementとしたXMLとしてインポートされ、Operationが複数の要素を持つ場合はSOAP:Body要素をDocumentElementとしたXMLとしてインポートされます。
WSDLインポート時には実行するSOAPメソッドの入力メッセージ定義がインポートされてストリームペインの入力タブに設定されますが、実際にはDocumentスタイルのSOAPサービス実行時にはコンポーネントは入力ストリームの定義は使用しません。
Documentスタイルの場合、本コンポーネントは入力のXMLをSOAPBodyに差し込んで送信するのみの動作となります。
そのため、FileGetコンポーネントでXMLファイルを読み込んで、それをそのままSOAPで送信するといったようなフローも書くことができ、
そのスキーマがWSDLでの定義と異なる場合でも送信前にエラーとなることはありません。(実行した先のSOAPサーバーによってエラーが返される場合があります。)
ストリームペインの入力タブは、このコンポーネントの直前にマッパーを接続し、マッパーによって入力のXMLを作成する場合にのみ使用されます。
RPCの場合、実行するメソッドのパラメータがParameterListまたはXMLのフィールド定義としてストリームペインの入力タブに読み込まれ、それを元にコンポーネントが送信メッセージを組み立てます。そのため、入力ストリームのスキーマがストリームペインの定義と異なる場合エラーが発生します。
RPCの場合、原則的には直前に接続したマッパーで入力ストリームを組み立てるようにしてください。
フィールド定義をParameterListとして読み込む場合はBinary型はBinary型のままでインポートされるので、そのまま値を差し込むことができます。しかし、フィールド定義をXMLとして読み込む場合はBinary型はString型としてインポートされるため、別途Base64Binaryなどにエンコードする作業が必要になります。
入力ストリームがXMLの場合、フローサービスが自動で行う型変換がWSDLの指定する形式にマッチしないことがあります。例えば、xsd:dateTime型の書式は「yyyy-MM-dd'T'HH:mm:ss'Z'」ですが、フローサービスの自動変換ではこの形式の日付文字列は生成されません。そのため、この場合はフィールド定義の型をString型に変更した上で、FORMATDATEなどの関数を使用して変換した値を差し込む必要があります。
xsd:date、xsd:time、桁数が指定された数値型でも同様な問題が起こる場合があるため、その場合はフィールド型をString型に変更した上でマッパー関数でWSDLの指定する形式に書式変換した文字列を差し込んでください。