マップでglobalMap変数を使用
ジョブを設定して、さまざまなコンポーネントでglobalMap変数を使います。
手順
- ジョブで、tHMapコンポーネントの下にtLoopコンポーネントを追加し、[Trigger] (トリガー) > [On Component Ok] (コンポーネントがOKの場合)接続を使ってtHMapコンポーネントをtLoopコンポーネントにリンクします。
-
tLoopの横に、以下のコンポーネントを追加します:
- tHttpRequest
- tHMap
- tLogRow
-
[Row] (行) > [Iterate] (反復処理)接続を使ってtLoopをtHttpRequestとリンクして、[Row] (行) > [Main] (メイン)接続を使って他のコンポーネントをリンクします。
ジョブは次のようになります。
-
tLoopコンポーネントをダブルクリックして、以下のように設定します:
パラメーター 値 Loop Type For From 1 To (((java.math.BigInteger)globalMap.get("total.pages"))).intValue() Step 1 この設定によって、APIレスポンスでループの末尾を合計ページ数として定義できます。マップ内に作成されたtotal.pages変数がBigIntegerであるために、tLoopで値として使うには、それを整数に変換する必要があります。 -
2つ目のtHttpRequestコンポーネントをダブルクリックして、以下のように設定します:
パラメーター 値 URI "https://www.swapi.tech/api/people?page="+((Integer)globalMap.get("tLoop_1_CURRENT_VALUE"))+"&limit=10" Method GET この設定によって、リクエストパラメーターで現在のループの値をページ番号として使えます。
-
tLogRowをダブルクリックして、次のスキーマを定義します:
カラム タイプ page Integer character 文字列 character_id Integer -
tHMapコンポーネントをダブルクリックして、マップを生成します。
- 1番目のステップでは、[Select an existing hierarchical mapper structure] (既存の階層マッパーストラクチャーを選択)を選択して、[Next] (次へ)をクリックしてから、APIから作成したストラクチャーを選択します。
- 2番目のステップでは、デフォルトオプションのままにしておき、[Next] (次へ)をクリックしてから、[FInish] (終了)をクリックします。
マップが作成され、定義できるようになります。 - 出力character_idエレメントに入力results/uuidエレメントを、出力characterエレメントに入力results/nameエレメントをドラッグ&ドロップします。
- GetValueFromExternalMapファンクションを出力pageエレメントにドラッグ&ドロップして、Key 引数にConstantファンクションを追加します。
-
Constantファンクションをダブルクリックして、[Value] (値)フィールドにtLoop_1_CURRENT_VALUEと入力します。
これによって、tLoopコンポーネントから現在のループの値を取得して、各結果のページ番号を把握できます。
- [Run] (実行)タブを開き、[Run] (実行)をクリックしてジョブを実行します。