查询历史流程实例,历史活动,历史任务,历史流程变量
public class HistoryQueryTest {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/*
查询历史流程
*/
@Test
public void findHistoryProcess(){
String processInstanceId="1001";
HistoricProcessInstance hpi = processEngine.getHistoryService()
.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
System.out.println();
}
/*
查询历史活动
*/
@Test
public void findHistoryActiviti(){
String processInstanceId="123";
List<HistoricActivityInstance> list = processEngine.getHistoryService()
.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.orderByHistoricActivityInstanceStartTime()
.asc()
.list();
if (list != null && list.size()>0){
for (HistoricActivityInstance hai:list){
System.out.println(hai.getActivityId() + " "+hai.getActivityName());
}
}
}
/*
查询历史任务
*/
@Test
public void findHistoryTask(){
String taskAssignee = "张三";
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery()
.taskAssignee(taskAssignee)
.list();
if (list != null && list.size() > 0){
for (HistoricTaskInstance h : list){
System.out.println(h.getId());
System.out.println(h.getName());
}
}
}
/*
查询历史流程变量
*/
@Test
public void findHistoryProcessVariables(){
List<HistoricVariableInstance> list = processEngine.getHistoryService()
.createHistoricVariableInstanceQuery()
.variableName("请假天数")
.list();
if (list.size()>0&& list != null){
for (HistoricVariableInstance hv:list){
System.out.println(hv.getId() + " "+hv.getVariableName());
}
}
}
}
总结:
在activiti中,采用分开管理,把正在运行的交给Runtimeservice,TaskService管理,而
历史数据交给HistoryService管理,加快流程执行速度。