栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

5.2 activiti任务监听器TaskListener

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5.2 activiti任务监听器TaskListener

1. 任务监听器定义

用户任务UserTask的监听器,定义接口org.activiti.engine.delegate.TaskListener

任务监听器用于在特定的任务相关事件发生时,执行自定义的Java逻辑或表达式

源码:

public interface TaskListener extends Serializable {

  //create(创建):当任务已经创建,并且所有任务参数都已经设置时触发
  String EVENTNAME_CREATE = "create";
  
  String EVENTNAME_ASSIGNMENT = "assignment";
  //(完成):当任务已经完成,从运行时数据中删除前触发
  String EVENTNAME_COMPLETE = "complete";
  //(删除):在任务即将被删除前触发。请注意当任务通过completeTask正常完成时也会触发
  String EVENTNAME_DELETE = "delete";
  
  
  
  String EVENTNAME_ALL_EVENTS = "all";
  
  void notify(DelegateTask delegateTask);
}

结论:assignment事件比create先执行。

xml文件中定义


      
        
      

2.监听类定义

import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;


@Slf4j
public class SiteReportUserTask implements TaskListener {
    private static final long serialVersionUID = 3654543511891213996L;

    @Override
    public void notify(DelegateTask delegateTask) {
        log.info("creattime: {}",delegateTask.getCreateTime());
        
        log.info("getProcessInstanceId: {}",delegateTask.getProcessInstanceId());


        log.info("数据库中的taskId主键: {}",delegateTask.getId());
        log.info("任务名称: {}",delegateTask.getName());
        delegateTask.setName("修改任务名称");

        log.info("获取任务的描述信息: {}",delegateTask.getDescription());
        delegateTask.setDescription("修改任务的描述信息");
        
        log.info("任务处理的优先级范围是0-100: {}",delegateTask.getPriority());
        delegateTask.setPriority(1); 

        log.info("获取流程实例id: {}",delegateTask.getProcessInstanceId());
        log.info("获取流程获取执行id: {}",delegateTask.getExecutionId());
        log.info("获取流程定义id: {}",delegateTask.getProcessDefinitionId());

     
        
       //void addCandidateUser(String userId);

        
        //void addCandidateUsers(Collection candidateUsers);

        
        //void addCandidateGroup(String groupId);

        
        
        String eventName = delegateTask.getEventName();
        if (EVENTNAME_CREATE.endsWith(eventName)) {
            System.out.println("create=========");
        }else if (EVENTNAME_ASSIGNMENT.endsWith(eventName)) {
            System.out.println("assignment========");
        }else if (EVENTNAME_COMPLETE.endsWith(eventName)) {
            System.out.println("complete===========");
        }else if (EVENTNAME_DELETE.endsWith(eventName)) {
            System.out.println("delete=============");
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号