private BpmnModelInstance createWorkflow(final YamlDefinitionImpl definition) { this.definition = definition; createdTasks.clear(); tasksById.clear(); for (YamlTask task : definition.getTasks()) { tasksById.put(task.getId(), task); } final StartEventBuilder builder = Bpmn.createExecutableProcess(definition.getName()).startEvent(); final YamlTask initialTask = definition.getTasks().get(0); addTask(builder, initialTask.getId()); return builder.done(); }
@Override public StartEventBuilder builder() { return new StartEventBuilder((BpmnModelInstance) modelInstance, this); }
private static BpmnModelInstance createWorkflowWithTwoMessageStartEvent() { final ProcessBuilder process = Bpmn.createExecutableProcess("processId"); process.startEvent(EVENT_ID1).message(m -> m.name(MESSAGE_NAME1).id("startmsgId1")).endEvent(); process.startEvent(EVENT_ID2).message(m -> m.name(MESSAGE_NAME2).id("startmsgId2")).endEvent(); return process.done(); }
private static BpmnModelInstance createTimerAndMessageStartEventsModel() { final ProcessBuilder builder = Bpmn.createExecutableProcess("process"); builder.startEvent("timer_start").timerWithCycle("R/PT1S").endEvent("timer_end"); return builder.startEvent("msg_start").message("msg1").endEvent("msg_end").done(); }
private static BpmnModelInstance createWorkflowWithMessageStartEventOutputMapping() { return Bpmn.createExecutableProcess("processId") .startEvent(EVENT_ID1) .zeebeOutput("$.foo", "$.mappedfoo") .message(m -> m.name(MESSAGE_NAME1).id("startmsgId")) .endEvent() .done(); }
public long createJob(final String type, Consumer<ServiceTaskBuilder> consumer, String payload) { deploy( Bpmn.createExecutableProcess("process") .startEvent() .serviceTask( "task", b -> { b.zeebeTaskType(type).zeebeTaskRetries(3); consumer.accept(b); }) .done()); final long workflowInstance = createWorkflowInstance("process", payload); return RecordingExporter.jobRecords(JobIntent.CREATED) .withType(type) .filter(j -> j.getValue().getHeaders().getWorkflowInstanceKey() == workflowInstance) .getFirst() .getKey(); }
.exclusiveGateway() .sequenceFlowId("flow") .condition("foo") .serviceTask("task", s -> s.zeebeInput("foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeOutput("foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$.*", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$.foo", "$.a[0,1]")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$", "$").zeebeInput("$.foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeOutput("$", "$").zeebeOutput("$.foo", "$.foo")) .endEvent() .done(), .intermediateCatchEvent("catch")
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent(elementId()) .timerWithCycle("R1/PT0.01S") .done(); }
@Test public void shouldRejectDeploymentIfUsedInvalidMessage() throws IOException { // given final BpmnModelInstance process = Bpmn.createExecutableProcess().startEvent().intermediateCatchEvent("invalidmessage").done(); // when final ExecuteCommandResponse resp = apiRule.partitionClient().deployWithResponse(process); // then assertThat(resp.getRecordType()).isEqualTo(RecordType.COMMAND_REJECTION); }
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .exclusiveGateway(elementId()) .defaultFlow() .endEvent() .done(); } },
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .parallelGateway(elementId()) .endEvent() .done(); } },
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .sequenceFlowId(elementId()) .endEvent() .done(); } });
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .eventBasedGateway(elementId()) .intermediateCatchEvent() .message(b -> b.name(messageName()).zeebeCorrelationKey("$.id")) .moveToLastGateway() .intermediateCatchEvent() .timerWithDuration("PT0.01S") .done(); }
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .receiveTask(elementId()) .message(b -> b.name(messageName()).zeebeCorrelationKey("$.id")) .done(); }
@Test public void shouldCompleteInstanceAfterEndEvent() { // given testClient.deploy(Bpmn.createExecutableProcess(PROCESS_ID).startEvent().endEvent("end").done()); // when testClient.createWorkflowInstance(PROCESS_ID); // then assertThatWorkflowInstanceCompletedAfter("end", WorkflowInstanceIntent.EVENT_ACTIVATED); }
public long createJob(final String type, Consumer<ServiceTaskBuilder> consumer, String payload) { deploy( Bpmn.createExecutableProcess("process") .startEvent() .serviceTask( "task", b -> { b.zeebeTaskType(type).zeebeTaskRetries(3); consumer.accept(b); }) .done()); final long workflowInstance = createWorkflowInstance("process", payload); return RecordingExporter.jobRecords(JobIntent.CREATED) .withType(type) .filter(j -> j.getValue().getHeaders().getWorkflowInstanceKey() == workflowInstance) .getFirst() .getKey(); }
.exclusiveGateway() .sequenceFlowId("flow") .condition("foo") .serviceTask("task", s -> s.zeebeInput("foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeOutput("foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$.*", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$.foo", "$.a[0,1]")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeInput("$", "$").zeebeInput("$.foo", "$.foo")) .endEvent() .done(), .serviceTask("task", s -> s.zeebeOutput("$", "$").zeebeOutput("$.foo", "$.foo")) .endEvent() .done(), .intermediateCatchEvent("catch")
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent(elementId()) .timerWithCycle("R1/PT0.01S") .done(); }
private static BpmnModelInstance createTimerAndMessageStartEventsModel() { final ProcessBuilder builder = Bpmn.createExecutableProcess("process"); builder.startEvent("timer_start").timerWithCycle("R/PT1S").endEvent("timer_end"); return builder.startEvent("msg_start").message("msg1").endEvent("msg_end").done(); }