工作流节点 —— 运算节点


节点功能

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

支持的运算方式:

  • 数值、金额间的计算,得到新的数值。
  • 两个日期间的计算,得到时长
  • 为日期增加或减少时长,得到新的日期
  • 统计“批量数据节点”的数据总条数

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

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

  • 运算节点是编辑字段保存后执行计算的,公式控件是编辑字段时直接计算得出结果。

一、数值、金额间的运算

数值、金额间通过运算节点计算,通常用于不同记录的字段之间的计算,例如产品入库时,需要更新产品的库存,最新的库存量就是入库量(入库明细表记录)和已有库存量(库存表)之和。

配置方法

1、添加运算节点,选择数值运算

image.png

2、设置计算公式

将参与计算的字段选择到填写框即可。

image.png

Tips

  • 小数点默认保留2位(四舍五入)

  • 数值/金额字段如果值是空的,则按照0来计算

  • 使用系统公式时,括号里面字段之间用逗号“,”隔开,自己编写公式时,必须填写运算符合(+_*/)

  • 添加公式支持搜索公式功能,当输入字母时会检测对应的公式字母,显示搜索结果

  • 字段不存在或已删除、字段值为空,可以进行运算,如果出现异常,按照流程失败来处理,如:除法5/0

3、后面的节点使用运算结果

后面的节点需要用到运算节点,直接引用此节点即可。

二、为指定日期增减一个时长

image.png

  • A:选择一个日期字段,针对这个字段的日期进行加减。

  • B:设置日期参与运算的格式: 日期格式,日期+时间格式。

    • 日期格式计算:例如,传入的日期是2021-11-11 12:50,参与计算的内容是2021-11-11。

    • 日期+时间格式,那么参与计算的格式是 2021-11-11 12:50

  • C: 运算公式,如图配置, 运算结果是直接为日期增加9小时

Tips:

  • 公式第一个必须是计算符号(+/-)

  • Y/M/d 分别代表年/月/天 ,h 代表小时,m代表分钟。 其中M和m区分大小写。

  • 数字前面一定要有计算符号(+/-),数字后面一定要有单位(Y/M/d/h/m) 例如:+8h+1m

  • 数值字段的后面必须跟单位(Y/M/d/h/m)

  • 选择其他节点的数值字段后,直接写日期单位,中间不加任何符号。例如

    image.png

示例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

三、计算两个日期的时长

image.png

和公式控件计算日期间的时长是相同方法,先指定开始日期和结束日期对应的字段,然后设定两个日期间参与计算的格式。

  • 格式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,则实际运算时为2020-12-13 00:00 和 2020-12-14 12:00的时长,得到结果是36小时。

  • 如果选择格式2,则实际运算时为 2020-12-13 00:00 和 2020-12-14 12:00的时长,得到结果是依然是36小时。

示例3

开始时间2020-12-13 12:00,结束时间2020-12-14, 输出单位:小时

  • 如果选择格式1,则实际运算时为2020-12-13 12:00 和 2020-12-14 00:00的时长,得到结果是24小时。

  • 如果选择格式2,则实际运算时为 2020-12-13 12:00 和 2020-12-14 24:00的时长,得到结果是36小时。

四、统计“批量数据节点”的数据总条数

由于汇总字段统计时有延迟性,通过汇总字段来获取关联记录的行数可能不太准确。那么可以使用这个运算能力,来获取关联记录的行数。

1、先用“获取批量数据”节点获取到符合条件的数据。

2、在通过此节点获取到数据行数

有时,可能需要根据行数进行不同的分支,则可以节点分支节点。

五、运算节点的注意事项

  • 1、运算节点本身并不修改字段的值,仅仅是得到一个新的值。

  • 2、运算节点只有在被后面的节点使用时才会进行实时运算。例如此案例中,如果没有更新节点使用运算结果的值,那么运算节点是不会执行的。

  • 3、结合第2点,两个节点使用同一个运算节点时,获取到的结果不一定是相同的。如下图,前后两个通知节点都是通知的运算结果。第一个通知节点执行时,运算结果是5+10=15。执行后,特意更新了库存的数25,第二个通知节点在使用运算结果时,实时运算为5+25=30。

  • 4、结合第3点,如果您想保存某个时刻的运算结果,可以结合流程参数,将运算结果赋值给流程参数,后面的节点使用流程参数的值即可。

results matching ""

    No results matching ""