メイン コンテンツをスキップする 補完的コンテンツへスキップ

マップでglobalMap変数を使用

ジョブを設定して、さまざまなコンポーネントで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] (実行)をクリックしてジョブを実行します。

タスクの結果

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

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。