Multiple Responses Generator は、階層型データ シナリオ、1 対多の非同期メッセージングなどを簡単に処理できる強力なツールです。
このセクションの内容
概要
XML の断片 (input
)、XML 要素名 (elementName
)、バックエンド アセット URL (backendURL
) を指定すると、Multiple Responses Generator は input
内の elementName
を検索し、各オカレンスを個別に backendURL
に送信します。バックエンド アセットは、elementName
をルート要素とするメッセージに応答するよう設定された仮想アセットであり、Multiple Responses Generator にレスポンスを返信します。Multiple Responses Generator はレスポンスを受信すると、1 つの XML に集約してレスポンスで使用できるようにします。
前提条件
- Parasoft Virtualize
インストール
- Parasoft marketplace からダウンロードしたアーカイブから Multiple Responses Generator JAR ファイルを展開します。
- Virtualize を開いてメイン メニューの [Parasoft] > [設定] > [システム プロパティ] をクリックします。
- [Jar の追加...] をクリックして Multiple Responses Generator JAR ファイルを参照します。
- [OK] をクリックし、Virtualize を再起動します。
このセットアップ手順を実行すると、メッセージ レスポンダーに結合可能なツールのリストに Multiple Responses Generator ツールが表示されるようになります。
設定
Multiple Responses Generator には主に 2 つのグループの設定オプションがあります。必須セクションのオプションは、Multiple Responses Generator を使うのに必須のオプションであり、任意セクションのオプションは、より高度なシナリオで複雑な制御を行うためのものです。
必須設定
以下のオプションは、Multiple Responses Generator の動作に必須です。
Name of element to send to backend asset | 名前空間 (あれば) を含む XML 要素名です。受信 XML 内にある、ここで指定された名前と一致する要素のオカレンスは、分割されて [Backend Asset URL] で指定された仮想アセットに送信されます。さらに、リクエスト内に複数のリストがある場合、ツールはすべてのリスト要素の組み合わせを作成します。単一のリストだけを使用したい場合、他のリストを除外します。 |
---|---|
Backend Asset URL | 仮想アセットの URL です。仮想アセットには、[Name of element to send to backend asset] で指定された要素をルート要素とする XML メッセージを処理するレスポンダーがなければなりません。 |
任意設定
Elements excluded from splitting process | 名前空間 (あれば) を含む XML 要素名のカンマ区切りのリストです。デフォルトでは、Name of element to send to backend asset オプションで指定された XML に同じ名前を持つ兄弟要素 (リスト) が含まれている場合、Multiple Responses Generator は兄弟要素の繰り返しごとに別個のリクエストを作成します。 |
---|---|
Response Type | [Backend Asset URL] で指定された仮想アセットが XML を返す場合、このフィールドは空のままにします。[Backend Asset URL] で指定された仮想アセットが XML 以外のペイロードを返す場合、このフィールドに "Other" を入力します。 |
Output XML Root Tag Name | レスポンス XML 出力のルート タグ名です。デフォルトは "responses" です。 |
Output XML | Output XML Root Tag Name の子要素の名前です。デフォルトは "response" です。 |
SOAPAction List | このカンマ区切り リストに指定された SOAP アクションごとに、Name of element to send to backend asset で指定された要素はその SOAP アクションを使用して Backend Asset URL に送信されます。このオプションは、要素に複数のレスポンスが必要な場合に便利です。 |
使用方法
Multiple Responses Generator は、Parasoft Virtualize メッセージ レスポンダーの任意の XML 出力に連結できます。これには、任意の XML ベースのレスポンダーの [受信リクエスト] > [ペイロード] や、非 XMLベースのレスポンダーの [受信リクエスト] > [XML に変換されたペイロード] が含まれます。Multiple Responses Generator の基本的な使用方法は次のとおりです。より詳細な説明は「Example Scenarios」にあります。
- 1 つまたはそれ以上のレスポンダーを持つフロント エンド アセットを作成します。
- アセットを必要とするレスポンダーごとに、XML ベースのレスポンダーの場合は [受信リクエスト] > [ペイロード]、非 XMLベースのレスポンダーの場合は [受信リクエスト] > [XML に変換されたペイロード] 出力 (レスポンダーが非 XML 入力を処理する場合) に Multiple Responses Generator を連結します。
- Multiple Responses Generator で、少なくとも [Name of element to send to backend asset] と Backend Asset URL を設定します。
- Multiple Responses Generator が送信するメッセージを処理するバックエンド アセットを作成します。必ず Multiple Responses Generator の [Backend Asset URL] で指定した URL にバックエンド アセットをデプロイします。
- Multiple Responses Generator の Response XML 出力に XML Data Bank または Text Data Bank を連結し、集約されたレスポンスを取得するよう設定します。
- 集約されたレスポンスをレスポンス内で使用します。
サンプルシナリオ
Multiple Responses Generator によって処理できるシナリオは多数ありますが、このセクションでは、最もよく使用されるサンプルをいくつか紹介します。
要素数が動的なリストの処理
Multiple Responses Generator で処理される最も一般的なシナリオは、要素数が動的に変化するリストを含むメッセージです。例:
<root> <items> <item> <name>Name1</name> <id>1</id> </item> <item> <name>Name2</name> <id>2</id> </item>
このリクエストには N 個のサブリスト (N >= 1) が含まれます。次のようなレスポンスが期待されています。
<root> <itemResponses> <itemResponse> <balance>10</balance> </itemResponse> <itemResponse> <balance>20</balance> </itemResponse>
「Usage」で説明したプロセスに従うと、上記のリクエストおよびレスポンスを持つアセットをセット アップできます。
- 1 つまたはそれ以上のレスポンダーを持つフロントエンド アセットを作成します。
- [VirtualAssets] プロジェクトを右クリックし、[新規追加] > [仮想アセット (.pva) ファイル] を選択します。
- ダイアログが表示されたら [ファイル名] フィールドに
Example1-Frontend
と入力し、[次へ] をクリックします。 - 次の画面でリストから [空] を選択し、[終了] をクリックします。
- 新しく作成された Example1-Frontend.pva の レスポンダー スイート を右クリックし、[新規追加] > [レスポンダー] を選択します。
- ウィンドウが表示されたら、Literal Message Responder を選択して [終了] をクリックします。
- Multiple Responses Generator を必要とするレスポンダーごとに、XML ベースのレスポンダーの場合は [受信リクエスト] > [ペイロード]、非 XMLベースのレスポンダーの場合は [受信リクエスト] > [XML に変換されたペイロード] 出力に Multiple Responses Generator を連結します。
- [Literal Message Responder] を右クリックし、[出力の追加...] をクリックします。
- ウィンドウが開いたら、受信リクエスト セクションで [ペイロード] を選択し、共通ツールの下の [Multiple Responses Generator] を選択します。
- [終了] をクリックします。
- Multiple Responses Generator で、少なくとも [Name of element to send to backend asset] と Backend Asset URL を設定します。
- [Name of element to send to backend asset field] に
item
と入力します。 - [Backend Asset URL] フィールドに
http://localhost:9080/Example1-Backend
と入力します。 - [Optional] セクションで [
itemResponses
] を入力します。 Multiple Responses Generator が送信するメッセージを処理するバックエンド アセットを作成します。必ず Multiple Responses Generator の [Backend Asset URL] で指定した URL にバックエンド アセットをデプロイします。
サンプルを簡単にするために、バックエンドでは固定レスポンスを使用します。Marketplace からダウンロードしたアーカイブに含まれている Example1-Backend.pva では、動的レスポンスを使用しています。
- [Name of element to send to backend asset field] に
- [VirtualAssets] プロジェクトを右クリックし、[新規追加] > [仮想アセット (.pva) ファイル] を選択します。
- ダイアログが表示されたら [ファイル名] フィールドに
Example1-Backend
と入力し、[次へ] をクリックします。 - 次の画面でリストから [空] を選択し、[終了] をクリックします。
- 新しく作成された Example1-Backend.pva で、[レスポンダー スイート] を右クリックし、[新規追加] > [レスポンダー]を選択します。
- 次の画面で [Literal Message Responder] を選択し、[終了] をクリックします。
次の XML を入力します。
<itemResponse> <balance>10</balance> </itemResponse>
- Multiple Responses Generator の Response XML 出力に XML Data Bank または Text Data Bank を連結し、集約されたレスポンスを取得するよう設定します。
- Example1-Frontend.pva で [MultipleResponsesGenerator] を右クリックし、[出力の追加…] を選択します。
- 左側で [Response XML] を選択し、右側で [XML Data Bank] を選択します。
- [XPath の追加] をクリックします。
- [選択された XPath] 列に表示された行をクリックし、[変更] をクリックします。
- [XPath ] フィールドを
/*
に変更します。 - [抽出] ドロップダウン メニューから [要素全体] を選択します。
- エディターの左側で [データ ソース列] を選択し、[カスタム列名] フィールドにレスポンスを入力します。
- [OK] をクリックします。
集約されたレスポンスをレスポンス内で使用するには、[Literal Message Responder] をダブルクリックし、テキスト フィールドに次のように入力します。
<root> ${responses} </root>
次の図は、このシナリオ全体を表しています。