UEL 表达式

一些流程元素和表单元素支持使用采用统一表达式语言 (UEL) 编写的即时评估表达式。即时评估 UEL 表达式使用 ${} 语法。


你可以使用表达式动态读取流程变量或表单变量中的数据,并执行算术或逻辑运算。举例来说,如果某个表单包含一个变量名为 text 的文本框,则可以使用表达式 ${text} 读取在文本框中输入的值,或使用表达式 ${text == "hello"} 检查用户输入的值是否为“hello”。 算术、逻辑和关系运算符都是 UEL 表达式中经常使用的运算符。


有关如何编写 UEL 表达式的更多信息,参见 Oracle 发布的 Java EE 教程。

常用表达式

下表列出了可在流程元素和表单元素中使用的一些比较常用的表达式。

描述 表达式
获取存储在变量中的值。 ${myVariable}
获取存储在变量中的值。当变量不存在时,此表达式不会抛出错误。 ${variableContainer.getVariable('myVariable')
获取当前登录用户的用户 ID。 ${authenticatedUserId}
获取流程发起人的用户 ID。 ${initiator}
获取运行中流程的流程 ID。由于流程 ID 需要时间初始化,不要在空启动事件后直接连接含有此表达式的 HTTP 任务。 ${_processInstanceId}
检查变量值是否等于 “hello”。 ${myVariable == "hello"} or ${myVariable == 'hello'}
检查变量值是否不等于 “hello”。 ${myVariable != "hello"} or ${myVariable != 'hello'}
检查变量值是否小于 1。 ${myVariable < 1}
检查变量值是否大于 1。 ${myVariable > 1}
检查两个变量值的和是否大于 1。 ${myVariable1 + myVariable2 > 1}

注解

大于和小于运算仅支持整数。

高级表达式

下表列出了一些只能在 连接线条件HTTP 任务 中使用的高级表达式。

描述 表达式
检查变量值是否等于 “hello”。 ${var:get(myVariable) == 'hello'}
检查变量值是否等于 10。 ${var:equals(myVariable,10)}
检查变量是否小于 10。 ${var:lessThan(myVariable, 10)}
检查变量是否小于或等于 10。 ${var:lessThanOrEquals(myVariable, 10)}
检查变量值是否大于 10。 ${var:greaterThan(myVariable,10)}
检查变量值是否大于或等于 10。 ${var:greaterThanOrEquals(myVariable,10)}
检查变量值是否不等于 10。 ${var:notEquals(myVariable,10)}
获取变量值或指定的默认值。 ${var:getOrDefault(myVariable,140)}
检查变量是否存在。 ${var:exists(myVariable)}
检查变量值是否不为空。 ${var:notEmpty(myVariable)}
检查变量值是否为空。 ${var:empty(myVariable)}

注解

大于和小于运算仅支持整数。