@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .subProcess(elementId()) .embeddedSubProcess() .startEvent() .subProcessDone() .done(); } },
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .subProcess(elementId()) .embeddedSubProcess() .startEvent() .subProcessDone() .done(); } },
"sub", b -> { b.embeddedSubProcess().startEvent().endEvent();
"sub", b -> { b.embeddedSubProcess().startEvent().endEvent();
"sub", b -> { b.embeddedSubProcess() .startEvent() .serviceTask("task", t -> t.zeebeTaskType("test"))
"sub", b -> { b.embeddedSubProcess() .startEvent() .serviceTask("task", t -> t.zeebeTaskType("test"))
.startEvent() .subProcess("outerSubProcess") .embeddedSubProcess() .startEvent() .subProcess("innerSubProcess") .embeddedSubProcess() .startEvent() .serviceTask("task", b -> b.zeebeTaskType("type"))
.startEvent() .subProcess("outerSubProcess") .embeddedSubProcess() .startEvent() .subProcess("innerSubProcess") .embeddedSubProcess() .startEvent() .serviceTask("task", b -> b.zeebeTaskType("type"))
inner -> inner .embeddedSubProcess() .startEvent() .serviceTask("task", b -> b.zeebeTaskType("type")) outer -> outer .embeddedSubProcess() .startEvent() .subProcess("innerSubProcess", innerSubProcess)
@Test public void shouldRunServiceTaskAfterEmbeddedSubProcess() { // given final BpmnModelInstance model = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .subProcess() .embeddedSubProcess() .startEvent() .endEvent() .subProcessDone() .serviceTask("task", b -> b.zeebeTaskType("type")) .endEvent() .done(); testClient.deploy(model); // when testClient.createWorkflowInstance(PROCESS_ID); // then final Record<JobRecordValue> jobCreatedEvent = testClient.receiveFirstJobEvent(JobIntent.CREATED); final Headers headers = jobCreatedEvent.getValue().getHeaders(); Assertions.assertThat(headers).hasElementId("task"); }
inner -> inner .embeddedSubProcess() .startEvent() .serviceTask("task", b -> b.zeebeTaskType("type")) outer -> outer .embeddedSubProcess() .startEvent() .subProcess("innerSubProcess", innerSubProcess)
@Test public void shouldRunServiceTaskAfterEmbeddedSubProcess() { // given final BpmnModelInstance model = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .subProcess() .embeddedSubProcess() .startEvent() .endEvent() .subProcessDone() .serviceTask("task", b -> b.zeebeTaskType("type")) .endEvent() .done(); testClient.deploy(model); // when testClient.createWorkflowInstance(PROCESS_ID); // then final Record<JobRecordValue> jobCreatedEvent = testClient.receiveFirstJobEvent(JobIntent.CREATED); final Headers headers = jobCreatedEvent.getValue().getHeaders(); Assertions.assertThat(headers).hasElementId("task"); }
@Test public void shouldCompleteInstanceAfterSubProcessEnded() { // given testClient.deploy( Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .parallelGateway() .serviceTask("task-1", t -> t.zeebeTaskType("task-1")) .endEvent("end-1") .moveToLastGateway() .subProcess( "sub", s -> s.embeddedSubProcess() .startEvent() .serviceTask("task-2", t -> t.zeebeTaskType("task-2")) .endEvent("end-sub")) .endEvent("end-2") .done()); testClient.createWorkflowInstance(PROCESS_ID); // when testClient.completeJobOfType("task-1"); testClient.completeJobOfType("task-2"); // then assertThatWorkflowInstanceCompletedAfter("end-2", WorkflowInstanceIntent.EVENT_ACTIVATED); }
@Test public void shouldCompleteInstanceAfterSubProcessEnded() { // given testClient.deploy( Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .parallelGateway() .serviceTask("task-1", t -> t.zeebeTaskType("task-1")) .endEvent("end-1") .moveToLastGateway() .subProcess( "sub", s -> s.embeddedSubProcess() .startEvent() .serviceTask("task-2", t -> t.zeebeTaskType("task-2")) .endEvent("end-sub")) .endEvent("end-2") .done()); testClient.createWorkflowInstance(PROCESS_ID); // when testClient.completeJobOfType("task-1"); testClient.completeJobOfType("task-2"); // then assertThatWorkflowInstanceCompletedAfter("end-2", WorkflowInstanceIntent.ELEMENT_COMPLETED); }
.startEvent() .subProcess("sub") .embeddedSubProcess() .startEvent() .serviceTask("task", t -> t.zeebeTaskType("type"))
.startEvent() .subProcess("sub") .embeddedSubProcess() .startEvent() .serviceTask("task", t -> t.zeebeTaskType("type"))