前言
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("----------------------------------------------");
}
}