1. 概述
1.1 版本说明
FineDataLink 版本 | 功能变动 |
---|---|
1.7 | 新增一种节点类型:「参数赋值」,可以将取到的数据输出为参数,被下游连线节点使用,不允许跨节点使用 |
4.1.6.1 | 参数赋值批量操作「选择行/列」相关文案优化,详情参见本文 3.2 3.3 3.4 节 |
4.1.7.3 | 数据源选择 API后,「高级配置」中支持指定响应数据字符编码方式,与数据同步-API一致 |
历史版本 | ||||||||||||||||||||||
|
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数据展开为二维表 例如选择返回响应体,且解析为二维表,则得到以下解析结果: 当处理信息类型勾选了除「响应体」以外的其他类型,则无法勾选「将解析后的json数据展开为二维表」 |
解析响应头 | key | 勾选响应头时,则会解析响应头中哪些key的value 可以将当前获取响应头的key进行批量配置,也可以手动添加key |
注:如果解析响应体之外,还勾选解析响应头时,则不支持解析 JSON 数据展开为二维表,且不支持「生成数据转换」。
若同时将响应头header、响应体body、状态码勾选,则生成一个二维表,列顺序按照状态码、响应头、响应体的顺序,如下图所示:
注:原本API请求不展开为二维表时,下游算子获取到的字段为 default 的二维表(1行1列),现在将「default」改为「responseBody」。
用户即可根据解析好的数据,在后一步输出参数中设置为参数。
3.1.2 输出参数
可指定取出数据表的行列数据,将其作为参数。如下图所示:
注:参数名和参数值中不允许包含${} 。
设置项 | 说明 |
---|---|
参数名 | 同一个参数赋值节点中不支持参数名相同 |
值来源 | 支持指定取出数据表的行列数据,将其作为参数 注:「参数赋值」中,单个参数的输出值个数最多为 10000。如果超过此限制,赋值节点将运行失败。在 4.1.10.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」,说明参数输出数据为空,可忽略,任务可正常执行。