public void testConcurrentExecution() { deploymentForTenant("tenant1", Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts(hasTenantId("tenant1")); startProcessInstance(PROCESS_DEFINITION_KEY); }
public void testConcurrentServiceTasks() { deployment(Bpmn.createExecutableProcess("testProcess") .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts( new DelegateExecutionAsserter() { public void doAssert(DelegateExecution execution) { assertFalse(execution.equals(execution.getProcessInstance())); assertNull(execution.getSuperExecution()); } } ); runtimeService.startProcessInstanceByKey("testProcess"); }
Bpmn.createExecutableProcess("parentProcess").startEvent() .parallelGateway() .serviceTask("doNothingServiceTask").camundaExpression("${true}") .moveToLastGateway() .callActivity("callActivity").calledElement("subprocess")
Bpmn.createExecutableProcess("parentProcess").startEvent() .parallelGateway() .serviceTask("doNothingServiceTask").camundaExpression("${true}") .moveToLastGateway() .callActivity("callActivity").calledElement("subprocess")
.camundaAsyncBefore() .parallelGateway("parallel") .serviceTask("external") .camundaType("external") .camundaTopic("external")
/** just for visualization, needed on blog post / slide **/ private void createComplexFlow() { engine.getRepositoryService().createDeployment() // .addModelInstance("order.bpmn", Bpmn.createProcess("order").executable() // .startEvent() .serviceTask().name("A") .parallelGateway("fork1") .serviceTask().name("B") .parallelGateway("join2") .moveToNode("fork1") .serviceTask().name("C") .parallelGateway("fork2") .serviceTask().name("D") .parallelGateway("join1") .moveToNode("fork2") .serviceTask().name("E") .connectTo("join1") .connectTo("join2") .endEvent() .done() ).deploy(); } private void createCompensationFlow() {
public void testConcurrentExecution() { deploymentForTenant("tenant1", Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts(hasTenantId("tenant1")); startProcessInstance(PROCESS_DEFINITION_KEY); }
public void testConcurrentServiceTasks() { deployment(Bpmn.createExecutableProcess("testProcess") .startEvent() .parallelGateway("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .parallelGateway("join") .endEvent() .moveToNode("fork") .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .connectTo("join") .done()); AssertingJavaDelegate.addAsserts( new DelegateExecutionAsserter() { public void doAssert(DelegateExecution execution) { assertFalse(execution.equals(execution.getProcessInstance())); assertNull(execution.getSuperExecution()); } } ); runtimeService.startProcessInstanceByKey("testProcess"); }
Bpmn.createExecutableProcess("parentProcess").startEvent() .parallelGateway() .serviceTask("doNothingServiceTask").camundaExpression("${true}") .moveToLastGateway() .callActivity("callActivity").calledElement("subprocess")
Bpmn.createExecutableProcess("parentProcess").startEvent() .parallelGateway() .serviceTask("doNothingServiceTask").camundaExpression("${true}") .moveToLastGateway() .callActivity("callActivity").calledElement("subprocess")
.camundaAsyncBefore() .parallelGateway("parallel") .serviceTask("external") .camundaType("external") .camundaTopic("external")