Activiti進階(九)——開始活動節點
阿新 • • 發佈:2019-01-26
一、流程圖
二、部署流程定義+啟動流程例項+查詢流程例項+查詢歷史流程例項
@Test public void deployementAndStartProcess(){ String resourceNamebpmn = "start.bpmn"; String resourceNamepng = "start.png"; InputStream inputStreamBpmn = this.getClass().getResourceAsStream("start.bpmn"); InputStream inputStreamPng = this.getClass().getResourceAsStream("start.png"); /**1、部署流程定義*/ Deployment deployment = processEngine.getRepositoryService() .createDeployment()//建立部署物件 .name("開始流程") .addInputStream(resourceNamebpmn, inputStreamBpmn)//部署載入資原始檔 .addInputStream(resourceNamepng, inputStreamPng) .deploy(); System.out.println("部署ID:"+deployment.getId()); /**2、啟動流程例項*/ String processDefinitionKey ="start"; ProcessInstance pi = processEngine.getRuntimeService()//獲取執行時服務物件 .startProcessInstanceByKey(processDefinitionKey);//使用流程定義的key的最新版本啟動流程 System.out.println("流程例項ID:"+pi.getId()); System.out.println("流程定義的ID:"+pi.getProcessDefinitionId()); //當流程結束後,流程例項被刪除,執行時服務物件不能查詢 /**3、判斷流程是否結束,查詢正在執行的執行物件表(act_ru_execution)或者流程例項表()*/ ProcessInstance rpi = processEngine.getRuntimeService() .createProcessInstanceQuery() .processInstanceId(pi.getId()) .singleResult(); /**4、如果rpi==null則流程結束*/ if(rpi == null){ /**查詢歷史獲取流程相關資訊*/ HistoricProcessInstance hpi = processEngine.getHistoryService() //.createHistoricActivityInstanceQuery() .createHistoricProcessInstanceQuery() .processInstanceId(pi.getId())//使用流程例項ID查詢 .singleResult(); System.out.println(hpi.getId()+" "+hpi.getStartTime()+" "+hpi.getEndTime()); } }
三、總結
1、結束節點是沒有出口的
2、其它節點有一個或者多個出口
如果有一個出口則代表是單線流程
如果有多個出口則代表開啟併發流程