Skip to content

计算节点

计算节点用于计算流程的中间数据,并将计算的中间数据提供给后续节点使用

1.公式计算

节点功能:使用系统已提供的函数对流程数据进行计算,并得到计算结果。类似于Excel对单元格数据进行公式计算

1.1 结果字段类型

目前公式计算节点计算结果的字段类型有三种:文本、数值、日期,如果公式返回的数据格式与字段类型不匹配,则将进行类型转换

注意

本平台存储日期的格式采用时间戳格式,即从1970年1月1号 0点0分0秒到目前为止的总毫秒数,例如:1705479051354

1.2 设置计算公式

本平台提供了丰富的函数用于公式计算,除了系统已提供的函数外,还可以使用+ - * / % ^等基本算数运算符参与计算

公式使用示例,将金额转为大写金额

2.数据转换

节点功能:将指定字段数据转换为新的数据。常用于转换json类型文本数据

2.1 转换单个json文本

转换单个json文本字段,转换后,当前节点包含单个记录

单个json文本转换模板示例

json
{
  "text": "文本内容",
  "number": 123
}

转换结果

2.2 转换多个json文本

转换单个json文本字段与转换单个json文本过程一致,区别是需要选择包含多个文本的字段

多个json文本转换模板示例

json
[{
  "text": "文本内容",
  "number": 123
}]

注意

这里最外层需要使用中括号“[]”,因为包含的是多个json文本

转换结果

3.代码块

节点功能:使用自定义代码逻辑处理数据,并获取代码处理结果

注意

此节点需要有一定js代码基础的人员使用,普通业务人员可以使用公式计算节点实现计算逻辑

3.1 输入参数(input)

设置代码的输入参数,所有的输入参数都会设置到input对象上,代码块内可以通过直接访问input对象的成员,来实现输入参数的访问。

举例

当存在输入字段key为 name 时,获取方式: input.name

注意

如果需要传递多个记录,可以使用子表字段作为参数

3.2 代码模块

使用js语言编写代码内容,并以input对象作为输入参数,代码最后需要增加return返回结果对象

注意

目前仅支持js语言,代码块内不允许引用任何代码库,已内置的可以直接使用的库的如下
cryptoMath

为了保证代码执行的安全性,单次执行的最大时间为2秒,超过此时间则认为执行失败

3.3 返回参数(return)

代码模块的最后需要使用return返回一个对象,返回参数将接受这个返回值,并按已定义的参数模板解析参数,以供后续节点使用

导入的json模板示例

json
{
  "text": "文本内容",
  "number": 123
}

解析后的返回参数示例

3.4 返回数量

可设置 返回单条数据返回多条数据,影响 代码模块 的返回对象及 返回参数 的设置。

举例

返回单条记录

代码返回数据需要以对象结构返回,例如:return {name: '张三'}
返回参数json模板,需要与代码返回的 数据结构 一致,例如:{"name": "张三"}

返回多条记录

代码返回数据需要以对象数组结构返回,例如:return [{name: '张三'}]
返回参数json模板,需要与 返回数据对象结构 一致,例如:{"name": "张三"}

两种方式大部分情况下都可以 等效转化 ,但有如下情况,必须使用 返回多条记录

返回对象是一个 二维数组

4.数据工厂

节点功能:可以对多个数据源进行横向连接追加合并,也可以对单个数据源进行分组汇总数据过滤。即:对已有数据进行加工,并返回加工后的数据

4.1 横向连接

横向连接用于连接不同数据源的字段

场景说明

客户购买记录客户退费记录是两个不同数据源,它们具有相同的字段客户姓名。当我们需要同时查看客户的购买和退费记录时,就可以使用客户姓名将两张表的数据合并为一张表


连接数据源

设置需要连接的数据源,可以选择数据节点子表字段作为数据源


连接字段

设置不同数据源的连接字段,字段值全部相同的记录,将被连接为同一个记录

注意

如果单个数据源中包含了重复的连接字段值,则仅保留第一个记录,其余记录全部舍弃

例如:手机号作为连接字段,当客户表的记录中包含了重复手机号,则仅保留重复的第一个记录


连接方式

默认全连接方式,支持以下4中连接方式

  • 全连接:保留所有数据源连接字段值的并集
  • 内连接:保留所有数据源连接字段值的交集
  • 指定全连接:保留指定数据源连接字段值的并集
  • 指定内连接:保留指定数据源连接字段值的交集

全连接示例

姓名作为连接字段

客户购买记录包含了3条记录,分别是“张三”、“李四”、“王五”;客户退款记录包含了2条记录,分别是:“王五”、“赵六”。连接结果为:“张三”、“李四”、“王五”、“赵六”

内连接示例

姓名作为连接字段

客户购买记录包含了3条记录,分别是“张三”、“李四”、“王五”;客户退款记录包含了2条记录,分别是:“王五”、“赵六”。连接结果为:“王五”

指定全连接示例

姓名作为连接字段

客户购买记录包含了3条记录,分别是“张三”、“李四”、“王五”;客户退款记录包含了2条记录,分别是:“王五”、“赵六”。指定全连接数据源为客户购买记录,连接结果为:“张三”、“李四”、“王五”

指定内连接示例

姓名作为连接字段

客户购买记录包含了3条记录,分别是“张三”、“李四”、“王五”;客户退款记录包含了2条记录,分别是:“王五”、“赵六”。指定内连接数据源为客户退款记录,连接结果为:“王五”、“赵六”


连接结果

实时显示连接结果字段,可修改字段名


横向连接示例

客户购买记录包含记录如下:

客户姓名购买金额
张三100
李四200

客户退款记录包含记录如下:

客户姓名退款金额
张三50

连接方式为全连接连接字段如下:

连接字段客户购买记录字段客户退款记录字段
客户姓名客户姓名客户姓名

连接结果如下:

客户姓名购买金额退款金额
张三10050
李四200

4.2 追加合并

追加合并用于合并不同数据源中的字段

场景说明

2022购买记录2023购买记录是两个不同数据源,它们都有相同的字段客户姓名购买金额。当我们需要查看2022~2023的购买记录时,就可以将2022购买记录2023购买记录追加合并为一张表


合并数据源

设置需要合并的数据源,可以选择数据节点子表字段作为数据源


合并字段

指定需要合并的字段,将从每个数据源中依次取出合并字段值,组合为最终的合并记录


追加合并示例

2022购买记录包含记录如下:

客户购买金额
张三100
李四200

2023购买记录包含记录如下:

姓名消费金额
王五600
赵六800

合并字段如下:

合并字段2022购买记录字段2023购买记录字段
客户姓名客户姓名
购买金额购买金额消费金额

合并结果如下:

客户姓名购买金额
张三100
李四200
王五600
赵六800

4.3 分组汇总

分组汇总用于将数据源中的多个记录,按照维度分组后对指标进行汇总计算

注意

分组汇总功能与数据统计节点功能一致

场景说明

客户购买记录包含了多个记录,每个记录都包含“商品分类”和“购买金额”字段。当需要计算每个“商品分类”下的“购买总金额”是多少时,则以“商品分类”为维度,“购买金额”为指标,进行分组汇总


汇总数据源

设置需要汇总的数据源,数据源为包含数据的单个节点


过滤条件

设置过滤条件,保留条件范围内的记录

注意

如果筛选字段包含了子表中的字段,将仅返回查询条件范围内的子表记录

例如:查询客户表成交金额大于一万的成交记录,将只返回成交金额大于一万的成交记录


分组维度

当字段作为维度使用时,会将目标数据源中的记录划分为多组子记录。维度越多或者字段值越多,则划分的粒度越细

特别说明

当使用了单选多选级选字段作为维度时,会舍弃选项id,仅保留选项值。即:单选多选级选会被转为文本

以下为特定字段类型的维度配置项

  • 汇总方式:设置日期按指定精度进行汇总
  • 显示完整路径:默认级选仅显示最后一级路径,如果需要显示完整的路径则启用此选项

汇总指标

当字段作为指标使用时,指标会在维度划分的多组子记录中分别计算对应指标的值。指标的计算结果为数值类型

注意

当使用数值字段作为指标时,可以设置指标的计算方式。以下为所有的计算方式

  • 求和:计算对应维度下,字段值之和
  • 平均值:计算对应维度下,字段值的平均值
  • 最小值:计算对应维度下,字段值的最小值
  • 最大值:计算对应维度下,字段值的最大值
  • 全部计数:计算对应维度下,全部字段值的数量
  • 去重计数:计算对应维度下,不重复的字段值的数量

当使用非数值字段作为指标时,仅可以设置为全部计数去重计数两种计算方式

注意

当选择包含多个值的字段作为指标时,会首先计算多个值的数量,然后再将这些数量相加

例如:当使用子表作为指标,并设置计算方式为全部计数,则会计算子表所有记录的数量


分组汇总示例

客户表包含记录如下:

客户客户等级购买记录/商品名购买记录/购买金额
张三B笔记本
签字笔
50.00
130.00
李四A笔记本
签字笔
180.00
80.00
王五A笔记本
签字笔
120.00
160.00

设置过滤条件为:客户等级 等于 A 并且 购买记录/购买金额 大于 100

筛选结果如下:

客户客户等级购买记录/商品名购买记录/购买金额
李四A笔记本180.00
王五A笔记本
签字笔
120.00
160.00

设置分组维度为: 购买记录/商品名
设置汇总指标为: 购买记录/购买金额

汇总结果如下:

购买记录/商品名购买记录/购买金额
笔记本300.00
签字笔160.00

4.4 数据过滤

数据过滤用于筛选出数据源中指定条件范围内的记录

场景说明

客户购买记录包含了多个记录,每个记录都包含“商品分类”和“购买金额”字段。当仅需要“生活用品”这个分类的记录时,则可以使用“商品分类 等于 生活用品”进行过滤


过滤数据源

设置需要过滤的数据源,数据源为包含数据的单个节点


过滤条件

设置过滤条件,保留条件范围内的记录

注意

如果查询字段包含了子表字段,默认将返回子表字段所有的记录。如果需要仅返回查询条件范围内的子表记录,启用选项仅返回匹配的子表记录

示例

查询客户表成交金额大于一万的成交记录,启用选项后,将只返回成交金额大于一万的成交记录


数据过滤示例

客户表包含记录如下:

客户客户等级购买记录/商品名购买记录/购买金额
张三B笔记本
签字笔
50.00
130.00
李四A笔记本
签字笔
180.00
80.00
王五A笔记本
签字笔
120.00
160.00

设置过滤条件为:客户等级 等于 A 并且 购买记录/购买金额 大于 100

不启用选项仅返回匹配的子表记录

客户客户等级购买记录/商品名购买记录/购买金额
李四A笔记本
签字笔
180.00
80.00
王五A笔记本
签字笔
120.00
160.00

启用选项仅返回匹配的子表记录

客户客户等级购买记录/商品名购买记录/购买金额
李四A笔记本180.00
王五A笔记本
签字笔
120.00
160.00