Activiti进阶(五)——流程执行历史记录
2016-06-30 15:20
369 查看
之前的几篇文章,为大家简单的介绍了部署流程定义、启动流程实例、查看和办理个人任务以及如何设置和获取流程变量,这一系列的活动组成了一个完整的执行流程,那么一个执行完的流程我们如何查看相关的定义呢,这篇博文就为大家简单的介绍一下流程执行的历史记录查询。
一、查询历史流程实例
[java] view
plain copy
/**查询历史流程实例*/
@Test
public void findHisProcessInstance(){
List<HistoricProcessInstance> list = processEngine.getHistoryService()
.createHistoricProcessInstanceQuery()
.processDefinitionId("testVariables:2:1704")//流程定义ID
.list();
if(list != null && list.size()>0){
for(HistoricProcessInstance hi:list){
System.out.println(hi.getId()+" "+hi.getStartTime()+" "+hi.getEndTime());
}
}
}
查询历史流程实例,就是查找按照某个流程定义的规则一共执行了多少次流程,对应的数据库表:act_hi_procinst
从表中我们可以看到,我们可以通过流程实例ID和流程部署ID得到对象的历史流程实例,从而获得该实例的开始时间和结束时间及其他一些属性定义。
二、查询历史活动
[java] view
plain copy
/**查询历史活动
* 问题:HistoricActivityInstance对应哪个表
* 问题:HistoricActivityInstance和HistoricTaskInstance有什么区别*/
@Test
public void findHisActivitiList(){
String processInstanceId = "1801";
List<HistoricActivityInstance> list = processEngine.getHistoryService()
.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list != null && list.size()>0){
for(HistoricActivityInstance hai : list){
System.out.println(hai.getId()+" "+hai.getActivityName());
}
}
}
查询历史活动,就是查询某一次流程的执行一共经历了多少个活动,这里我们使用流程定义ID来查询,对应的数据库表为:act_hi_actinst
三、查询历史任务
[java] view
plain copy
/**查询历史任务
* 问题:HistoricTaskInstance对应哪个表*/
@Test
public void findHisTaskList(){
String processInstanceId = "1801";
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list!=null && list.size()>0){
for(HistoricTaskInstance hti:list){
System.out.println(hti.getId()+" "+hti.getName()+" "+hti.getClaimTime());
}
}
}
查询历史任务,就是查询摸一次流程的执行一共经历了多少个任务,对应表:act_hi_taskinst
四、查询历史流程变量
[java] view
plain copy
/**查询历史流程变量*/
@Test
public void findHisVariablesList(){
String processInstanceId = "1801";
List<HistoricVariableInstance> list = processEngine.getHistoryService()
.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list != null && list.size()>0){
for(HistoricVariableInstance hvi:list){
System.out.println(hvi.getId()+" "+hvi.getVariableName()+" "+hvi.getValue());
}
}
}
查询历史流程变量,就是查询某一次流程的执行一共设置的流程变量,对应表:act_hi_varinst
总结:
由于数据库中保存着历史信息以及正在运行的流程实例信息,在实际项目中对已完成任务的查看频率远不及对待办和运行中的任务的查看,所以activiti采用分开管理,把正在运行的交给RuntimeService管理,而历史数据交给HistoryService来管理。
一、查询历史流程实例
[java] view
plain copy
/**查询历史流程实例*/
@Test
public void findHisProcessInstance(){
List<HistoricProcessInstance> list = processEngine.getHistoryService()
.createHistoricProcessInstanceQuery()
.processDefinitionId("testVariables:2:1704")//流程定义ID
.list();
if(list != null && list.size()>0){
for(HistoricProcessInstance hi:list){
System.out.println(hi.getId()+" "+hi.getStartTime()+" "+hi.getEndTime());
}
}
}
查询历史流程实例,就是查找按照某个流程定义的规则一共执行了多少次流程,对应的数据库表:act_hi_procinst
从表中我们可以看到,我们可以通过流程实例ID和流程部署ID得到对象的历史流程实例,从而获得该实例的开始时间和结束时间及其他一些属性定义。
二、查询历史活动
[java] view
plain copy
/**查询历史活动
* 问题:HistoricActivityInstance对应哪个表
* 问题:HistoricActivityInstance和HistoricTaskInstance有什么区别*/
@Test
public void findHisActivitiList(){
String processInstanceId = "1801";
List<HistoricActivityInstance> list = processEngine.getHistoryService()
.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list != null && list.size()>0){
for(HistoricActivityInstance hai : list){
System.out.println(hai.getId()+" "+hai.getActivityName());
}
}
}
查询历史活动,就是查询某一次流程的执行一共经历了多少个活动,这里我们使用流程定义ID来查询,对应的数据库表为:act_hi_actinst
三、查询历史任务
[java] view
plain copy
/**查询历史任务
* 问题:HistoricTaskInstance对应哪个表*/
@Test
public void findHisTaskList(){
String processInstanceId = "1801";
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list!=null && list.size()>0){
for(HistoricTaskInstance hti:list){
System.out.println(hti.getId()+" "+hti.getName()+" "+hti.getClaimTime());
}
}
}
查询历史任务,就是查询摸一次流程的执行一共经历了多少个任务,对应表:act_hi_taskinst
四、查询历史流程变量
[java] view
plain copy
/**查询历史流程变量*/
@Test
public void findHisVariablesList(){
String processInstanceId = "1801";
List<HistoricVariableInstance> list = processEngine.getHistoryService()
.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.list();
if(list != null && list.size()>0){
for(HistoricVariableInstance hvi:list){
System.out.println(hvi.getId()+" "+hvi.getVariableName()+" "+hvi.getValue());
}
}
}
查询历史流程变量,就是查询某一次流程的执行一共设置的流程变量,对应表:act_hi_varinst
总结:
由于数据库中保存着历史信息以及正在运行的流程实例信息,在实际项目中对已完成任务的查看频率远不及对待办和运行中的任务的查看,所以activiti采用分开管理,把正在运行的交给RuntimeService管理,而历史数据交给HistoryService来管理。
相关文章推荐
- 61. Rotate List
- Hinton's Dropout in 3 Lines of Python
- 前端移动端页面开发
- 表连接-左连接
- selenium处理极验滑动验证码
- ViewPager无限轮播图+小圆点+HttpURLConnection +handler+Thread
- iOS开发 - 获取推送证书
- 手动创建WorkSpace方式的iOS多工程联合编译包含Static Library
- Linux SSH服务 运维
- GCD的日常
- 微信 支付 思维导图(微信红包)
- AsyncTask的代码
- 十进制和二进制快速转换
- 神奇的宏 container_of()
- linux安装redis
- MongoDB中对文档的增删查改基本操作方法总结
- sql数据库中怎么根据存储过程名字,查出存储过程的内容?
- ArrayList<Integer>如何转换为数组
- Linux正则表达式与文件格式化处理
- C++ 11 std::function std::bind使用