flowable6.5 自定义所有FlowElement的leave事件
时间: 2023-08-25 08:21:34 浏览: 179
flowable6.5中文操作手册.zip
在Flowable中,每个FlowElement(例如Task、Gateway、Event等)都有一个与之相关联的Listener。你可以通过实现Flowable的Java接口来创建自定义的Listener,并将其添加到流程中。
要自定义所有FlowElement的leave事件,请执行以下步骤:
1. 创建一个Java类,并实现Flowable的`ExecutionListener`接口。例如:
```java
public class CustomExecutionListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
String eventName = execution.getEventName();
String elementId = execution.getCurrentActivityId();
System.out.println("Element " + elementId + " left with event " + eventName);
}
}
```
2. 在BPMN 2.0文件中,将该Listener添加到流程中的所有FlowElement。例如:
```xml
<process id="myProcess" name="My process">
<startEvent id="startEvent">
<extensionElements>
<flowable:executionListener event="end" class="com.example.CustomExecutionListener" />
</extensionElements>
</startEvent>
<userTask id="userTask">
<extensionElements>
<flowable:executionListener event="start" class="com.example.CustomExecutionListener" />
<flowable:executionListener event="end" class="com.example.CustomExecutionListener" />
</extensionElements>
</userTask>
...
</process>
```
在这个示例中,我们将`CustomExecutionListener`添加到了`startEvent`和`userTask`中的所有事件(start和end)中。执行流程时,每次离开一个FlowElement时,都会触发这个Listener,并打印一条消息。
注意,要在BPMN 2.0文件中使用Flowable的扩展元素,你需要在文件的开头添加命名空间声明:
```xml
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flowable="http://flowable.org/bpmn"
targetNamespace="http://activiti.org/bpmn">
...
</definitions>
```
阅读全文