private ServiceTaskBuilder addServiceTask( final AbstractFlowNodeBuilder<?, ?> builder, YamlTask task) { final String id = task.getId(); final String taskType = task.getType(); final Integer taskRetries = task.getRetries(); final ServiceTaskBuilder serviceTaskBuilder = builder.serviceTask(id).zeebeTaskType(taskType).zeebeTaskRetries(taskRetries); for (Entry<String, String> header : task.getHeaders().entrySet()) { serviceTaskBuilder.zeebeTaskHeader(header.getKey(), header.getValue()); } addInputOutputMappingToTask(task, serviceTaskBuilder); return serviceTaskBuilder; }
private ServiceTaskBuilder addServiceTask( final AbstractFlowNodeBuilder<?, ?> builder, YamlTask task) { final String id = task.getId(); final String taskType = task.getType(); final Integer taskRetries = task.getRetries(); final ServiceTaskBuilder serviceTaskBuilder = builder.serviceTask(id).zeebeTaskType(taskType).zeebeTaskRetries(taskRetries); for (Entry<String, String> header : task.getHeaders().entrySet()) { serviceTaskBuilder.zeebeTaskHeader(header.getKey(), header.getValue()); } addInputOutputMappingToTask(task, serviceTaskBuilder); return serviceTaskBuilder; }
@Test public void shouldCreateJobWithWorkflowInstanceAndCustomHeaders() { // given testClient.deploy( Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .serviceTask( "foo", t -> t.zeebeTaskType("bar").zeebeTaskHeader("a", "b").zeebeTaskHeader("c", "d")) .endEvent() .done()); // when final long workflowInstanceKey = testClient.createWorkflowInstance(PROCESS_ID); // then final Record<JobRecordValue> event = testClient.receiveFirstJobCommand(JobIntent.CREATE); assertJobHeaders(workflowInstanceKey, "foo", event); final Map<String, Object> customHeaders = event.getValue().getCustomHeaders(); assertThat(customHeaders).containsEntry("a", "b").containsEntry("c", "d"); }
@Test public void shouldCreateJobWithWorkflowInstanceAndCustomHeaders() { // given testClient.deploy( Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .serviceTask( "foo", t -> t.zeebeTaskType("bar").zeebeTaskHeader("a", "b").zeebeTaskHeader("c", "d")) .endEvent() .done()); // when final long workflowInstanceKey = testClient.createWorkflowInstance(PROCESS_ID); // then final Record<JobRecordValue> event = testClient.receiveFirstJobCommand(JobIntent.CREATE); assertJobHeaders(workflowInstanceKey, "foo", event); final Map<String, Object> customHeaders = event.getValue().getCustomHeaders(); assertThat(customHeaders).containsEntry("a", "b").containsEntry("c", "d"); }
@Test public void shouldActivateJobsWithLongCustomHeaders() { // given final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("processId") .startEvent() .serviceTask( "task", b -> { b.zeebeTaskType("taskType").zeebeTaskHeader("foo", LONG_CUSTOM_HEADER_VALUE); }) .endEvent() .done(); apiRule.partitionClient().deployWithResponse(Bpmn.convertToString(modelInstance).getBytes()); apiRule.partitionClient().createWorkflowInstance("processId"); // when apiRule.partitionClient().completeJobOfType("taskType"); // then final JobRecordValue jobRecord = RecordingExporter.jobRecords(JobIntent.ACTIVATED).limit(1).getFirst().getValue(); assertThat(jobRecord.getCustomHeaders().get("foo")).isEqualTo(LONG_CUSTOM_HEADER_VALUE); }
@Test public void shouldActivateJobsWithLongCustomHeaders() { // given final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("processId") .startEvent() .serviceTask( "task", b -> { b.zeebeTaskType("taskType").zeebeTaskHeader("foo", LONG_CUSTOM_HEADER_VALUE); }) .endEvent() .done(); apiRule.partitionClient().deployWithResponse(Bpmn.convertToString(modelInstance).getBytes()); apiRule.partitionClient().createWorkflowInstance("processId"); // when apiRule.partitionClient().completeJobOfType("taskType"); // then final JobRecordValue jobRecord = RecordingExporter.jobRecords(JobIntent.ACTIVATED).limit(1).getFirst().getValue(); assertThat(jobRecord.getCustomHeaders().get("foo")).isEqualTo(LONG_CUSTOM_HEADER_VALUE); }
Bpmn.createExecutableProcess("process") .startEvent("start") .serviceTask("task1", b -> b.zeebeTaskType("type1").zeebeTaskHeader("key", testValue)) .endEvent("end") .moveToActivity("task1") .serviceTask("task2", b -> b.zeebeTaskType("type2").zeebeTaskHeader(testValue, "value")) .connectTo("end") .moveToActivity("task1") .serviceTask( "task3", b -> b.zeebeTaskType("type3").zeebeTaskHeader(testValue, testValue)) .connectTo("end") .done();
Bpmn.createExecutableProcess("process") .startEvent("start") .serviceTask("task1", b -> b.zeebeTaskType("type1").zeebeTaskHeader("key", testValue)) .endEvent("end") .moveToActivity("task1") .serviceTask("task2", b -> b.zeebeTaskType("type2").zeebeTaskHeader(testValue, "value")) .connectTo("end") .moveToActivity("task1") .serviceTask( "task3", b -> b.zeebeTaskType("type3").zeebeTaskHeader(testValue, testValue)) .connectTo("end") .done();
private long deployWorkflow(String... taskTypes) { AbstractFlowNodeBuilder<?, ?> builder = Bpmn.createExecutableProcess(PROCESS_ID).startEvent(); for (String taskType : taskTypes) { builder = builder.serviceTask( taskType, b -> b.zeebeTaskType(taskType).zeebeTaskRetries(3).zeebeTaskHeader("model", "true")); } final BpmnModelInstance model = builder.endEvent().done(); return apiRule .createCmdRequest() .partitionId(DEPLOYMENT_PARTITION) .type(ValueType.DEPLOYMENT, DeploymentIntent.CREATE) .command() .put( "resources", Collections.singletonList(deploymentResource(bpmnXml(model), "process.bpmn"))) .done() .sendAndAwait() .getKey(); }
private long deployWorkflow(String... taskTypes) { AbstractFlowNodeBuilder<?, ?> builder = Bpmn.createExecutableProcess(PROCESS_ID).startEvent(); for (String taskType : taskTypes) { builder = builder.serviceTask( taskType, b -> b.zeebeTaskType(taskType).zeebeTaskRetries(3).zeebeTaskHeader("model", "true")); } final BpmnModelInstance model = builder.endEvent().done(); return apiRule .createCmdRequest() .partitionId(DEPLOYMENT_PARTITION) .type(ValueType.DEPLOYMENT, DeploymentIntent.CREATE) .command() .put( "resources", Collections.singletonList(deploymentResource(bpmnXml(model), "process.bpmn"))) .done() .sendAndAwait() .getKey(); }