# ループを展開

ループを展開し、ループしない個別のエレメントを作成します。

## 始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。この例では、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Structures] (ストラクチャー) &gt; [Recursive] (再帰) &gt; [Component] (コンポーネント)を入力として、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Structures] (ストラクチャー) &gt; [CSV] &gt; [FlatComponents]を出力として使います。

## このタスクについて

この例では、再帰SubComponentsループが含まれているComponentエレメントが入力ストラクチャーに存在します。出力では、SubComponentsループがComponentsと同じレベルのシンプルループであることが必要です。

このマップは、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Maps] (マップ) &gt; [Looping] (ルーピング) &gt; [LoopRecursiveToFlat]にあります。

## 手順

1. 入力ストラクチャーで、SubComponentsループを右クリックして[Expand Recursive Elements] (再帰的エレメントの展開)をクリックし、もう一度右クリックして[Expand All] (すべて展開)をクリックして子を表示させます。

   同じステップを子SubComponentsエレメントで繰り返せば、必要な数だけレベルを表示できます。
2. 出力ストラクチャーでComponentsループを右クリックし、[Unroll From Loop] (ループから展開)をクリックします。

   これによって、ルーピングしないComponentsエレメントが子と共に新しく作成されます。
3. 入力Componentエレメントを出力Components (ループから展開済み)に配置します。

   両方のストラクチャーで同じ名前のエレメントが自動的にマッピングされます。
4. 入力SubComponentsループを出力Components[2]ループに配置します。

   エレメントがマッピングされ、SimpleLoopファンクションが出力ルーピングエレメントに追加されます。 ![SubComponentsエレメントとComponents\[2\]エレメントのマッピング。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/unroll_loop_02_map.png)
5. 出力Rowエレメントをクリックした後、その[Loop] (ループ)タブの[Functions] (ファンクション)タブからFixedLoopファンクションを配置します。

   Rowエレメントはループなので、ループ式が必要です。ただし、入力Componentはループしないので、出力にRowを複数回出現させる必要はありません。FixedLoopファンクションは返す回数を示しています(デフォルトでは1に設定されています)。 ![\[Loop\] (ループ)タブ。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/unroll_loop_03_fixedloop.png)

## タスクの結果

ループがマッピングされます。サンプル入力ファイルに基づいて出力を確認する場合は、[Test Run] (テスト実行)ボタンを使います。この例での出力は次のようになります。

```
<FlatComponents>
  <Row>
    <Components>
      <Id>1</Id>
      <PartNumber>45I1122</PartNumber>
      <Quantity>1</Quantity>
      <Description>Main Component</Description>
    </Components>
    <Components>
      <Id>102</Id>
      <PartNumber>12ZSSS</PartNumber>
      <Quantity>5</Quantity>
      <Description>Door Assembly</Description>
    </Components>
    <Components>
      <Id>302</Id>
      <PartNumber>12IQWO</PartNumber>
      <Quantity>14</Quantity>
      <Description>Window Assembly</Description>
    </Components>
  </Row>
</FlatComponents>
```