@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .serviceTask("task", b -> b.zeebeTaskType(taskType())) .boundaryEvent(elementId()) .message(b -> b.name(messageName()).zeebeCorrelationKey("$.id")) .endEvent() .done(); }
@Override BpmnModelInstance modelInstance() { return Bpmn.createExecutableProcess(processId()) .startEvent() .serviceTask("task", b -> b.zeebeTaskType(taskType())) .boundaryEvent(elementId()) .message(b -> b.name(messageName()).zeebeCorrelationKey("$.id")) .endEvent() .done(); }
@Test public void shouldUseScopeToExtractCorrelationKeys() { // given final String processId = "shouldHaveScopeKeyIfBoundaryEvent"; final BpmnModelInstance workflow = Bpmn.createExecutableProcess(processId) .startEvent() .serviceTask("task", c -> c.zeebeTaskType("type").zeebeInput("$.bar", "$.foo")) .boundaryEvent( "event", b -> b.message(m -> m.zeebeCorrelationKey("$.foo").name("message"))) .endEvent() .moveToActivity("task") .endEvent() .done(); testClient.deploy(workflow); // when testClient.createWorkflowInstance( processId, MsgPackUtil.asMsgPack(m -> m.put("foo", 1).put("bar", 2))); testClient.publishMessage("message", "1"); // then // if correlation key was extracted from the task, then foo in the task scope would be 2 and // no event occurred would be published assertThat(testClient.receiveElementInState("task", WorkflowInstanceIntent.EVENT_OCCURRED)) .isNotNull(); }
.boundaryEvent("msg1") .cancelActivity(false) .message(m -> m.name("msg1").zeebeCorrelationKey("$.key")) .endEvent("msg1End") .moveToActivity("task")
.boundaryEvent("msg1") .cancelActivity(false) .message(m -> m.name("msg1").zeebeCorrelationKey("$.key")) .endEvent("msg1End") .moveToActivity("task")
.serviceTask("task", b -> b.zeebeTaskType("type")) .boundaryEvent("event") .message(m -> m.name("message").zeebeCorrelationKey("$.key")) .zeebeOutput("$.foo", "$.bar") .zeebeOutputBehavior(ZeebeOutputBehavior.merge)
.serviceTask("task", b -> b.zeebeTaskType("type")) .boundaryEvent("event") .message(m -> m.name("message").zeebeCorrelationKey("$.key")) .zeebeOutput("$.foo", "$.bar") .zeebeOutputBehavior(ZeebeOutputBehavior.merge)
.subProcess("outerSubProcess", outSubProcess) .boundaryEvent("event") .message(m -> m.name("msg").zeebeCorrelationKey("$.key")) .endEvent("msgEnd") .moveToActivity("outerSubProcess")
.subProcess("outerSubProcess", outSubProcess) .boundaryEvent("event") .message(m -> m.name("msg").zeebeCorrelationKey("$.key")) .endEvent("msgEnd") .moveToActivity("outerSubProcess")
.serviceTask("task", c -> c.zeebeTaskType("type")) .boundaryEvent( "event", b -> b.message(m -> m.zeebeCorrelationKey("$.orderId").name("message"))) .endEvent() .moveToActivity("task")