流程历史数据
/**查询历史流程实例*/
@Test
public void findHistoryProcessInstance(){
String processInstanceId = "301";
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(processInstanceId)//使用流程实例ID查询
.orderByProcessInstanceStartTime().asc()
.singleResult();
System.out.println("---------关联表:ACT_HI_PROCINST;-----------------");
System.out.println("流程实例ID:"+pi.getId());//流程实例ID
System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID
System.out.println("流程开始时间:"+pi.getStartTime());
System.out.println("流程结束时间:"+pi.getEndTime()); }
// 输出:
// ---------关联表:ACT_HI_PROCINST;-----------------
// 流程实例ID:301
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:04:33 CST 2017
// 流程结束时间:Tue Sep 05 16:23:13 CST 2017
/**查询历史活动*/
@Test
public void findHistoryActiviti(){
String processInstanceId = "301";
List<HistoricActivityInstance> list = processEngine.getHistoryService()//
.createHistoricActivityInstanceQuery()//创建历史活动实例的查询
.processInstanceId(processInstanceId)//
.orderByHistoricActivityInstanceStartTime().asc()//
.list();
if(list!=null && list.size()>0){
for(HistoricActivityInstance hai:list){
System.out.println("---------关联表:ACT_HI_ACTINST;-----------------");
System.out.println("历史活动id:"+hai.getId());//流程实例ID
System.out.println("流程定义ID:"+hai.getProcessDefinitionId());//流程定义ID
System.out.println("流程开始时间:"+hai.getStartTime());
System.out.println("流程结束时间:"+hai.getEndTime());
System.out.println("流程实例id:"+hai.getProcessInstanceId());
System.out.println("任务id:"+hai.getTaskId());
System.out.println("代理人:"+hai.getAssignee());
// 输出:
// ---------关联表:ACT_HI_ACTINST;-----------------
// 历史活动id:302
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:04:33 CST 2017
// 流程结束时间:Tue Sep 05 16:04:33 CST 2017
// 流程实例id:301
// 任务id:null
// 代理人:null
// ---------关联表:ACT_HI_ACTINST;-----------------
// 历史活动id:303
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:04:33 CST 2017
// 流程结束时间:Tue Sep 05 16:06:38 CST 2017
// 流程实例id:301
// 任务id:304
// 代理人:小黄
// ---------关联表:ACT_HI_ACTINST;-----------------
// 历史活动id:401
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:06:38 CST 2017
// 流程结束时间:Tue Sep 05 16:17:54 CST 2017
// 流程实例id:301
// 任务id:402
// 代理人:陈经理
// ---------关联表:ACT_HI_ACTINST;-----------------
// 历史活动id:501
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:17:54 CST 2017
// 流程结束时间:Tue Sep 05 16:23:13 CST 2017
// 流程实例id:301
// 任务id:502
// 代理人:陈总裁
// ---------关联表:ACT_HI_ACTINST;-----------------
// 历史活动id:601
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:23:13 CST 2017
// 流程结束时间:Tue Sep 05 16:23:13 CST 2017
// 流程实例id:301
// 任务id:null
// 代理人:null
}
}
}
/**查询历史任务*/
@Test
public void findHistoryTask(){
String processInstanceId = "301";
List<HistoricTaskInstance> list = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricTaskInstanceQuery()//创建历史任务实例查询
.processInstanceId(processInstanceId)//
.orderByHistoricTaskInstanceStartTime().asc()
.list();
if(list!=null && list.size()>0){
for(HistoricTaskInstance hti:list){
System.out.println("------------------关联表:ACT_HI_TASKINST-------------");
System.out.println("历史活动id:"+hti.getId());//流程实例ID
System.out.println("流程定义ID:"+hti.getProcessDefinitionId());//流程定义ID
System.out.println("流程开始时间:"+hti.getStartTime());
System.out.println("流程结束时间:"+hti.getEndTime());
System.out.println("流程实例id:"+hti.getProcessInstanceId());
System.out.println("代理人:"+hti.getAssignee());
// 输出:
// ------------------关联表:ACT_HI_TASKINST-------------
// 历史活动id:304
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:04:33 CST 2017
// 流程结束时间:Tue Sep 05 16:06:37 CST 2017
// 流程实例id:301
// 代理人:小黄
// ------------------关联表:ACT_HI_TASKINST-------------
// 历史活动id:402
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:06:38 CST 2017
// 流程结束时间:Tue Sep 05 16:17:54 CST 2017
// 流程实例id:301
// 代理人:陈经理
// ------------------关联表:ACT_HI_TASKINST-------------
// 历史活动id:502
// 流程定义ID:askForLeave:2:204
// 流程开始时间:Tue Sep 05 16:17:54 CST 2017
// 流程结束时间:Tue Sep 05 16:23:13 CST 2017
// 流程实例id:301
// 代理人:陈总裁
}
}
}
/**查询历史流程变量*/
@Test
public void findHistoryProcessVariables(){
String processInstanceId = "1701";
List<HistoricVariableInstance> list = processEngine.getHistoryService()//
.createHistoricVariableInstanceQuery()//创建一个历史的流程变量查询对象
.processInstanceId(processInstanceId)//
.list();
if(list!=null && list.size()>0){
System.out.println("------------------关联表:ACT_HI_VARINST-------------");
for(HistoricVariableInstance hvi:list){
System.out.println("-----------"+hvi.getVariableName()+"----------");
System.out.println("变量id : "+hvi.getId());
System.out.println("流程实例id : "+hvi.getProcessInstanceId());
System.out.println("变量名称 : "+hvi.getVariableName());
System.out.println("变量类型: "+hvi.getVariableTypeName());
System.out.println("变量值: "+hvi.getValue());
// 输出:
// ------------------关联表:ACT_HI_VARINST-------------
// -----------请假天数----------
// 变量id : 1801
// 流程实例id : 1701
// 变量名称 : 请假天数
// 变量类型: integer
// 变量值: 2
// -----------请假日期----------
// 变量id : 1802
// 流程实例id : 1701
// 变量名称 : 请假日期
// 变量类型: date
// 变量值: Wed Sep 06 11:29:29 CST 2017
// -----------请假原因----------
// 变量id : 1803
// 流程实例id : 1701
// 变量名称 : 请假原因
// 变量类型: string
// 变量值: 准备结婚
// -----------人员信息----------
// 变量id : 1902
// 流程实例id : 1701
// 变量名称 : 人员信息
// 变量类型: serializable
// 变量值: Person [id=45, name=陈道明]
}
}
}