Skip to content

流程表达式

Flowable 使用 UEL(Unified Expression Language)表达式来实现动态逻辑,可用于条件分支、审批人分配、变量计算等场景。

1. 流程表达式基础

UEL 语法

${表达式}

表达式可以引用:

  • 流程变量${day > 3}(day 是流程变量)
  • Spring Bean${myService.calculate()}
  • 流程上下文${execution.processInstanceId}

常见用法

场景表达式示例
条件分支${day > 3}
审批人分配${bpmTaskAssignStartUserExpression.calculateUsers(execution)}
变量计算${amount * 0.1}

2. 内置表达式

RuoYi Office 内置了常用的流程表达式 Bean:

2.1 分配给发起人

${bpmTaskAssignStartUserExpression.calculateUsers(execution)}

将任务分配给流程发起人。适用于"确认"类节点。

2.2 分配给指定级别 Leader

${bpmTaskAssignLeaderExpression.calculateUsers(execution, 1)}

参数说明:

  • 第二个参数为 Leader 级别(1 = 直接上级,2 = 上上级,依此类推)

3. 自定义表达式

可以创建自己的表达式 Bean:

java
@Component("myExpression")
public class MyExpression {
    public Set<Long> calculateUsers(DelegateExecution execution) {
        // 自定义逻辑
        return Set.of(1L, 2L);
    }
}

使用方式:${myExpression.calculateUsers(execution)}

4. 流程表达式模板

RuoYi Office 提供了流程表达式模板管理功能。

4.1 使用场景

将常用表达式保存为模板,在流程设计时直接选择。

4.2 表结构

表达式模板存储在 bpm_process_expression 表:

字段类型说明
idbigint编号
namevarchar(100)名称
statustinyint状态
expressionvarchar(1000)表达式内容

4.3 管理界面

在「流程中心 → 流程表达式」页面管理表达式模板。