详情请参见:官方文档
Activiti 使用 UEL 来进行表达式的解析。UEL 代表统一表达式语言,是EE6规范的一部分。
表达式可以用于以下:

  • Java Service tasks
  • Execution Listeners
  • Task Listeners
  • Conditional sequence flows

表达式存在两种类型:值表达式和方法表达式,具体如下:

值表达式:

解析值。默认情况下,不仅可以任意调用所有的流程变量,如果在使用Spring的前提下,还可以在表达式中任意调用所有的bean,例子如下:

  • 调用流程变量 : ${value}
  • 调用Spring 中的bean : ${bean.property}

    方法表达式

    调用有参或者无参的方法来进行表达式的结果判断。注意:当调用无参的方法的时候,一定要在方法名字之后添加空的括号,用来区分无参方法表达式和值表达式。 传递的参数可以是字面值或者自己解析的表达式,例子如下:
    1. ${printer.print()}
    2. ${myBean.addNewOrder('orderName')}
    3. ${myBean.doSomething(myVar, execution)}
    这些表达式支持解析基本数据类型、bean、List、数组 以及 Map。
    除了所有的流程变量之外,下面是一些可以在表达式中使用的默认对象:
    execution :DelegateExecution 保存着正在执行的额外信息。
    task : DelegateTask 保存着当前任务的额外信息。只作用在 task Listeners 的表达式运算当中。
    authenticatedUserId : 当前被授权的用户的Id,如果没有被授权的用户,则变量不可用。