我是一個目錄
- 1.分析
- 2. 全部流程執行個體的挂起和激活
- 3. 單個流程執行個體挂起
1.分析
如果公司制度發生變化
1.原本沒有批完的流程怎麼辦?
例如:30人沒有處理完,怎麼辦?
看公司制度了,有可能 按原來的走,也有可能全部打回,重新發起,全部按照新流程走。
2.xx員工個人沒有批完的流程怎麼辦?
例如: 單獨一個人怎麼辦?
有可能暫時挂起。
2. 全部流程執行個體的挂起和激活
public static void main(String[] args){
//1.獲得引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.獲得RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
//3.查詢流程執行個體
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey("holiday").singleResult();
//4.得到目前流程定義執行個體是否都為暫停狀态
boolean suspended = processDefinition.isSuspended();
String processDefinitionId = processDefinition.getId();
//5.判斷
if(suspended){
//說明是暫停,就可以激活操作
repositoryService.activateProcessDefinitionById(processDefinitionId,true,null);
System.out.println("激活");
}else{
repositoryService.suspendProcessDefinitionById(processDefinitionId);
System.out.println("挂起");
}
}
3. 單個流程執行個體挂起
public static void main(String[] args){
//1.獲得引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.獲得RunTimeSerice
RuntimeService runtimeService = processEngine.getRuntimeService();
//3.查詢流程執行個體
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceBusinessKey("holiday").singleResult();
//4.得到目前流程定義執行個體是否都為暫停狀态
boolean suspended = processInstance.isSuspended();
String processInstanceId = processInstance.getId();
//5.判斷
if(suspended){
//說明是暫停,就可以激活操作
runtimeService.activateProcessInstanceById(processInstanceId);
System.out.println("激活");
}else{
runtimeService.suspendProcessInstanceById(processInstanceId);
System.out.println("挂起");
}
}
注意,上面兩段代碼是因為我都隻有一個流程執行個體,是以用的是singleResult()方法。有多個的話,要調用list()方法。