Flowable API 表达式
Flowable使用UEL进行表达式解析。UEL代表Unitied Expression Language,是EE6规范的一部分。
表达式可以用于Java服务任务(Java ServiceTask)、执行监听器(Execution Listener)、任务监听器(Task Listener)与条件顺序流(Conditional sequence flow)等。尽管有值表达式与方法表达式这两种不同的表达式,Flowable通过抽象,使它们都可以在需要表达式的地方使用。
- 值表达式Value expression:解析为一个值。默认情况下,所有流程变量都可以使用。(若使用Spring)所有的Spring Bean也可以用在表达式里。例如:
${myVar}
${myBean.myProperty}
- 方法表达式Method expression:调用一个方法,可以带或不带参数。当调用不带参数的方法时,要确保在方法名后添加空括号(以避免与值表达式混淆)。传递的参数可以是字面值(literal value),也可以是表达式,它们会被自动解析。例如:
${printer.print()}
${myBean.addNewOrder('orderName')}
${myBean}
请注意,表达式支持解析(及比较)原始类型(primitive)、bean、array与map。
Note that these expressions resolving primitives (including comparing them), beans, lists, arrays and maps.
除了所有流程变量外,还有一些默认对象可在表达式中使用:
- expression: DelegateExecution +,持有正在运行的执行的额外信息。
- task:DelegateTask持有当前任务的额外信息。请注意:只在任务监听器的表达式中可用。
- authenticatedUserId:当前验证的用户id。如果没有已验证的用户,该变量不可用。