このセクションでは、[トラフィックからパラメータライズされたメッセージを生成] ウィザードの[リクエスト照合] ページの設定方法について説明します。[リクエスト照合] ページでは、リクエスト/レスポンス ペアを再マッピングしたり、仮想アセットのレスポンス メッセージを決定するためにどのパラメーター値を使用するかをカスタマイズしたり、このメッセージに関連付ける WSDL またはスキーマを指定したりすることができます。
セクションの内容:
リクエスト/レスポンス ペアの再マッピング
リクエスト/レスポンスのペアを再マッピングしたい場合、[リクエスト/レスポンスペア] タブでマッピングを切断/再接続します。たとえば、response 3 が実際には request 2 に一致している場合、次のように指定します。
接続されたメッセージは、生成されたメッセージ レスポンダーとデータ リポジトリで使用されます。切断された (あるは存在しない) メッセージは使用されません。メッセージ レスポンダーやデータ リポジトリでメッセージを使用したくない場合、そのメッセージのブロックを削除するか、切断することができます。
メッセージの詳細を参照するには、そのメッセージのブロックを選択します。
応答条件のカスタマイズ
仮想アセットのレスポンス メッセージを決定するために、どのパラメーター値を使用するかをカスタマイズしたい場合、必ず [自動構成] チェックボックスをオフにし、その後のウィザード ページに表示される [リクエスト応答条件] タブで応答条件オプションを指定します (ウィザードではメッセージ グループごとにページが表示されます)。[リクエスト応答条件] タブには、適用可能な場合、以下の応答条件が自動的に表示され、ユーザーはこの初期応答条件をカスタマイズすることができます。
テンプレートを指定しなかった場合、ページの初期状態では、現行のトラフィック ファイルから自動生成されたデータ ソース応答条件が表示されます。
テンプレートを指定した場合は、テンプレートで定義されたデータ ソース応答条件が表示されます。この場合、データ ソース応答条件は現行のトラフィック ファイルから自動生成されません。
単一レスポンスのレスポンダーを作成するためにリクエスト応答条件を無効化する
グループにデータ ソース応答条件がない場合、あるいはグループに単一レスポンスだけがある場合、常に同じレスポンスを返すレスポンダーを作成するのが良いでしょう。それには、[リクエスト応答条件] タブの先頭にある [リクエスト応答条件の有効化] チェックボックスをオフにします。
応答条件はどのように使用されるか
ここで指定したすべてのカスタム応答条件は、生成されるレスポンダーでデータ ソース応答条件を設定するために使用されます。たとえば、この XPath をリクエスト ボディの応答条件として [リクエスト応答条件] タブで指定するものとします。
この XPath は、次の図で示すように、生成されたレスポンダーの [データ ソース応答条件] タブで使用されます。
なお、自動生成されたデータ ソース列名は必要に応じて変更できます。
もうひとつ例を挙げます。以下のリクエスト URL パス応答条件を指定したものとします。
生成されたレスポンダーの [データ ソース応答条件] タブは以下のようになります。
初期応答条件の変更
さまざまな応答条件セクションにあるコントロールを使って、自動設定された構成を変更できます。設定を変更した後にページをその初期状態に戻したい場合は、[デフォルトの復元] ボタンをクリックします。
同じ列名を複数回指定した場合 (たとえば URL パラメーターと URL パスで指定した場合)、1 つの値だけが設定されます。すなわち、前の値が上書きされます。
リクエスト ボディ応答条件
Virtualize は、操作/ ループごとに「名前」ベースの XPath を生成します。この XPath は、該当する操作のレスポンダー応答条件を設定するために使用されます。たとえば、SOAP ボディ内の要素名が "SubmitOrder" である場合、レスポンダー応答条件セクションに設定される XPath 式は次のようになります。
local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder"
なお、メッセージが XML ではない場合、 XPath とパラメーターの選択は、XML に変換されたリクエスト メッセージに適用されます。
同じ操作に属するメッセージの各グループでは、リクエスト間で異なるパラメーターを判断するために、リクエストが互いに比較されます。Virtualize のトラフィックからの自動構成は、リクエスト要素の違いを分析します。そして、この分析結果を使用して操作/グループ内で利用可能なレスポンスの XPath 式を生成します。その目的は、それぞれの異なるリクエスト要素に対してレスポンスを自動生成することです。トラフィックが SOAP エンベロープの場合、メッセージが同じ操作要素 (SOAP ボディの最初の要素) を共有する限り、構造の違いは許容されます。トラフィックが一般的な XML の場合、メッセージが同じルート ノードを持つ限り、構造の違いは許容されます。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用する XPath と列名を指定します (複数の XPath と列名を指定できます) 。
リクエスト URL パラメーター応答条件
リクエスト URL パラメーターの場合、メッセージ グループに属する呼び出し中の URL パラメーターに差異がある場合 (パラメーター数の違い、パラメーター名の違い、パラメーター値の違いなど)、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパラメーターがあるものとします。
countryCode=US&brandCode=HG
countryCode=Uk&brandCode=HG&channelCode=3
countryCode=US
countryCode=UK
brandCode=HG
パラメーターの差異に基づいて、このメッセージ グループ用に Virtualize は次の 3 種類のデータ ソース応答条件行を自動構成します。 countryCode, brandCode, and channelCode
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、使用するパラメーターと列名を指定します (複数のパラメーターと列名を指定できます)。
リクエスト URL パス応答条件
URL パスの場合、グループに属する呼び出し中の URL パスに差異がある場合、Virtualize のトラフィックからの自動構成は、それらの差異に基づいて応答条件を自動的に構成します。
たとえば、特定のメッセージ グループのための呼び出しに以下のパスがあるものとします。
/customer/123/account/1920384
/customer/203/account/4922434
/customer/302/account/7349463
セグメント 1 と 3 (0 を起点とするインデックスを使用) の差異に基づいて、このメッセージ グループ用に Virtualize は次の 2 種類のデータソース応答条件行を追加します。すなわち、パス インデックス 1 のための行とパス インデックス 3 のための行です。
ウィザード ページに表示される初期構成を上書きしたい場合、利用可能なコントロールを使って、応答条件に使用するパス セグメントを指定します。パス セグメントは、1 つ以上のデータ ソース列に一致でき、さまざまなデータ ソース列を使ってパラメータライズできます。表示されるダイアログで、使用するパスセグメントを指定し (関連するパス セグメントをクリックするか、パス インデックスを入力できます)、データ ソース列の名前を指定します。
リクエスト ヘッダー応答条件
リクエスト ヘッダー応答条件は、Virtualize のトラフィックからの自動構成中に追加されません。ヘッダーの値に基づいて一致させたい場合、抽出して一致させたいリクエスト値のヘッダーを指定し、それぞれデータ ソース列にマッピングします。抽出された値は、マッピングされたデータ ソース列の値と一致します。
WSDL またはスキーマの指定
このトラフィックの WSDL またはスキーマを指定したい場合、[WSDL/スキーマ] タブで入力します。WSDL またはスキーマを指定することには次のメリットがあります。
- 生成されたフォーム入力モデルは指定した WSDL/ スキーマに基づくので、フォーム入力を編集したり保守したりするときに豊富なタイプを利用できます。
- サービスの進化や環境条件の変化とユーザーのアセットとを同期しておくために、変更アドバイザーを利用できます (変更アドバイザーについては「変更管理」で説明) 。
生成されたフォーム入力とそのデータ パラメータライズが元のメッセージに一致しない場合、これは「元のメッセージが WSDL/スキーマに完全に一致していないこと」、あるいは「元のメッセージとのマッピングに失敗したこと」を表します。フォーム入力モデルが必ずトラフィック メッセージに完全に一致するよう、WSDL/スキーマを省略してください。
WSDL またはスキーマを指定せず、メッセージが choice または extension タイプを使用する場合は、「 choice/extension タイプのサポート」を参照してください。