跳到主要内容

工作流节点 —— 运算节点


节点功能: 通过此节点计算得出新的结果供后续节点使用,节点本身不会直接修改字段的值。

与工作表中公式控件不同之处:

  • 运算节点可以进行跨表跨记录的计算,参与计算的字段可以是不同记录中的字段值,工作表公式控件只能计算本表内的字段。

  • 运算节点是编辑字段保存后通过工作流执行计算的,公式控件是编辑字段时直接计算得出结果,时效性不同。

支持的运算类型:

  • 数值、金额间的数学计算
  • 计算两个日期间的时长
  • 为日期增加或减少时长,得到新的日期
  • 通过函数处理数据

计算结果的保存方式:

  • 直接计算

    执行到运算节点时直接计算并保存结果,供后续节点使用。即使参与计算的字段值有变化,运算结果也不再变。

  • 动态计算

    执行到运算节点时先不计算,当执行到使用了运算结果的节点时再实时计算,如果参与计算的值有变化,不同节点得到的结果可能不同。

一、数值、金额间的运算

数值、金额间通过运算节点计算,通常用于不同记录的字段之间的计算,例如新增一个排号单时,查询下当前最大的单号,最大号+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,但是选择输出日期类型,则输出为空。


文档问题反馈

文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧