# ネスト化されたループを単純なループに集計

ネスト化されたループを集計することで、ネスト化されたループを持つXMLストラクチャーをフラットなCSVストラクチャーに変換します。

## 始める前に

マップを作成し、入力ストラクチャーと出力ストラクチャーを追加済みであること。

## このタスクについて

この例では、[ネスト化されたループを単純なループに結合](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/combining-nested-loops-into-simple-loop)と同じ入力ストラクチャーが使用されています。この変換の目標は、各Addressエレメントに配送と製品に関する情報が含まれている行を持つCSVファイルを作成することです。

住所に配送されるすべての製品が各行に含まれるよう、出力ストラクチャーには複数のPartNumberエレメントとProductNameエレメントが含まれています。次のように定義されています:

```
AddressesShipping
	Address (0:*)
		Name
		Street
		City
		State
		Zip
		Country
		DeliveryNotes
		PartNumber_1
		ProductName_1
		PartNumber_2
		ProductName_2
		PartNumber_3
		ProductName_3
```

## 手順

1. 次の入力Componentエレメントを対応する出力エレメントにドラッグします。
   * Name
   * Street
   * City
   * State
   * Zip
   * Country
   * DeliveryNotes
2. 入力PartNumberエレメントを出力PartNumber\_1にドラッグします。

   出力ストラクチャーは入力Addressエレメントで既にループしているため、競合が発生します。
3. ダイアログボックスが開いたら、[Generate AgConcat value expression] (AgConcat値の式をに生成)を選択し、OKをクリックします。

   このオプションを使用すると、各Addressエレメントに含まれているPartNumberエレメントの値がすべて、AgConcatファンクションで1つのフィールドに集計されます。1つのフィールドに1つの値を持つようにしたい場合は、フィルターを使用する必要があります。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/aggregate_nested_into_simple_01_agconcat.png)
4. SingleIndexファンクションを、出力PartNumber\_1エレメントの[Value] (値)タブにあるFilter引数にドラッグします。

   最初のPartNumberエレメントの値を取得する場合は、インデックスのデフォルト値のままにしておきます。
5. 入力PartNumberエレメントを出力PartNumber\_2エレメントとPartNumber\_3エレメントにドラッグし、表示されるダイアログボックスで[Generate AgConcat value expression] (AgConcat値の式をに生成)選択して[OK]をクリックします。

   フィルターは、PartNumber\_1で定義された式に基づいて自動的に設定されます。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/aggregate_nested_into_simple_02_filters_part.png)
6. 前のステップを繰り返し、入力ProductNameエレメントを出力ProductName\_1、ProductName\_2、ProductName\_3の各エレメントにマッピングします。
   ### 例

   ![](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/aggregate_nested_into_simple_03_filters_product.png)

## タスクの結果

これでマッピングが設定されます。サンプルドキュメントがある場合は、[Test Run] (テスト実行)をクリックして結果を確認します。この例では次のようになります:

```
Name,Street,City,State,Zip,Country,DeliveryNotes,PartNumber_1,ProductName_1,PartNumber_2,ProductName_2,PartNumber_3,ProductName_3
Deandre King,4894  Winding Way,Southfield,MI,48075,USA,Please leave packages in shed by driveway.,872-AA,Lawnmower,926-AA,Baby Monitor,,
Burl Clark,3807 Pointe Lane,Fort Lauderdale,FL,33308,USA,,356-KX,Gas canister,,,,
```