# ネスト化されたループをマッピング

ネスト化された入力ループを、ネスト化されたさまざまな出力ループにマッピングします。 ネスト化されたループは、親ループからデータにアクセスする可能性を残しつつ最深レベルのループ階層を反復しようとしていることを示しています。

## 始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。この例では、POFileを入力として、SimpleShipNoticeFileを出力として使います。これらのストラクチャーは、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Structures] (ストラクチャー) &gt; [Simple] (シンプル) &gt; [POStandard]の下にあります。

## このタスクについて

この例では、入力ルーピングエレメントの3つのレベルが出力の2つのレベルにマッピングされています。出力Noticeエレメントは入力Deliveryループにルーピングしなければなりませんが、親POループからのNumberエレメントを使用することも必要です。

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

## 手順

1. 入力PO/Numberエレメントを出力Numエレメントにドラッグします。

   SimpleLoopファンクションを持つループ式がNoticeに追加されます。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/nested_loops_01_simpleloop.png)
2. 入力DeliveryToNameを出力Nameにドラッグします。
3. ダイアログボックスが開いたら、[Change the output element looping] (出力エレメントルーピングを変更)を選択し、[OK]をクリックします。

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

   NestedContextファンクションが、NoticeエレメントにあるSimpleLoopのContext引数に自動的に追加されます。別のSimpleLoopがNestedContextに追加されます。このファンクションは、入力Deliveryループへの参照を引数として使用します。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/nested_loops_03_nestedcontext.png)
4. オプション: 必要であれば他のエレメントもマッピングします。

## タスクの結果

NestedContextの使用は、各POループに含まれている各入力Deliveryループに対してNoticeエレメントが1つ必要であることを示しています。同じ入力ドキュメントにはPOエレメントが2つ含まれています。一方にはDeliveryが1つ、他方には2つそれぞれ含まれています。[Test Run] (テスト実行)を使用すると、次のようにNoticeエレメントが3つ表示されます:

```
<Notices>
  <Notice>
    <Num>1</Num>
    <Name>Francis Upton</Name>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Francis Upton</Name>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Martha Lyman</Name>
  </Notice>
</Notices>
```