你只有一定要,才一定会得到。
一:任务监听器TaskListener
任务监听器是处理业务逻辑的重要的地方,当
到从而来处理自己的业务。
常用于监听Assignment事件,设置完负责人给负责人发一个消息来通知提示。注意:任务监听器只能用
监听的事件类型:
- Create:任务创建后触发。常用于任务创建后设置任务负责人等。
- Assignment:任务分配后触发。常用于设置完负责人后向负责人发邮件、短信等通知一下。
- Delete:任务完成后触发。
- All:所有事件发生都触发。
注意:直接点击Task Listeners 前面的三角是展示不了内容的,要先点击Task Listeners右边的空白处再点击三角才会展开,Listener也是如此。
public class OffWorkTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
System.out.println(delegateTask.getName());
// create,assignment,delete,all
System.out.println(delegateTask.getEventName());
// delegateTask.setAssignee("xxx");
}
}
二:流程监听器ExecutionListener
任务监听器只能监听UserTask,流程监听器用在流程的不同的阶段上:
- 开始事件和结束事件的开始和结束
- 经过输出顺序流
- 流程活动的开始和结束
- 流程网关的开始和结束
- 中间事假的开始和结束
import org.activiti.engine.delegate.ExecutionListener;
public class MyExecutionListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
// Id=_2
System.out.println("Id=" + execution.getCurrentFlowElement().getId());
// Name=StartEvent
System.out.println("Name=" + execution.getCurrentFlowElement().getName());
// EventName=start
System.out.println("EventName=" + execution.getEventName());
// ProcessDefinitionId=helloworld:1:3
System.out.println("ProcessDefinitionId=" + execution.getProcessDefinitionId());
// ProcessInstanceId=2501
System.out.println("ProcessInstanceId=" + execution.getProcessInstanceId());
}
}