有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能介绍

表达式可以通过一些简单的语法(例如:单行语法)来实现动态的数据计算以及各类规则的判断,并且表达式引擎内部预先支持了各类的常见函数,例如:日期与时间函数、数学函数、文本函数等。

使用场景

数据模型

计算公式

假设已有如下数据模型:

现在想在表格中显示姓名以及总价两个字段,分别是用姓氏+名字单价*数量计算而来:

我们可以利用计算公式类型字段来实现
姓名字段设置如下:



确定后在表达式编辑器编辑:
#lastname + #firstname
总价字段设置如下:



确定后在表达式编辑器编辑:
#amount * #price
说明:
表达式需要返回字段设置中结果类型相同的数据类型,例如:文本/数字/日期时间。

事件处理

数据模型 > 事件处理能设置数据模型事件(新增、删除和更新等)触发工作流,同时也支持设置执行前条件来判断在何种情况下才需要触发工作流。例如下图表示当单价 * 数量 > 10000才触发工作流:

编辑器内设置:
(#amount * #pric) > 10000
说明:
执行前条件需要表达式返回布尔值 Boolean 类型数据。

工作流

属性配置

假设已有开始节点配置了输入变量的工作流。

如果想在审批节点中设定审批人为该输入变量中的某字段,将审批节点任务接收人类型选为表达式。

在表达式编辑器页面,从右侧参数列表可以选择流程中的变量,从右侧函数列表对变量进行函数公式处理。



表达式元素

具体可参见 高级活动-表达式

基础语法

目前表达式仅支持单行表达式,可以进行数值、逻辑、变量提取、函数调用及混合调用。
说明:
表达式在语法校验及执行时会判断操作对象的类型,例如:大于号(>)会判断左右操作类型是否为布尔类型,如果不为布尔类型会提示类型错误。

支持的语法

大类
小类
运算符
示例
优先级
变更优先级
()
(1 + 2) * 3
数值计算
取负
-
-1
乘法
*
2 * 3
-
除法
/
1 / 2
-
取模
%
23 % 2
-
加法
+
1 + 2
-
减法
-
1 - 2
-
逻辑运算
大于
>
1 > 2
大于等于
>=
1 >= 2
-
小于
<
3 < 99
-
小于等于
<=
1 <= -1
-
等于
==
1 == 1
-
不等于
!=
1 != 2
-
!
!(2 > 1)
-
&&
(2 > 1) && (3 < 8)
-
||
(2 > 1) || (3 < 8)
-
文本运算
文本拼接
+
'hello ' + 'world'
变量取值
基本变量取值
#
#date
变量属性取值
#
#Person.age
-
函数调用
内置函数调用
FuncName(params)
Length('abc')
混合调用
-
-
If(7 < Length('abc'), 'abc', '321')

支持的变量类型

类型
说明
数字类型
数值运算,函数调用会使用到的类型。
文本类型
文本运算,函数调用会使用到的类型。
布尔类型
逻辑运算,函数调用会使用到的类型。
日期时间类型
函数调用会使用到的类型。
对象类型
变量取值,函数调用会使用到的类型。
数组类型
函数调用会使用到的类型。

函数列表

时间日期

计算

文本

逻辑

集合函数