Camunda:指定流程启动节点

131 阅读1分钟
**默认

/**根据流程key启动**/
runtimeService.startProcessInstanceByKey(String processDefinitionKey);
   

**指定节点启动**

/**指定节点之前**/  
ProcessInstantiationBuilder processInstanceByKey = runtimeService.createProcessInstanceByKey("processDefinitionKey");  
ProcessInstance activityId = processInstanceByKey.startBeforeActivity("taskId").execute();  

/**指定节点(一般是流程线节点,这样会触发线上的监听器或其他相关事件)**/  
ProcessInstantiationBuilder processInstanceByKey2 = runtimeService.createProcessInstanceByKey("processDefinitionKey");  
ProcessInstance sequenceFlowId = processInstanceByKey2.startTransition("sequenceFlowId").execute();  

/**指定节点之后(可以触发指定节点的监听器,流程线的监听器)**/  
ProcessInstantiationBuilder processInstanceByKey3 = runtimeService.createProcessInstanceByKey("processDefinitionKey");  
ProcessInstance taskId = processInstanceByKey3.startAfterActivity("taskId").execute();


.execute(boolean skipCustomListeners, boolean skipIoMappings):参数可跳过监听器。
.executeWithVariablesInReturn():带返回值,返回变量信息。
.executeWithVariablesInReturn(boolean skipCustomListeners, boolean skipIoMappings):跳过监听器并带返回值。