WebService2 - WebService(SOAP)の呼び出し

WSDLファイルを読み込んでSOAPメソッドを実行します。

SOAP1.1/1.2に対応しています。

RPCスタイルには対応していません。

WSDLの定義はインポート機能によって本コンポーネントに設定することができます。詳しくは、下記トピック「WSDLインポート機能」を参照してください。

SSL通信を行う場合、管理コンソールで登録された証明書を使用してPKI基盤に従って通信を行います。

■ストリーム情報

入力フォーマットXML
接続数1
説明WSDL読み込みによって定義されたストリーム
出力フォーマットXML
説明出力形式 に応じたストリームが出力されます。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
WSDL指定方法choice- 使用するWSDLの場所をファイルパスで指定するかURLで指定するかを設定します。
ファイル [file] - WSDLをホームフォルダー上のファイルから読み込みます。
URL [url] - WSDLをhttp(s)通信で読み込みます。
WSDLファイルパスremoteFile-WSDL指定方法ファイルの場合に使用するWSDLファイルを指定します。
ここで指定するWSDLファイルは実行時および設計時に読み込まれ、使用されます。
WSDL URLstring-WSDL指定方法URLの場合に使用するWSDLのURLを指定します。
ここで指定するWSDLファイルは実行時および設計時に読み込まれ、使用されます。
サービス名string- 実行するWebサービスのサービス名。(WSDLファイル内のservice要素)
通常はWSDLインポート機能で設定されます。
ポートstring- 実行するWebサービスのポート。(指定したサービスで定義されているport)
通常はWSDLインポート機能で設定されます。
メソッド名string- 実行するWebサービスのメソッド名。(指定したポートにバインディングされているoperation)
通常はWSDLインポート機能で設定されます。
出力形式choice- 出力ストリームを指定します。
「RequestEnvelope」を指定した場合はSOAPリクエストは実行されません。デバッグ時や、このコンポーネントの出力をさらに加工して後でHTTP(Post)コンポーネントで送信する場合などに使用します。
「ResponseEnvelope」を指定した場合はSOAPリクエストが実行され、そのレスポンスが出力ストリームとなります。
要求メッセージ(エンベロープ) [RequestEnvelope]
出力ストリームはSOAPリクエストのEnvelopeになります。
応答メッセージ(エンベロープ) [ResponseEnvelope]
出力ストリームはSOAPレスポンスのEnvelopeになります。
Cookiechoice- SOAPサーバーがCookieを使用する場合のCookieの維持期間を指定します。
なし [None] - Cookieは設定されません
リクエスト [Request] - 同一リクエスト内でCookieが維持されます
セッション [Session] - 同一セッション内でCookieが維持されます
コネクション名connection- http(s)での通信にコネクション設定を使用する場合に指定します。
以下の場合には、コネクションを参照するようにして、接続設定でプロキシや認証の設定を行います。
  • プロキシサーバーを使用する場合
  • 接続先のSOAPサーバーがユーザー認証を行う場合
エンドポイントstring入力&出力 WSDLで指定されているEndpointとは異なるEndpointで通信する場合にそのURLを指定します。
サーバー証明書のCN確認boolean入力&出力 サーバー証明書のCN確認を行うかどうかを指定します。
確認する [true] - サーバー証明書のCNを確認します。
確認しない [false] - サーバー証明書のCNを確認しません。
レスポンス長さ制限int入力&出力 SOAPレスポンスの最大取得バイト数を指定します。
※指定しない場合は、49152バイトになります。-1を指定した場合は制限を指定しません。
SOAPヘッダー(送信)category入力&出力 実行するメソッドにSOAPヘッダーが必要な場合に、そのヘッダーに設定する値を指定します。
SOAPヘッダー(受信)category入力&出力 実行したメソッドのレスポンスにSOAPヘッダーがある場合に、そのヘッダーの値を取得します。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
SOAPフォルト なし SOAPFaultのSOAPEnvelope(XML)1実行中にSOAPFaultが発生した場合や、通信先のWebサービスがSOAPFaultを返した場合
汎用 なし コンポーネントの入力ストリーム2WSDLのパース中にエラーが発生した場合
3WSDLの指定で不正な形式のURLが指定された場合
4通信用ディスパッチインスタンスの作成に失敗した場合
5SOAPヘッダー作成時にSOAP例外が発生した場合
6エンベロープ解析中に文字コードエラーが発生した場合
7入出力ストリームの処理中にエラーが発生した場合
8通信時にエラーが発生した場合

■WSDLインポート機能

WSDLの定義から簡単にプロパティや入出力ストリームの設定を行うために、本コンポーネントにはインポート機能を用意しています。

WSDLファイルを選択する

WSDLをインポートするためのダイアログボックスを表示するには、以下の2つの方法があります。

  1. 以下のいずれかの操作でWSDLファイルを選択するダイアログボックスを表示します。
    • コンポーネントをダブルクリック
    • コンポーネントを右クリックして表示されるメニューの「WSDLインポート」をクリック
  2. WSDL指定方法の設定に従って、ホームフォルダー下のファイルを選択するダイアログから読み込むWSDLファイルを選択するか、読み込み先のURLを指定します。
  3. WSDLのインポートダイアログボックスが表示されます。

インポートする

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

■Endpointについて

通信に使用されるEndpointは以下の優先順位で決定されます。

  1. エンドポイントプロパティに値が設定されている場合はそのURLを使用する
  2. WSDLファイルのsoap:address要素で指定されているURLを使用する

■DocumentスタイルとRPCスタイル

このコンポーネントはDocumentスタイルにのみ対応し、RPCスタイルには対応していません。

■SOAPとWSDL

このコンポーネントはSOAP1.2、WSDL1.1に対応しています。

■型変換について

フローサービスが自動で行う型変換がWSDLの指定する形式にマッチしないことがあります。例えば、xsd:dateTime型の書式は「yyyy-MM-dd'T'HH:mm:ss'Z'」ですが、フローサービスの自動変換ではこの形式の日付文字列は生成されません。そのため、この場合はフィールド定義の型をString型に変更した上で、FORMATDATEなどの関数を使用して変換した値を差し込む必要があります。

xsd:date、xsd:time、桁数が指定された数値型でも同様な問題が起こる場合があるため、その場合はフィールド型をString型に変更した上でマッパー関数でWSDLの指定する形式に書式変換した文字列を差し込んでください。

■要求メッセージと応答メッセージのログ出力について

フローサービスのログ出力レベルが「デバッグ」に設定され、コンポーネントの「出力形式」プロパティで「応答メッセージ(エンベロープ)」を選択している場合に、要求メッセージと応答メッセージをFlowService.logへデバッグレベルで出力します。