博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(七)Activiti之历史活动查询和历史任务查询和流程状态查询
阅读量:6672 次
发布时间:2019-06-25

本文共 2402 字,大约阅读时间需要 8 分钟。

一、历史活动查询

  • 本章案例是基于上一章节案例的基础上,流程走完后进行测试的,也就是下图的流程从学生请假到班主任审批都已经完成,本章用来测试查询历史活动和历史任务的

  • activiti5的历史活动包括所有节点(上图的圆圈)和任务(上图的矩形),而历史任务只包含任务。所以一般开发中查询历史活动比较常用。
/**     * 历史活动查询     */    @Test    public void historyActInstanceList(){        List
list=processEngine.getHistoryService() // 历史相关Service .createHistoricActivityInstanceQuery() // 创建历史活动实例查询 .processInstanceId("2501") // 执行流程实例id .finished() .list(); for(HistoricActivityInstance hai:list){ System.out.println("活动ID:"+hai.getId()); System.out.println("流程实例ID:"+hai.getProcessInstanceId()); System.out.println("活动名称:"+hai.getActivityName()); System.out.println("办理人:"+hai.getAssignee()); System.out.println("开始时间:"+hai.getStartTime()); System.out.println("结束时间:"+hai.getEndTime()); System.out.println("================================="); } }
  • 结果,下图的数据来源于表act_hi_actinst

 

 二、历史任务查询

  •  activiti5的历史活动包括所有节点(上图的圆圈)和任务(上图的矩形),而历史任务只包含任务。所以一般开发中查询历史活动比较常用。

 

/**     * 历史任务查询     */    @Test    public void historyTaskList(){        List
list=processEngine.getHistoryService() // 历史相关Service .createHistoricTaskInstanceQuery() // 创建历史任务实例查询 .processInstanceId("2501") // 用流程实例id查询 .finished() // 查询已经完成的任务 .list(); for(HistoricTaskInstance hti:list){ System.out.println("任务ID:"+hti.getId()); System.out.println("流程实例ID:"+hti.getProcessInstanceId()); System.out.println("任务名称:"+hti.getName()); System.out.println("办理人:"+hti.getAssignee()); System.out.println("开始时间:"+hti.getStartTime()); System.out.println("结束时间:"+hti.getEndTime()); System.out.println("================================="); } }
  • 结果,下图的数据来源于act_hi_taskinst表

 

 

 三、查询流程状态

/**     * 查询流程状态(正在执行 or 已经执行结束)     */    @Test    public void processState(){        ProcessInstance pi=processEngine.getRuntimeService() // 获取运行时Service            .createProcessInstanceQuery() // 创建流程实例查询            .processInstanceId("2501") // 用流程实例id查询            .singleResult();        if(pi!=null){            System.out.println("流程正在执行!");        }else{            System.out.println("流程已经执行结束!");        }    }
  • 如果流程已经处理完下图中的“学生请假”和“班长审批”和“班主任审批”,那么流程已经执行结束。

 

转载于:https://www.cnblogs.com/shyroke/p/7994931.html

你可能感兴趣的文章
在网络设备上暂挂会话
查看>>
SQL中访问远程数据库(MSSQL)
查看>>
Django学习
查看>>
python excel操作
查看>>
11.static关键字
查看>>
我的友情链接
查看>>
孙杨赢在“天才+努力+机遇”
查看>>
OC @property 指示符assign、atomic、copy、retain、strong、week、等
查看>>
apt-get常用命令
查看>>
linux下查看文件编码及修改编码
查看>>
trip数据库的建立
查看>>
2012年上半年网工考试试题分析
查看>>
Eclipse中将tomcat日志输出重定向
查看>>
Ubuntu 14.04安装Nginx1.60
查看>>
aaa
查看>>
详解coredump
查看>>
神奇犁头草,治疗肿毒效如神
查看>>
linux的发行版
查看>>
PHP环境配置中遇到的各种问题解决方法: Cannot load php5apache2_2.dll into server
查看>>
我的友情链接
查看>>