flowable 复杂条件表达式实现
时间: 2023-07-25 14:20:36 浏览: 141
在 Flowable 中,可以使用 EL 表达式、Groovy 表达式或者 JUEL 表达式来实现复杂条件表达式。其中,JUEL 表达式是默认的表达式语言。
下面是一个使用 JUEL 表达式实现复杂条件的示例:
```xml
<userTask id="task1" name="Task 1">
<extensionElements>
<activiti:taskListener event="create" class="org.activiti.engine.impl.bpmn.listener.ScriptTaskListener">
<activiti:field name="language">
<activiti:string>juel</activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[${age > 18 && gender == 'male'}]]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
```
在上面的示例中,${age > 18 && gender == 'male'} 是一个 JUEL 表达式,用于实现复杂条件。其中,age 和 gender 是变量,可以在流程实例启动时设置。如果 age 大于 18 并且 gender 等于 male,那么该 userTask 将会被执行。
除了 JUEL 表达式,还可以使用 Groovy 表达式来实现复杂条件。例如:
```xml
<userTask id="task1" name="Task 1">
<extensionElements>
<activiti:taskListener event="create" class="org.activiti.engine.impl.bpmn.listener.ScriptTaskListener">
<activiti:field name="language">
<activiti:string>groovy</activiti:string>
</activiti:field>
<activiti:field name="script">
<activiti:string><![CDATA[age > 18 && gender == 'male']]></activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
```
在上面的示例中,age 和 gender 是两个变量,可以在流程实例启动时设置。如果 age 大于 18 并且 gender 等于 male,那么该 userTask 将会被执行。
阅读全文