Activiti7 监听器【十四】

Activiti 7系列文章目录

文章代码下载

Activiti7 工作流设计器【一】
Activiti7 创建表【二】
Activiti7 表结构介绍 【三】
Activiti7 设计器创建流程 【四】
Activiti7 部署流程【五】
Activiti7 查询流程【六】
Activiti7 删除流程【七】
Activiti7 生成SVG图片【八】
Activiti7 发起任务【九】
Activiti7 查询任务执行流程图【十】
Activiti7 完成任务【十一】
Activiti7 历史数据【十二】
Activiti7 任务办理人、委派、转办、持有人、候选人、候选人组、审批意见【十三】
Activiti7 监听器【十四】
Activiti7 流程变量【十五】
Activiti7 网关Gateway【十六】
Activiti7 整合SpringBoot【十七】
Activiti7 多种任务类型【十八】
Activiti7 子流程【十九】
Activiti7 流程回退、流程拒绝【二十】

任务监听器TaskListener

任务监听器是处理业务逻辑的重要的地方,当任务创建、设定负责人、完成任务时都可以监听的到从而来处理自己的业务。

常用于监听Assignment事件,设置完负责人给负责人发一个消息来通知提示。注意:任务监听器只能用在UserTask上使用。
监听的事件类型:

  • Create:任务创建后触发。常用于任务创建后设置任务负责人等。
  • Assignment:任务分配后触发。常用于设置完负责人后向负责人发邮件、短信等通知一下。
  • Delete:任务完成后触发。
  • All:所有事件发生都触发。

image.png
image.png
image.png

监听器类

package com.listener;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;

public class MyListener implements TaskListener {

    @Override
    public void notify(DelegateTask delegateTask) {
        System.out.println("delegateTask.getName() = " + delegateTask.getName());
        // create,assignment,delete,all
        System.out.println("delegateTask.getEventName() = " + delegateTask.getEventName());
        // delegateTask.setAssignee("xxx");
    }
}


当我们发起任务之后,会看到控制台打印如下:
image.png

流程监听器ExecutionListener

任务监听器只能监听UserTask,流程监听器用在流程的不同的阶段上:

  • 开始事件和结束事件的开始和结束
  • 经过输出顺序流
  • 流程活动的开始和结束
  • 流程网关的开始和结束
  • 中间事假的开始和结束
    image.png

image.png

监听器类

package com.listener;

import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;

public class MyExecutionListener implements ExecutionListener {
    @Override
    public void notify(DelegateExecution execution) {
        System.out.println("execution.getCurrentFlowElement().getId() = " + execution.getCurrentFlowElement().getId());
        System.out.println("execution.getCurrentFlowElement().getName() = " + execution.getCurrentFlowElement().getName());
        System.out.println("execution.getEventName() = " + execution.getEventName());
        System.out.println("execution.getProcessDefinitionId() = " + execution.getProcessDefinitionId());
        System.out.println("execution.getProcessInstanceId() = " + execution.getProcessInstanceId());
    }
}


当发起流程控制台输出如下:
image.png

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一灯

请给我打钱!!!谢谢,不客气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值