前言
Activity工作流提供了很多的关于历史记录的查询,今天讲讲常用的几个方法。
四个历史查询方法
1.查询历史的流程实例
@Test
public void queryHistoryProcessInstance(){
List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery()
.processDefinitionKey("activiti_leave")
.orderByProcessInstanceEndTime()
.desc()
.list();
for(HistoricProcessInstance historicProcessInstance : historicProcessInstanceList){
System.out.println("历史流程实例ID:"+historicProcessInstance.getId());
System.out.println("历史流程实例完成时间:"+historicProcessInstance.getEndTime());
}
}
2.查询当前流程实例所经历的所有活动
@Test
public void queryHistoryActivityInstance(){
List<HistoricActivityInstance> historicActivityInstanceList = historyService.createHistoricActivityInstanceQuery()
.processInstanceId("3001")
.list();
for(HistoricActivityInstance historicActivityInstance : historicActivityInstanceList){
System.out.println("历史活动ID:"+historicActivityInstance.getId());
System.out.println("历史活动名称:"+historicActivityInstance.getActivityName());
System.out.println("办理人:"+historicActivityInstance.getAssignee());
}
}
3.查询某个办理人(结点)所经历的所有任务
@Test
public void queryHistoryTaskInstanceByAssignee(){
List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery()
.processDefinitionKey("activiti_leave")
.taskAssignee("employnee")
.list();
for(HistoricTaskInstance historicTaskInstance : historicTaskInstanceList){
System.out.println("历史任务ID:"+historicTaskInstance.getId());
System.out.println("历史活动名称:"+historicTaskInstance.getName());
System.out.println("结束时间:"+historicTaskInstance.getEndTime());
System.out.println("办理人:"+historicTaskInstance.getAssignee());
System.out.println("----------------------------------------------");
}
}
4.根据流程实例的ID来查询历史流程变量
@Test
public void queryHistoryVariable(){
List<HistoricVariableInstance> historicVariableInstanceList = historyService.createHistoricVariableInstanceQuery()
.processInstanceId("1001")
.list();
for(HistoricVariableInstance historicVariableInstance : historicVariableInstanceList){
System.out.println("流程变量ID:"+historicVariableInstance.getId());
System.out.println("变量名:"+historicVariableInstance.getVariableName());
System.out.println("变量值:"+historicVariableInstance.getValue());
System.out.println("----------------------------------------------");
}
}