Activiti流程向後執行一步方法runtimeService().signal(executionId);
阿新 • • 發佈:2019-01-23
例子:
@Test public void startProcessInstance(){ //流程定義的key String processDefinitionKey = "receiveTask"; ProcessInstance pi = processEngine.getRuntimeService()//與正在執行的流程例項和執行物件相關的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定義的key啟動流程例項,key對應helloworld.bpmn檔案中id的屬性值,使用key值啟動,預設是按照最新版本的流程定義啟動 System.out.println("流程例項ID:"+pi.getId());//流程例項ID 101 System.out.println("流程定義ID:"+pi.getProcessDefinitionId());//流程定義ID helloworld:1:4 /**查詢執行物件ID*/ Execution execution1 = processEngine.getRuntimeService() .createExecutionQuery()//建立執行物件查詢 .processInstanceId(pi.getId())//使用流程例項ID查詢 .activityId("receivetask1")//當前活動的id,對應receiveTask.bpmn檔案中的活動節點的id的屬性值 .singleResult(); /**使用流程變數設定當日銷售額,用來傳遞業務引數*/ processEngine.getRuntimeService() .setVariable(execution1.getId(), "彙總當日銷售額", 21000); /**向後執行一步,如果流程處於等待狀態,使得流程繼續執行*/ processEngine.getRuntimeService() .signal(execution1.getId()); /**查詢執行物件ID*/ Execution execution2 = processEngine.getRuntimeService() .createExecutionQuery()//建立執行物件查詢 .processInstanceId(pi.getId())//使用流程例項ID查詢 .activityId("receivetask2")//當前活動的id,對應receiveTask.bpmn檔案中的活動節點的id的屬性值 .singleResult(); /**從流程變數中獲取彙總當日銷售額的值*/ Integer value = (Integer) processEngine.getRuntimeService() .getVariable(execution2.getId(), "彙總當日銷售額"); System.out.println("給老闆發簡訊:金額時:"+value); /**向後執行一步,如果流程處於等待狀態,使得流程繼續執行*/ processEngine.getRuntimeService() .signal(execution2.getId()); }
測試程式碼來源於尚學堂教學視訊runtimeService().signal(executionId)方法可以將流程繼續往下執行一步