1. 概述编辑
1.1 版本说明
FineDataLink 版本 | 功能变动 |
---|---|
1.7 | 新增一种节点类型:「参数赋值」,可以将取到的数据输出为参数,被下游连线节点使用,不允许跨节点使用 |
4.1.0 |
|
4.1.1 | 当数据源为 API 时,支持获取API响应的header、body、http状态码,便于后续将其设置为参数,详情参见本文 3.1.1 节 |
4.1.3 | 1)数据来源Tab下,「数据源」中选择DB表输入类型时,新增「配置方式」设置项,「配置方式」设置项中可选择SQL、选表(本版本新增功能)、存储过程(本版本新增功能)
2)支持分页取数,详情参见:API输入-分页取数 |
4.1.5.4 | 数据来源 Tab 中,配置方式选择「选表」时,显示表备注 |
历史版本 | ||||||||||||||
|
1.2 应用场景
参数节点本质上是一种虚拟节点,不会运行数据计算任务产生数据,主要用于跨节点传参、参数管理的场景。
用户希望上游节点运行的结果,能够被下游节点使用。
希望能够基于某些节点的运行结果,实现一些条件判断的功能。
此时可以通过「参数赋值」节点用参数承载上游节点运行的结果,然后在下游节点中使用该结果。
1.3 功能简介
当数据开发的业务流程中,某个下游节点的任务需要获取多个、多级上游节点的输出参数时,可以使用参数节点,在「数据来源」中将需要赋值的数据取出,并为参数赋值,将获取到的数据输出为参数,下游节点可以利用公式使用参数值。
若参数赋值将一列数组设置为参数,后续可以使用「循环容器」依次将单个参数传入使用。
2. 使用限制编辑
用户设置的参数只归属于当前任务
3. 功能介绍编辑
3.1 参数添加、使用说明
在定时任务中新建「参数赋值」节点,可添加参数供下游节点使用。如下图所示:
3.1.1 数据来源
通过「数据来源」将需要赋值的数据取出。
支持从多种数据源中取数,支持的数据源详情参见:数据开发支持的数据源
1)「数据源」中选择DB表输入类型时,支持三种方式获取数据:写 SQL 语句、直接选表(可添加过滤条件)、调用存储过程。如下图所示:
数据来源 Tab 中,配置方式选择「选表」时,显示表描述。表描述具体说明请参见:数据同步-数据来源
2)有时候用户需要从 API 的请求头中获取token,将其设置为参数,便于后续调用API。
因此当参数赋值选择数据源为「API」时,支持获取API响应的响应头header、响应体body、状态码。如下图所示:
属性 | 类型 | 说明 |
---|---|---|
响应体处理 |
| 选择处理响应体,可以对响应体设置指定json路径或者将解析后的json数据展开为二维表 例如选择返回响应体,且解析为二维表,则得到以下解析结果: 当处理信息类型勾选了除「响应体」以外的其他类型,则无法勾选「将解析后的json数据展开为二维表」 |
解析响应头 |
| 勾选响应头时,则会解析响应头中哪些key的value 可以将当前获取响应头的key进行批量配置,也可以手动添加key |
注:如果解析响应体之外,还勾选解析响应头时,则不支持解析 JSON 数据展开为二维表,且不支持「生成数据转换」。
若同时将响应头header、响应体body、状态码勾选,则生成一个二维表,列顺序按照状态码、响应头、响应体的顺序,如下图所示:
注:原本API请求不展开为二维表时,下游算子获取到的字段为 default 的二维表(1行1列),现在将「default」改为「responseBody」。
用户即可根据解析好的数据,在后一步输出参数中设置为参数。
3.1.2 输出参数
可指定取出数据表的行列数据,将其作为参数。如下图所示:
注:参数名和参数值中不允许包含${} 。
设置项 | 说明 |
---|---|
参数名 | 同一个参数赋值节点中不支持参数名相同 |
值来源 | 支持指定取出数据表的行列数据,将其作为参数 注:「参数赋值」中单个参数输出的字段值个数限制最多不能超过10000个。如果参数的输出结果超过限制,则赋值节点运行会失败。 取出的数据表如下图所示: 设置参数值为数据表的第一列所有行,如下图所示: |
闭包符 | 4.1.0 之前版本: 数值型分隔:单个值示例:1;多个值示例:1,2,3 文本型分隔:单个值示例:'text';多个值示例:'text1','text2' 注:若输出的数据是多个值,且值不是数值时,需要将分隔符设置为文本型 4.1.0 及之后版本: 新生成参数值,闭包符默认关闭 闭包符关闭:相当于 4.1.0 之前版本选择「数值型分隔」 闭包符开启:相当于 4.1.0 之前版本选择「文本型分隔」 |
参数预览 | 设置「参数值」后,点击参数预览,即可查看参数值 注1:如果来源表为空,那么参数赋值预览后会报错。 |
调试值 | 调试值仅用于下游节点的数据预览,正式运行时不会被使用 4.1.0 之前版本,需手动填入参数默认值,为方便下游节点查看效果,建议给参数设置默认值;4.1.0 及之后版本,点击「参数预览」,预览成功后,会取前 5 个参数值自动填入默认值 |
3.1.3 参数使用
1)支持跨节点传递参数。
「参数赋值」下游分支所有的节点都可以使用输出的参数,但是不可跨分支被其他节点使用。
「参数赋值」节点执行后输出的参数值,在下次执行之前都是固定的,即传递给下游节点的参数值均为固定的,不会受下游步骤影响。
2)参数支持跨层级传递,将父任务的参数传递给子任务,详情参见:调用任务
3)上游节点参数被同一流程连线中的所有下游节点应用时:
参数赋值输出的参数,下游节点引用参数时写法如下:
值是单个字符串或单个数值:=${a}
值是多个字符串或多个数值:in (${a})
注:跟自定义参数不同,参数赋值节点的参数引用时,不一定需要加单引号,如果在「参数赋值」中定义的分隔符是正确的,那么使用时直接用${参数名}即可。
3.2 批量生成参数
点击「批量生成」按钮,可批量生成参数。
通过选择行列,生成对应参数;参数名自动生成,命名逻辑:字段名_参数(若重复则加“_参数”,直到不重复)。
3.3 批量修改参数
选中要批量修改的参数,点击「修改行值」按钮,可批量修改参数。如下图所示:
3.4 批量删除参数
选中要批量删除的参数,点击「删除」按钮,可批量删除参数。如下图所示:
4. 使用示例编辑
简介 | 文档 |
---|---|
「参数赋值」节点的简单使用示例 | 参数赋值示例 |
用户希望通过邮件/企业微信等渠道,向成员发布信息或罗列特定事务,使用「参数赋值+条件分支+消息通知」节点实现 | 使用企业微信群进行消息通知 |
定期清理 30 天前的定时任务的运行记录数据,使用「参数赋值+SQL脚本」实现 | 自动清理FineDataLink运行记录 |
若来源表有时间戳,可以使用参数赋值获取目标表时间戳最大值,再使用数据同步获取增量数据做增量更新 | 数据增量更新 |
5. 注意事项编辑
若在输出参数步骤预览失败,报错「param unable to get the specified row and column data」,说明参数输出数据为空,可忽略,任务可正常执行。