# ルートを作成して外部マップを使用

ルートを作成し、コンポーネントを設定して、外部マップ変数を作成および使用します。

## 手順

1. Integrationパースペクティブで、[Route Designs] (ルートデザイン)ノードを右クリックして、[Create Route] (ルートを作成)をクリックします。
2. ルートの名前、目的、説明を入力して[Finish] (完了)をクリックします。
3. 次のコンポーネントをデザインワークスペースに追加し、[Row] (行) &gt; [Route] (接続)接続にリンクさせます。
   * cTimer
   * cProcessor
   * cSetBody
   * cMap
   * cLog
   * 2つ目のcProcessor

   ルートは次のようになります: ![ルートの説明。](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/create_route_external_map_01_route.png)
4. 1つ目のcProcessorコンポーネントをダブルクリックして、以下のように設定します:
   | パラメーター | 値 |
   | --- | --- |
   | Import | ```<br>import java.util.*;<br>``` |
   | Code | ```<br>Map<String, Object> externalMap = new HashMap<>();<br>externalMap.put("current.date",TalendDate.getCurrentDate());<br>Map<String, Object> executionProperties = exchange.getIn().getHeaders();<br>if (executionProperties==null){<br>executionProperties = new HashMap<>();<br>exchange.getIn().setHeaders(executionProperties);<br>}<br>executionProperties.put("org.talend.transform.externalmap", externalMap);<br>``` |

   このコードによって、後でマップで使えるcurrent.dateという名前の外部マップ変数を作成できます。
5. cSetBodyコンポーネントをダブルクリックして、以下のように設定します:
   | パラメーター | 値 |
   | --- | --- |
   | Language | Constant |
   | Expression | "&lt;orders&gt;&lt;order&gt;&lt;orderId&gt;abc-6545165186&lt;/orderId&gt;&lt;shippingDetails&gt;&lt;lastName&gt;Kennedy&lt;/lastName&gt;&lt;firstName&gt;John&lt;/firstName&gt;&lt;street&gt;Santa Rosa South&lt;/street&gt;&lt;city&gt;Columbus&lt;/city&gt;&lt;state&gt;New York&lt;/state&gt;&lt;/shippingDetails&gt;&lt;items&gt;&lt;item&gt;&lt;id&gt;4987601&lt;/id&gt;&lt;price&gt;649.99&lt;/price&gt;&lt;quantity&gt;1&lt;/quantity&gt;&lt;/item&gt;&lt;item&gt;&lt;id&gt;8570817&lt;/id&gt;&lt;price&gt;99.99&lt;/price&gt;&lt;quantity&gt;3&lt;/quantity&gt;&lt;/item&gt;&lt;/items&gt;&lt;/order&gt;&lt;/orders&gt;" |
6. 2つ目のcProcessorコンポーネントをダブルクリックして、以下のように設定します:
   | パラメーター | 値 |
   | --- | --- |
   | Code | ```<br>Map<String, Object> executionProperties = exchange.getIn().getHeaders();<br>if (executionProperties==null){<br>executionProperties = new HashMap<>();<br>exchange.getIn().setHeaders(executionProperties);<br>}<br>Map<String, Object> externalMap = (Map<String, Object>)executionProperties.get("org.talend.transform.externalmap");<br>System.out.println("Order ID: " + (String)externalMap.get("order.id"));<br>System.out.println("Order due date: " + (String)externalMap.get("due.date"));<br>``` |

   このコードによって、マップで定義するorder.id外部マップ変数とdue.date外部マップ変数を出力できます。

## タスクの結果

ルートが設定されており、マップを生成および設定できるようになります。