FlowAble监听的两个监听taskListener 和 executionListener
注意如果想要让flowable或activiti能获取到service 那么最好在调用的service 用 Component 注解 并指定名称
例如:@Component("sequenceFlowListener")
1、TaskListener 主要是监听usertask的情况,监听事件event有4种:
create 创建
assignment 分配人
complete 完成
delete 删除
代码:
@Service
public class CountersignTaskListener implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa");
System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa");
}
}
xml:
<userTask id="USERTASK" name="USERTASK" >
<extensionElements>
<activiti:taskListener event="create" delegateExpression="${sequenceFlowListener}"/>
</extensionElements>
</userTask>
2、ExecutionListener 主要是监听 sequenceFlow的监听器,监听事件有3种
start 开始
take 启用
end 结束
代码如下;
@Component("sequenceFlowListener")
public class SequenceFlowListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
System.out.println("aaaaaaaaaaaaaa");
execution.setVariable("审批人","111");
System.out.println("aaaaaaaaaaaaaa");
}
}
xml:
<sequenceFlow id="sequenceFlow-b619e9a1-9e15-4ada-9bf6-54e0fcf7f6c8" name="条件1" sourceRef="gateWay-9134083e-a2a3-4021-9628-f478602c5933" targetRef="userTask-counterSign-0ae5c7c5-b282-4e4d-b8dd-b3d5fe623583">
<extensionElements>
<flowable:executionListener event="take" delegateExpression="${sequenceFlowListener}"></flowable:executionListener>
</extensionElements>
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${conditionService.checkCondition(1,'userTask-counterSign-0ae5c7c5-b282-4e4d-b8dd-b3d5fe623583',execution)}]]></conditionExpression>
</sequenceFlow>

本文详细介绍了Flowable和Activiti中两种重要的监听机制:TaskListener和ExecutionListener。TaskListener用于监听用户任务的创建、分配、完成和删除事件;ExecutionListener则用于监听流程流的开始、启用和结束事件。通过具体代码示例和XML配置,展示了如何实现这些监听器,为读者提供了深入理解流程引擎监听机制的实用指南。
1695

被折叠的 条评论
为什么被折叠?



