public void testPropagateTenantIdToConcurrentExecution() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .userTask() .parallelGateway("join") .endEvent() .moveToNode("fork") .userTask() .connectTo("join") .done()); startProcessInstance(PROCESS_DEFINITION_KEY); List<Execution> executions = runtimeService.createExecutionQuery().list(); assertThat(executions.size(), is(3)); assertThat(executions.get(0).getTenantId(), is(TENANT_ID)); // inherit the tenant id from process instance assertThat(executions.get(1).getTenantId(), is(TENANT_ID)); assertThat(executions.get(2).getTenantId(), is(TENANT_ID)); }
public void testRemoveConcurrentExecutionLocalVariablesOnJoin() { deployment(Bpmn.createExecutableProcess("process") .startEvent() .parallelGateway("fork") .userTask("task1") .parallelGateway("join") .userTask("afterTask") .endEvent() .moveToNode("fork") .userTask("task2") .connectTo("join") .done()); // given runtimeService.startProcessInstanceByKey("process"); List<Task> tasks = taskService.createTaskQuery().list(); for (Task task : tasks) { runtimeService.setVariableLocal(task.getExecutionId(), "var", "value"); } // when taskService.complete(tasks.get(0).getId()); taskService.complete(tasks.get(1).getId()); // then assertEquals(0, runtimeService.createVariableInstanceQuery().count()); }
private void deployAndStartTestProcess(String elementId, String eventName) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent(START_ID) .sequenceFlowId(SEQUENCE_FLOW_ID) .intermediateCatchEvent(CATCH_EVENT_ID) .parallelGateway(GATEWAY_ID) .userTask(USER_TASK_ID) .endEvent(END_ID) .done(); addMessageEventDefinition((CatchEvent) modelInstance.getModelElementById(CATCH_EVENT_ID)); addExecutionListener((BaseElement) modelInstance.getModelElementById(elementId), eventName); deployAndStartProcess(modelInstance); }
protected void deployParallelProcessWithEventBasedGateway() { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .parallelGateway() .id(PARALLEL_GATEWAY_ID) .userTask(TASK_BEFORE_EVENT_BASED_GW_ID) .eventBasedGateway() .id(EVENT_BASED_GATEWAY_ID) .intermediateCatchEvent() .conditionalEventDefinition() .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .moveToNode(PARALLEL_GATEWAY_ID) .userTask(TASK_BEFORE_SERVICE_TASK_ID) .serviceTask() .camundaClass(SetVariableDelegate.class.getName()) .endEvent() .done(); engine.manageDeployment(repositoryService.createDeployment().addModelInstance(CONDITIONAL_MODEL, modelInstance).deploy()); }
.callActivity("callActivity").calledElement("subprocess") .parallelGateway("mergingParallelGateway") .userTask() .endEvent() .done();
.parallelGateway() .id("parallel") .userTask("taskBeforeGw") .eventBasedGateway() .id("evenBased")
public void testPropagateTenantIdToConcurrentExecution() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .parallelGateway("fork") .userTask() .parallelGateway("join") .endEvent() .moveToNode("fork") .userTask() .connectTo("join") .done()); startProcessInstance(PROCESS_DEFINITION_KEY); List<Execution> executions = runtimeService.createExecutionQuery().list(); assertThat(executions.size(), is(3)); assertThat(executions.get(0).getTenantId(), is(TENANT_ID)); // inherit the tenant id from process instance assertThat(executions.get(1).getTenantId(), is(TENANT_ID)); assertThat(executions.get(2).getTenantId(), is(TENANT_ID)); }
public void testRemoveConcurrentExecutionLocalVariablesOnJoin() { deployment(Bpmn.createExecutableProcess("process") .startEvent() .parallelGateway("fork") .userTask("task1") .parallelGateway("join") .userTask("afterTask") .endEvent() .moveToNode("fork") .userTask("task2") .connectTo("join") .done()); // given runtimeService.startProcessInstanceByKey("process"); List<Task> tasks = taskService.createTaskQuery().list(); for (Task task : tasks) { runtimeService.setVariableLocal(task.getExecutionId(), "var", "value"); } // when taskService.complete(tasks.get(0).getId()); taskService.complete(tasks.get(1).getId()); // then assertEquals(0, runtimeService.createVariableInstanceQuery().count()); }
private void deployAndStartTestProcess(String elementId, String eventName) { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent(START_ID) .sequenceFlowId(SEQUENCE_FLOW_ID) .intermediateCatchEvent(CATCH_EVENT_ID) .parallelGateway(GATEWAY_ID) .userTask(USER_TASK_ID) .endEvent(END_ID) .done(); addMessageEventDefinition((CatchEvent) modelInstance.getModelElementById(CATCH_EVENT_ID)); addExecutionListener((BaseElement) modelInstance.getModelElementById(elementId), eventName); deployAndStartProcess(modelInstance); }
protected void deployParallelProcessWithEventBasedGateway() { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .parallelGateway() .id(PARALLEL_GATEWAY_ID) .userTask(TASK_BEFORE_EVENT_BASED_GW_ID) .eventBasedGateway() .id(EVENT_BASED_GATEWAY_ID) .intermediateCatchEvent() .conditionalEventDefinition() .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .moveToNode(PARALLEL_GATEWAY_ID) .userTask(TASK_BEFORE_SERVICE_TASK_ID) .serviceTask() .camundaClass(SetVariableDelegate.class.getName()) .endEvent() .done(); engine.manageDeployment(repositoryService.createDeployment().addModelInstance(CONDITIONAL_MODEL, modelInstance).deploy()); }
.callActivity("callActivity").calledElement("subprocess") .parallelGateway("mergingParallelGateway") .userTask() .endEvent() .done();
.parallelGateway() .id("parallel") .userTask("taskBeforeGw") .eventBasedGateway() .id("evenBased")