在本关联学习路径中,我们将创建一个链,演示如何利用 Handlebars 连接器解析 HTTP 响应中的数据,并将可在整个链中使用的变量模板化。
| 主要学习目标 | 车把控制功能 |
| 次要学习目标 | Workiva 链条连接器 |
| 先决条件 | 配置 车把连接器 连接。 配置 Workiva Chains 连接器 连接。 |
| 支持模板 | CLP | 车把配置 |
步骤 1:创建链
- 添加一个新的 链。
- 命名链条 CLP | 车把配置。
- 创建链式变量。请输入以下变量名和值:
- 变量名: cv-AllStations
- 变量值: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/station_information.json
- 拯救链条。
步骤 2:检索 JSON 数据
此步骤使用 HTTP 连接器从 Web 位置以 JSON 格式检索 Citibike 相关数据。
- 从 HTTP 连接器 向 开始 节点添加 GET 命令。
-
请使用以下值配置命令:
姓名 获取 - 所有站点 用户名 <leave blank> 密码 <leave blank> CA证书 <leave blank> 证书 <leave blank> 证书私钥 <leave blank> 显示回复 已核取 网址 cv-AllStations 链变量 查询字符串 <leave blank> 内容类型 application/json 回复 <leave blank> - 保存命令。
步骤 3:遍历 JSON 数据
使用 Handlebars - Render Text 模板 命令遍历 CitiBike 站点数据,以提供将每个站点的数据合并在一起的格式。
- 将 Handlebars - Render Text Template 命令添加到 Chain 画布。
- 将 GET - 所有站点 命令连接到 Handlebars - 渲染文本模板 命令。
- 双击命令即可对其进行编辑。
- 命令名称: RTT - 解析 JSON 响应。
- 添加一个 JSON 变量 并将其命名为 citibikeData。
- 对于 值 字段,请使用 获取 - 所有站点 命令中的 [] 响应 变量。
-
请在模板字段中填写以下值:
{{#each citibikeData.data.stations}} {{@index}} | {{name}} | {{capacity}} {{/each}}这将允许命令遍历 JSON 响应,使用根路径
data.stations来提供每个键的文本值:(“name”, “capacity”)。此外,它还会为处理的每一行添加一个 索引 值。
- 保存命令。
步骤 4:模板化运行时变量
使用 Handlebars - Render Text Template 命令将变量模板化。这将允许 Chain 渲染一个文本模板,该模板根据其运行时提供有关 Chain 不同组件的上下文。
- 将 Handlebars - Render Text Template 命令添加到 Chain 画布。
- 将 GET - 所有站点 命令连接到 Handlebars - 渲染文本模板 命令。
- 双击该命令进行编辑,使用以下值:
- 命令名称: RTT - 模板化变量。
- 为 变量 部分添加并填充以下信息:
值 字段将从左侧变量窗格的 运行时 下拉列表中填充。- 变量 1
- 变量名: 链式环境
- 值:<Chain.Enviroment>(运行时变量)
- 变量 2
- 变量名: 链执行时间
- 值:<Chain.ExecutionDateTime>(运行时变量)
- 变量 3
- 变量名: 系统运行时月份
- 值:<System.DateTime>(运行时变量)
- 单击 <System.DateTime> 运行时变量以转换该变量。
- 在 选择转换上,选择 解析日期/时间,然后单击“+”。
- 在第一个值字段中,选择“ISO扩展(平台标准)”。
- 在 输出日期格式 字段中,输入“%m”。
- 在 输入日期时区字段中,选择“UTC (Etc/UTC)”。
- 在 输出日期时区字段中,选择“UTC (Etc/UTC)”。
- 点击 接受。
- 变量 4
- 变量名: 系统运行时年
- 值: <System.DateTime>(运行时变量)
- 单击 <System.DateTime> 运行时变量以转换该变量
- 在 选择转换中,选择 解析日期/时间,然后单击“+”。
- 在第一个值字段中,选择“ISO扩展(平台标准)”。
- 在 输出日期格式字段中,输入“%Y”。
- 在 输入日期时区字段中,选择“UTC (Etc/UTC)”。
- 在 输出日期时区字段中,选择“UTC (Etc/UTC)”。
- 点击 接受。
- 变量 1
- 请在模板字段中填写以下值:
- 链环境: {{Chain-Env}}
- 链执行日期: {{Chain-Exec-Time}}
- 系统运行时月份-年份: {{System-RunTime-Month}}-{{System-RunTime-Year}}
- 保存命令。
步骤 5:模板化工作区变量 - 获取工作区
使用 Handlebars - Render Text Template 对工作区组件进行模板化。这将允许 Chain 渲染一个文本模板,该模板提供来自 Chain 所在工作区不同组件的上下文。
- 将 Workiva Chains 连接器中的 获取工作区 命令添加到 Chain 画布。
- 将 GET - 所有工作站 命令连接到 获取工作区 命令。
- 双击命令进行编辑,并确认连接是否正确。
- 保存命令。
步骤 6:模板化工作区变量 - RTT - 工作区 ID
- 将 Handlebars - Render Text Template 命令添加到 Chain 画布。
- 将 获取工作区 命令连接到 Handlebars - 渲染文本模板 命令。
- 双击命令即可对其进行编辑。
- 命名命令 RTT - 工作区 ID。
-
在 模板 字段中输入以下值:
{{#each workspaces}} {{#if (equal name "<(chain.workspace)>") }} {{id}}{{/if}{/each}}
- 选择 <Chain.Workspace>左侧面板运行时变量部分中的 变量
- 在 JSON 变量 字段中,输入以下信息:
- 变量名: workspaces
- 变量值:<工作区>
- 从左侧的变量面板中展开 获取工作区 变量,然后选择 工作区。
- 保存命令。
步骤 7:模板化工作区变量 - 获取环境
- 将 Workiva Chains 连接器中的 获取环境 命令添加到 Chain 画布。
- 将 RTT - WorkspaceID 命令连接到 Get Environments 命令。
- 双击命令进行编辑,并在工作区 ID 字段中输入来自 RTT-WorkspaceID 命令的 Rendered Text 变量。
- 保存命令。
步骤 8:模板化工作区变量 - RTT - 环境 ID
- 将 Handlebars - Render Text Template 命令添加到 Chain 画布。
- 将 获取环境 命令连接到 Handlebars - 渲染文本模板 命令。
-
双击此命令进行编辑,使用以下值:
- 命令名称: RTT - 环境 ID。
-
在 模板 字段中输入以下值:
{{#each environments}} {{#if (equal name "<(chain.environment)>") }} {{id}}{{/if}{/each}}这
<Chain.Environment>是一个 运行时 变量,可以在左侧面板中找到。 - 在 JSON 变量 字段中,输入以下信息:
- 变量名: 环境
- 变量值: <环境>
此值位于左侧变量面板的 获取环境 命令 下。
- 保存命令。
步骤 9:测试练习
- 发布 链。
- 单击 执行,然后选择 运行链。
- 链运行完成后:
点击已执行的 RTT - 解析 JSON 响应命令 确认所有节点均已成功执行,并验证输出的前几行是否如下所示: -
单击已执行的 RTT - 模板化变量 命令,并在“日志”选项卡中验证渲染的文本是否准确。
注: 这些值会根据链运行的环境和时间而变化。
- 单击 RTT - 环境 ID 节点,然后选择 输出 选项卡。
- 确认渲染文本变量已填充值(同样,此结果会因您的环境而异)。
了解更多
要了解有关使用 Chains 进行数据转换的更多信息,请查看 连接学习路径 - 转换简介