工作流节点 —— 运算节点
节点功能: 通过此节点计算得出新的结果供后续节点使用,节点本身不会直接修改字段的值。
与工作表中公式控件不同之处:
运算节点可以进行跨表跨记录的计算,参与计算的字段可以是不同记录中的字段值,工作表公式控件只能计算本表内的字段。
运算节点是编辑字段保存后通过工作流执行计算的,公式控件是编辑字段时直接计算得出结果,时效性不同。
支持的运算类型:
- 数值、金额间的数学计算
- 计算两个日期间的时长
- 为日期增加或减少时长,得到新的日期
- 通过函数处理数据
计算结果的保存方式:
直接计算
执行到运算节点时直接计算并保存结果,供后续节点使用。即使参与计算的字段值有变化,运算结果也不再变。
动态计算
执行到运算节点时先不计算,当执行到使用了运算结果的节点时再实时计算,如果参与计算的值有变化,不同节点得到的结果可能不同。
一、数值、金额间的运算
数值、金额间通过运算节点计算,通常用于不同记录的字段之间的计算,例如新增一个排号单时,查询下当前最大的单号,最大号+1,更新到新单即可。
配置方法
1、添加运算节点,选择数值运算
2、选择参与计算的字段
可以从运算节点前面的节点记录中选择数值/金额字段进行计算。
也可以直接和常量进行计算。
3、设置公式
可以直接使用+、-、*、/、( ) 等符号进行运算,也可以使用系统公司进行计算。例如,计算最新号码,以下两种公式都可以。
自定义公式
系统公式
Tips
- 小数点默认保留2位(四舍五入)
- 使用系统公式时,括号里面字段之间用逗号“,”隔开,自己编写公式时,必须填写运算符号(+_*/)
- 参与计算的字段如果已删除、则计算结果为空
4、字段为空时按0处理
在自定义公式时,如数值1字段+ 数值2字段+ 数值3字段, 其中有一个字段为空,则计算结果为空。如果勾选了按0处理,则能保证正常的计算。
如果作为分母的字段为空时,计算结果始终为空。
5、后面的节点使用运算结果
后面的节点需要用到运算节点,直接引用此节点即可。
如果计算结果可能为空,可以根据计算结果设计分支流程。
二、为指定日期增减一个时长
A:选择一个日期字段,针对这个字段的日期进行加减。
B:设置日期参与运算的格式: 日期格式,日期+时间格式。
日期格式计算:例如,传入的日期是2021-11-11 12:50,参与计算的内容是2021-11-11。
日期+时间格式,那么参与计算的格式是 2021-11-11 12:50
C: 运算公式,如图配置, 运算结果是直接为日期增加9小时
D: 输出格式,计算后可根据选择格式输出计算结果
Tips:
公式第一个必须是计算符号(+/-)
Y/M/d 分别代表年/月/天 ,h 代表小时,m代表分钟。 其中M和m区分大小写。
数字前面一定要有计算符号(+/-),数字后面一定要有单位(Y/M/d/h/m) 例如:+8h+1m
数值字段的后面必须跟单位(Y/M/d/h/m)
选择其他节点的数值字段后,直接写日期单位,中间不加任何符号。例如
示例1: 运算格式为日期
传入的日期:2020-10-12 13:50
运算格式:日期,
运算公式:+7d+3h-2m
参与运算的日期为 2020-10-12 00:00, 增加7天、3小时,减去2分钟。
运算结果是:2020-10-19 02:48
示例2:运算格式为日期+时间
传入的日期:2020-10-12 13:50
运算格式:日期+时间
运算公式:+3h
运算结果:2020-10-12 16:50
示例3:获取当天的8点整
如下图,传入系统当前时间,执行到当前节点时是2020-12-21 14:37。 运算的格式为:日期, 参与运算的日期就是2020-12-21 00:00, 运算的公式为+8h,即增加8小时,得到2020-12-21 08:00
三、计算两个日期的时长
和公式控件计算日期间的时长是相同方法,先指定开始日期和结束日期对应的字段,然后设定两个日期间参与计算的格式。
格式1: 开始日期0:00,结束日期24:00
格式2: 开始日期0:00,结束日期00:00
参与日期计算的字段可能是日期格式,没有时间部分,格式化为其补上时间,如果字段包含时间部分,则按实际时间参与计算。
示例1
开始时间2020-12-13 ,结束时间2020-12-14 ,输入出单位:天
如果选择格式1,开始时间按2020-12-13 00:00 计算,结束时间按2020-12-14 24:00计算,得到结果是2天。
如果选择格式2,开始时间按2020-12-13 00:00 计算,结束时间按2020-12-14 00:00计算,得到结果是1天。
示例2
开始时间2020-12-13,结束时间2020-12-14 12:00, 输出单位:小时。
因为结束时间有时间部分,按实际时间计算,格式1和格式2的计算结果是一致的。
开始时间按 2020-12-13 00:00计算,结束时间按依旧按2020-12-14 12:00的时长,得到结果是36小时。
四、函数计算
通过函数,可以对文本、数值、日期等流程节点对象的值进行处理,然后输出指定格式的结果。如:
- 利用YEAR()函数,获取日期的年份
- 利用REPLACE()函数,将手机号中的+86去掉
- 利用DISTANCE()函数,计算两个定位字段间的距离。
示例:例用函数运算节点,将手机号的+86去掉。
配置示例
1、添加运算节点-函数计算方式
2、编辑函数的计算公式
函数的使用介绍,请参考
3、选择运算结果的输出类型
4、后续节点使用运算结果
如下图,通过动态节点中选择此节点的结果。其中[文本]是前面选择的输出内容的类型。
TIPS
1、除了使用函数,计算公式也支持自定义的运算规则,如直接拼接两个字段,可使用'+',当使用自定义运算规则时,参与计算的字段如果已删除、字段值为空,则计算结果为空, 这时请使用预置函数计算,为空的字段默认按0计算。
2、如果计算结果不能按照选择的输出类型转化,则计算结果为空值, 如果1+1的计算结果是2,但是选择输出日期类型,则输出为空。
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧