监听器是发生对应任务相关事件时执行自定义的java逻辑或表达式
在使用Activiti时,通常是跟业务结合,而有些业务会比较的复杂,会出现以下的场景:
- activiti人员的动态分配
- 当前任务节点完成时,需要指定下一个节点任务的执行人
- 任务节点完成时需要一些复杂的业务处理
- 任务到达某一节点时,需要监控当前任务的以下信息或者日志
- 当前任务执行人处理人物的时候,需要触发自定义的一些业务处理
- 流程的开始和结束也有可能对应相关的业务处理
- 不仅是节点触发业务,在连线上也可以自定义业务
那么是怎么实现这些需求的呢?为了满足我们的业务,activiti提供了监听器,下面详细讲解activiti监听器的使用。
任务相应时间包括:
create:任务创建后触发
assignment:任务分配后触发
delete:任务完成后触发
all:所有事件发生都触发
表达式参考上篇的UEL表达式,这里主要是介绍监听器的使用
在class中指定我们的代码中的监听器类
从activiti监听器的使用范围,可以分为三种:
- 全局的监听器
- 连线的监听器
- 节点的监听器
全局监听
全局监听可以监听流程启动,任务执行节点之间的连线和流程结束,
自定义实现全局监听的类需要实现ExecutionListener 接口,ExecutionListener 里定义的常量start用来判断流程的开始,end是用来判断流程的结束,take时判断节点任务之间连线使用,也就是上一个节点完成任务后可以触发。
public interface ExecutionListener extends Serializable {
String EVENTNAME_START = "start";
String EVENTNAME_END = "end";
String EVENTNAME_TAKE = "take";
void notify(Delegat