この接続学習パスでは、Handlebars Connector を活用して HTTP レスポンスからデータを解析し、チェーン全体で使用できる変数をテンプレート化する方法を説明するチェーンを作成します。
| プライマリ学習目標 | ハンドルバーコマンド機能 |
| セカンダリ学習目標 | Workiva チェーン コネクター |
| 前提条件 |
Handlebars Connector 接続を構成します。 Workiva Chains Connector 接続を構成します。 |
| サポートテンプレート | CLP|ハンドルバー構成 |
ステップ1:チェーンの作成
- 新規チェーンの追加.
- チェーンの名称CLP | Handlebars Configuration.
- チェーン変数を作成します。変数名称と値に次の値を入力します:
- 変数名称: cv-AllStations
- 変数値: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/station_information.json
- チェーンを保存します。
ステップ2:JSONデータの取得
このステップではHTTPコネクターを使用して、WebロケーションからCitibike関連データをJSON形式で取得します。
- HTTP コネクタ からStart ノードにGET コマンドを追加します。
-
次の値を使用してコマンドを構成します:
名称 GET - 全ステーション ユーザー名称 <leave> パスワード <leave> CA証明書 <leave> 証明書 <leave> 証明書秘密キー <leave> 表示レスポンス チェック済み URL cv-AllStations チェーン変数 クエリ文字列 <leave> コンテンツタイプ application/json 応答 <leave> - コマンドを保存する。
ステップ 3: JSONデータの繰り返し処理
Handlebars - Render Text template コマンドを使用して、CitiBike ステーションデータを反復処理し、個々のステーションデータを結合した書式設定を提供します。
- Handlebars - Render Text Template CommandをChainキャンバスに追加します。
- GET - All Stations CommandをHandlebars - Render Text Template Commandに接続します。
- コマンドをダブルクリックして編集します。
- コマンドの名称:RTT - JSON レスポンスの解析.
- JSON Variable を追加し、名称をcitibikeData とします。
- 値 フィールドには、Get - All Stations コマンドのResponse 変数を使用します。
-
テンプレート・フィールドに以下の値を記入してください:
{{#each citibikeData.data.stations}} {{@index}} |{{name}} |{{capacity}} {{/each}}これにより、コマンドは、
data.stationsのルートパスを使用して、各キーのテキスト値を提供しながら、JSON レスポンスを繰り返し処理できるようになります: ("name", "capacity")。さらに、処理された各行に対してインデックス 値が追加されます。
- コマンドを保存する。
ステップ4:ランタイム変数のテンプレート化
変数をテンプレート化するには、Handlebars - Render Text Template コマンドを使用します。これにより、チェーンは、実行時間に基づいて、チェーンのさまざまなコンポーネントにコンテキストを提供するテキスト・テンプレートをレンダリングできるようになります。
- Handlebars - Render Text Template CommandをChainキャンバスに追加します。
- GET - All Stations CommandをHandlebars - Render Text Template Commandに接続します。
- コマンドをダブルクリックして、以下を使用して編集します:
- コマンドの名称:RTT - Templatizing Variables.
-
variables セクションに以下の情報を追加し、母集団を作成します:
Value フィールドは、左側の変数ペインのRuntime ドロップダウンから入力されます。- 変数 1
- 変数名称チェーン-エンブ
- 値:<Chain.Enviroment>(ランタイム変数)
- 変数 2
- 変数名称チェーンエグゼック時間
- 値:<Chain.ExecutionDateTime>(ランタイム変数)
- 変数 3
- 変数名称:System-RunTime-Month
- 値:<System.DateTime> (ランタイム変数)
- <System.DateTime> ランタイム変数をクリックして変数を変換します。
- Transformation を選択し、Parse Date/Time を選択し、"+" をクリックします。
- 最初の値フィールドで、「ISO Extended (Platform Standard)」を選択します。
- 出力日付書式設定 フィールドに "%m" と入力します。
- 入力日付タイムゾーン・フィールド で、"UTC (Etc/UTC)" を選択します。
- Output date timezone フィールド で、"UTC (Etc/UTC)" を選択します。
- [承認]をクリックします。
- 変数4
- 変数名称: System-RunTime-Year
- 値: <System.DateTime> (実行時変数)。
- <System.DateTime> 実行時変数をクリックして変数をトランスフォーメーション
- Transformation を選択し、Parse Date/Time を選択し、"+" をクリックします。
- 最初の値フィールドで、「ISO Extended (Platform Standard)」を選択します。
- 出力日付書式設定フィールド では、"%Y" を入力します。
- 入力日付タイムゾーン・フィールド で、"UTC (Etc/UTC)" を選択します。
- Output date timezone フィールド で、"UTC (Etc/UTC)" を選択します。
- [承認]をクリックします。
- 変数 1
- テンプレート・フィールドに以下の値を塗りつぶします:
- チェーン環境: {{Chain-Env}}
- チェーン実行日: {{Chain-Exec-Time}}
- System Runtime Month-year: {{System-RunTime-Month}}-{System-RunTime-Year}}
- コマンドを保存する。
ステップ 5: ワークスペース変数のテンプレート化 - ワークスペースの取得
Handlebars - Render Text Template を使用して、ワークスペースのコンポーネントをテンプレート化します。これにより、チェーンが配置されているワークスペースのさまざまなコンポーネントのコンテキストを提供するテキスト テンプレートがレンダリングされます。
- Workiva Chains コネクターのGet Workspaces コマンドを Chain キャンバスに追加します。
- GET - All Stations Command をGet Workspaces Command に接続します。
- コマンドをダブルクリックして編集し、接続が正しいことを確認します。
- コマンドを保存する。
ステップ6:ワークスペース変数のテンプレート化 - RTT - WorkspaceID
- Handlebars - Render Text Template Command をチェーン・キャンバスに追加します。
- Get Workspaces Command をHandlebars - Render Text Template Command に接続します。
- コマンドをダブルクリックして編集します。
- コマンドの名称RTT - WorkspaceID.
-
テンプレート フィールドに以下の値を入力します:
{{#each ワークスペース}} {{#if (等しい名称 "<(chain.workspace)>")}} {{id}}{{/if}}{{/each}}
- 左パネルのランタイム変数セクションから<Chain.Workspace> 変数を選択
-
JSON変数 フィールドに、以下の情報を入力します:
- 変数名称: ワークスペース
- 変数値: :<ワークスペース>。
- 左側の変数パネルからGet Workspaces 変数を展開し、Workspaces を選択します。
- コマンドを保存する。
ステップ7:ワークスペース変数のテンプレート化 - 環境の取得
- Workiva Chains Connector からGet Environments Command を Chain キャンバスに追加します。
- RTT - WorkspaceID コマンドをGet Environments コマンドに接続します。
- コマンドをダブルクリックして編集し、ワークスペース ID フィールドにRTT-WorkspaceID コマンドのRendered Text 変数を入力します。
- コマンドを保存する。
ステップ8:ワークスペース変数のテンプレート化 - RTT - EnvironmentID
- Handlebars - Render Text Template Command をチェーン・キャンバスに追加します。
- Get Environments Command をHandlebars - Render Text Template Command に接続します。
-
このコマンドをダブルクリックして、以下を使用して編集します:
- Commmand の名称:RTT - EnvironmentID.
-
テンプレート フィールドに以下の値を入力します:
{{#each environments}} {{#if (equal name "<(chain.environment)>")}} {{id}}{{/if}}{{/each}}<Chain.Environment>はRuntime 変数で、左側のパネルで検索できます。 -
JSON variables フィールドに、以下の情報を入力します:
- 変数名称: environments
- 変数値: <Environments>
この値は、Get Environments コマンドの下の左の変数パネルで検索できます。
- コマンドを保存する。
ステップ9:エクササイズのテスト
- チェーンを更新します。
- Execute をクリックして、Run Chain を選択します。
-
実行されたRTT - Parsing JSON Response Command をクリックして、すべてのノードが正常に実行されたことを確認し、出力の最初の数行が以下のようになっていることを確認します: -
実行されたRTT - Templatizing Variables コマンドをクリックし、"Logs "タブ内でレンダリングされたテキストが正確であることを確認します。
メモ: これらの値は、チェーンが実行される環境と実行時の両方によって変更されます。
- RTT - Environment ID ノードをクリックし、Outputs タブを選択します。
- レンダリングされたテキスト変数に値が入力されたことを確認します (この結果も環境によって異なります)。
詳細はこちら
チェーンを使ったデータ変換について詳細はこちら(Connected Learning Paths - Transformation Introduction)をご覧ください。