查询流程状态
/**查询流程状态(判断流程正在执行,还是结束)*/
@Test
public void isProcessEnd(){
String processInstanceId = "1401";
//去正在执行的任务表查询
ProcessInstance pi = processEngine.getRuntimeService()//表示正在执行的流程实例和执行对象
.createProcessInstanceQuery()//创建流程实例查询
.processInstanceId(processInstanceId)//使用流程实例ID查询
.singleResult();
if(pi==null){
System.out.println("该流程实例走完");
}
else{
System.out.println("该流程实例还没走完");
}
// 输出:
// 该流程实例还没走完
}
查询历史任务
/**查询历史任务*/
@Test
public void findHistoryTask(){
String taskAssignee = "小黄";
List<HistoricTaskInstance> list = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricTaskInstanceQuery()//创建历史任务实例查询
.taskAssignee(taskAssignee)//指定历史任务的办理人
.list();
if(list!=null && list.size()>0){
for(HistoricTaskInstance pi:list){
System.out.println("流程实例ID:"+pi.getId());//流程实例ID
System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID
System.out.println("流程名称:"+pi.getName());
System.out.println("代理人:"+pi.getAssignee());
}
}
}
输出:
流程实例ID:1404
流程定义ID:askForLeave:8:1304
流程名称:请假申请
代理人:小黄
流程实例ID:304
流程定义ID:askForLeave:2:204
流程名称:请假申请
代理人:小黄
查询历史流程实例
/**查询历史流程实例*/
@Test
public void findHistoryProcessInstance(){
String processInstanceId = "1401";
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(processInstanceId)//使用流程实例ID查询
.singleResult();
System.out.println("流程实例ID:"+pi.getId());//流程实例ID
System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID
System.out.println("流程开始时间:"+pi.getStartTime());
System.out.println("流程结束时间:"+pi.getEndTime());
}
输出:
流程实例ID:1401
流程定义ID:askForLeave:8:1304
流程开始时间:Tue Sep 05 22:09:10 CST 2017
流程结束时间:null