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