WSDLファイルを読み込んでSOAPメソッドを実行します。
WSDLの定義はインポート機能によって本コンポーネントに設定することができます。詳しくは、下記トピック「WSDLインポート機能」を参照してください。
SSL通信を行う場合、管理コンソールで登録された証明書を使用してPKI基盤に従って通信を行います。
入力 | フォーマット | XML,ParameterList |
---|---|---|
接続数 | 1 | |
説明 | WSDL読み込みによって定義されたストリーム | |
出力 | フォーマット | MIME,XML,ParameterList |
説明 | 出力形式 に応じたストリームが出力されます。 |
名前 | プロパティ型 | マッピング | 説明 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
WSDL指定方法 | choice | - |
使用するWSDLの場所をファイルパスで指定するかURLで指定するかを設定します。
|
|||||||||
WSDLファイルパス | remoteFile | - | WSDL指定方法がファイルの場合に使用するWSDLファイルを指定します。 ここで指定するWSDLファイルは実行時および設計時に読み込まれ、使用されます。 |
|||||||||
WSDL URL | string | - | WSDL指定方法がURLの場合に使用するWSDLのURLを指定します。 ここで指定するWSDLファイルは実行時および設計時に読み込まれ、使用されます。 |
|||||||||
サービス名 | string | - |
実行するWebサービスのサービス名。(WSDLファイル内のservice要素) 通常はWSDLインポート機能で設定されます。 |
|||||||||
ポート | string | - |
実行するWebサービスのポート。(指定したサービスで定義されているport) 通常はWSDLインポート機能で設定されます。 |
|||||||||
メソッド名 | string | - |
実行するWebサービスのメソッド名。(指定したポートにバインディングされているoperation) 通常はWSDLインポート機能で設定されます。 |
|||||||||
出力形式 | choice | - |
出力ストリームを指定します。
「RequestXXXX」を指定した場合はSOAPリクエストは実行されません。デバッグ時や、このコンポーネントの出力をさらに加工して後でHTTP(Post)コンポーネントで送信する場合などに使用します。 「ResponseXXXX」を指定した場合はSOAPリクエストが実行され、そのレスポンスが出力ストリームとなります。
|
|||||||||
Cookie | choice | - |
SOAPサーバーがCookieを使用する場合のCookieの維持期間を指定します。
|
|||||||||
コネクション名 | connection | - |
http(s)での通信にコネクション設定を使用する場合に指定します。 以下の場合には、コネクションを参照するようにして、接続設定でプロキシや認証の設定を行います。 (または、このコンポーネントではメッセージを作成するだけとして、HTTP(Post)コンポーネントで送信するという方法があります。)
|
|||||||||
エンドポイント | string | 入力&出力 | WSDLで指定されているEndpointとは異なるEndpointで通信する場合にそのURLを指定します。 | |||||||||
SOAPヘッダー(送信) | category | 入力 | 実行するメソッドにSOAPヘッダーが必要な場合に、そのヘッダーに設定する値を指定します。 | |||||||||
SOAPヘッダー(受信) | category | 出力 | 実行したメソッドのレスポンスにSOAPヘッダーがある場合に、そのヘッダーの値を取得します。 |
コミット | 何もしません。 |
---|---|
ロールバック | 何もしません。 |
タイプ | パラメーター | エラー処理フロー へのストリーム | エラー コード | 説明 |
---|---|---|---|---|
SOAPフォルト | なし | SOAPFaultのSOAPEnvelope(XML) | なし | 実行中にSOAPFaultが発生した場合や、通信先のWebサービスがSOAPFaultを返した場合 |
汎用 | なし | コンポーネントの入力ストリーム | なし | WSDLの読み込みに失敗した場合 |
なし | 入力ストリームの形式が不正な場合 | |||
なし | Webサービスが実行できなかった場合 | |||
なし | 実行したWebサービスがSOAP以外のレスポンスを返した場合 |
DynamicConnectionコンポーネントやMapperコンポーネントを使用してエンドポイントを変更しながら同時に同じフローを実行することはできません。
WSDLの定義から簡単にプロパティや入出力ストリームの設定を行うために、本コンポーネントにはインポート機能を用意しています。
WSDLをインポートするためのダイアログボックスを表示するには、以下の2つの方法があります。
WSDLのインポートダイアログボックスでは、各リストから選択して「OK」をクリックすると自動的にインスペクタのサービス名 、ポート 、メソッド名 、SOAPヘッダー(送信) 、SOAPヘッダー(受信) が設定されます。また、ストリームペインの入力タブと出力タブのフィールドが自動的に定義されます。
入力または出力のストリーム型にParameterListが選択できるのは選択したオペレーションが以下の条件を満たしている場合です。
つまり、Documentスタイルのオペレーションや構造体を含む複雑なパラメーターがある場合はXMLしか選択できなくなります。
通信に使用されるEndpointは以下の優先順位で決定されます。
このコンポーネントは呼び出す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の指定する形式に書式変換した文字列を差し込んでください。