マップでglobalMap変数を使用 - 7.3

Talend Data Mapperファンクションリファレンスガイド

Version
7.3
Language
日本語
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > ジョブデザイン
Last publication date
2023-01-09

ジョブを設定して、さまざまなコンポーネントでglobalMap変数を使います。

手順

  1. ジョブで、tHMapコンポーネントの下にtLoopコンポーネントを追加し、[Trigger] (トリガー) > [On Component Ok] (コンポーネントがOKの場合)接続を使ってtHMapコンポーネントをtLoopコンポーネントにリンクします。
  2. tLoopの横に、以下のコンポーネントを追加します:
    • tHttpRequest
    • tHMap
    • tLogRow
  3. [Row] (行) > [Iterate] (反復処理)接続を使ってtLooptHttpRequestとリンクして、[Row] (行) > [Main] (メイン)接続を使って他のコンポーネントをリンクします。
    ジョブは次のようになります。
  4. tLoopコンポーネントをダブルクリックして、以下のように設定します:
    パラメーター
    Loop Type For
    From 1
    To (((java.math.BigInteger)globalMap.get("total.pages"))).intValue()
    Step 1
    この設定によって、APIレスポンスでループの末尾を合計ページ数として定義できます。マップ内に作成されたtotal.pages変数がBigIntegerであるために、tLoopで値として使うには、それを整数に変換する必要があります。
  5. 2つ目のtHttpRequestコンポーネントをダブルクリックして、以下のように設定します:
    パラメーター
    URI "https://www.swapi.tech/api/people?page="+((Integer)globalMap.get("tLoop_1_CURRENT_VALUE"))+"&limit=10"
    Method GET

    この設定によって、リクエストパラメーターで現在のループの値をページ番号として使えます。

  6. tLogRowをダブルクリックして、次のスキーマを定義します:
    カラム タイプ
    page Integer
    character 文字列
    character_id Integer
  7. tHMapコンポーネントをダブルクリックして、マップを生成します。
    1. 1番目のステップでは、[Select an existing hierarchical mapper structure] (既存の階層マッパーストラクチャーを選択)を選択して、[Next] (次へ)をクリックしてから、APIから作成したストラクチャーを選択します。
    2. 2番目のステップでは、デフォルトオプションのままにしておき、[Next] (次へ)をクリックしてから、[FInish] (終了)をクリックします。
    マップが作成され、定義できるようになります。
  8. 出力character_idエレメントに入力results/uuidエレメントを、出力characterエレメントに入力results/nameエレメントをドラッグ&ドロップします。
  9. GetValueFromExternalMapファンクションを出力pageエレメントにドラッグ&ドロップして、Key 引数にConstantファンクションを追加します。
  10. Constantファンクションをダブルクリックして、[Value] (値)フィールドにtLoop_1_CURRENT_VALUEと入力します。
    これによって、tLoopコンポーネントから現在のループの値を取得して、各結果のページ番号を把握できます。
  11. [Run] (実行)タブを開き、[Run] (実行)をクリックしてジョブを実行します。

タスクの結果

結果は以下のようになるはずです: