private BpmnModelInstance prepareCallingProcess(String callingProcess, String calledProcess) { BpmnModelInstance calling = Bpmn.createExecutableProcess(callingProcess) .startEvent() .callActivity() .calledElement(calledProcess) .endEvent() .done(); return calling; } }
public static BpmnModelInstance oneBpmnCallActivityProcessAsExpression(int processNumber){ return ProcessModels.newModel(processNumber) .startEvent() .callActivity() .calledElement("${NextProcess}") .camundaIn("NextProcess", "NextProcess") .endEvent() .done(); }
public static BpmnModelInstance oneBpmnCallActivityProcess(String calledProcessKey) { return ProcessModels.newModel() .startEvent() .callActivity("callActivity") .calledElement(calledProcessKey) .userTask("userTask") .endEvent() .done(); }
public static BpmnModelInstance oneCmmnCallActivityProcess(String caseCaseKey) { return ProcessModels.newModel() .startEvent() .callActivity("callActivity") .camundaCaseRef(caseCaseKey) .userTask("userTask") .endEvent() .done(); }
public static BpmnModelInstance oneBpmnCallActivityProcessPassingVariables(int processNumber, int calledProcessNumber){ return ProcessModels.newModel(processNumber) .startEvent() .callActivity() .calledElement("Process"+calledProcessNumber) .camundaInputParameter("NextProcess", "Process"+(processNumber+1)) .camundaIn("NextProcess", "NextProcess") .endEvent() .done(); } }
protected BpmnModelInstance getModelWithCallActivityVersionTagBinding(String versionTag) { return Bpmn.createExecutableProcess("process") .startEvent() .callActivity("callActivity") .calledElement("subProcess") .camundaCalledElementBinding("versionTag") .camundaCalledElementVersionTag(versionTag) .endEvent() .done(); }
@Test public void providerCalledForProcessDefinitionWithoutTenantId_SubProcessInstance() { ContextLoggingTenantIdProvider tenantIdProvider = new ContextLoggingTenantIdProvider(); TestTenantIdProvider.delegate = tenantIdProvider; // given a deployment without tenant id testRule.deploy(Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).done()); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess"); // then the tenant id provider is invoked twice assertThat(tenantIdProvider.parameters.size(), is(2)); }
public static BpmnModelInstance oneBpmnCallActivityProcessAsExpressionAsync(int processNumber){ return ProcessModels.newModel(processNumber) .startEvent() .camundaAsyncBefore(true) .callActivity() .calledElement("${NextProcess}") .camundaIn("NextProcess", "NextProcess") .endEvent() .done(); }
protected BpmnModelInstance createCallingProcess(String processId, String versionTagValue) { return Bpmn.createExecutableProcess(processId) .startEvent() .callActivity() .calledElement("subProcess") .camundaCalledElementBinding("versionTag") .camundaCalledElementVersionTag(versionTagValue) .endEvent() .done(); }
@Test public void providerNotCalledForProcessDefinitionWithTenantId_SubProcessInstance() { ContextLoggingTenantIdProvider tenantIdProvider = new ContextLoggingTenantIdProvider(); TestTenantIdProvider.delegate = tenantIdProvider; // given a deployment with a tenant id testRule.deployForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).done()); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess"); // then the tenant id provider is not invoked assertThat(tenantIdProvider.parameters.size(), is(0)); }
@Test public void providerCalledWithVariables_SubProcessInstance() { ContextLoggingTenantIdProvider tenantIdProvider = new ContextLoggingTenantIdProvider(); TestTenantIdProvider.delegate = tenantIdProvider; testRule.deploy(Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).camundaIn("varName", "varName").done()); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess", Variables.createVariables().putValue("varName", true)); // then the tenant id provider is passed in the variable assertThat(tenantIdProvider.parameters.get(1).getVariables().size(), is(1)); assertThat((Boolean) tenantIdProvider.parameters.get(1).getVariables().get("varName"), is(true)); }
protected BpmnModelInstance getBpmnModelInstance() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .callActivity(CALL_ACTIVITY) .calledElement(SUB_PROCESS_ID) .multiInstance() .cardinality("2") .multiInstanceDone() .endEvent() .done(); }
@Test public void providerCalledWithProcessDefinition_SubProcessInstance() { ContextLoggingTenantIdProvider tenantIdProvider = new ContextLoggingTenantIdProvider(); TestTenantIdProvider.delegate = tenantIdProvider; testRule.deploy(Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).done()); ProcessDefinition deployedProcessDefinition = engineRule.getRepositoryService().createProcessDefinitionQuery().processDefinitionKey(PROCESS_DEFINITION_KEY).singleResult(); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess"); // then the tenant id provider is passed in the process definition ProcessDefinition passedProcessDefinition = tenantIdProvider.parameters.get(1).getProcessDefinition(); assertThat(passedProcessDefinition, is(notNullValue())); assertThat(passedProcessDefinition.getId(), is(deployedProcessDefinition.getId())); }
public void testCaseRefTenantIdConstant() { BpmnModelInstance callingProcess = Bpmn.createExecutableProcess("callingProcess") .startEvent() .callActivity() .camundaCaseRef("Case_1") .camundaCaseTenantId(TENANT_ONE) .endEvent() .done(); deploymentForTenant(TENANT_ONE, CMMN); deployment(callingProcess); runtimeService.startProcessInstanceByKey("callingProcess"); CaseInstanceQuery query = caseService.createCaseInstanceQuery().caseDefinitionKey("Case_1"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); }
public void testCalledElementTenantIdExpression() { BpmnModelInstance callingProcess = Bpmn.createExecutableProcess("callingProcess") .startEvent() .callActivity() .calledElement("subProcess") .camundaCalledElementTenantId("${'"+TENANT_ONE+"'}") .endEvent() .done(); deploymentForTenant(TENANT_ONE, SUB_PROCESS); deployment(callingProcess); runtimeService.startProcessInstanceByKey("callingProcess"); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey("subProcess"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); }
public void testCaseRefTenantIdExpression() { BpmnModelInstance callingProcess = Bpmn.createExecutableProcess("callingProcess") .startEvent() .callActivity() .camundaCaseRef("Case_1") .camundaCaseTenantId("${'"+TENANT_ONE+"'}") .endEvent() .done(); deploymentForTenant(TENANT_ONE, CMMN); deployment(callingProcess); runtimeService.startProcessInstanceByKey("callingProcess"); CaseInstanceQuery query = caseService.createCaseInstanceQuery().caseDefinitionKey("Case_1"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); }
@Test public void setNullTenantId_SubProcessInstance() { String tenantId = null; SetValueOnSubProcessInstanceTenantIdProvider tenantIdProvider = new SetValueOnSubProcessInstanceTenantIdProvider(tenantId); TestTenantIdProvider.delegate = tenantIdProvider; testRule.deploy(Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().userTask().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).done()); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess"); // then the tenant id provider can set the tenant id to null ProcessInstance processInstance = engineRule.getRuntimeService().createProcessInstanceQuery().processDefinitionKey(PROCESS_DEFINITION_KEY).singleResult(); assertThat(processInstance.getTenantId(), is(nullValue())); }
public void testCalledElementTenantIdConstant() { BpmnModelInstance callingProcess = Bpmn.createExecutableProcess("callingProcess") .startEvent() .callActivity() .calledElement("subProcess") .camundaCalledElementTenantId(TENANT_ONE) .endEvent() .done(); deploymentForTenant(TENANT_ONE, SUB_PROCESS); deployment(callingProcess); runtimeService.startProcessInstanceByKey("callingProcess"); ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey("subProcess"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); }
public static BpmnModelInstance subProcessBpmnCallActivityProcess(String calledProcessKey) { return ProcessModels.newModel() .startEvent() .subProcess("subProcess") .embeddedSubProcess() .startEvent() .callActivity("callActivity") .calledElement(calledProcessKey) .userTask("userTask") .endEvent() .subProcessDone() .endEvent() .done(); }
@Test public void tenantIdInheritedFromSuperProcessInstance() { String tenantId = TENANT_ID; SetValueOnRootProcessInstanceTenantIdProvider tenantIdProvider = new SetValueOnRootProcessInstanceTenantIdProvider(tenantId); TestTenantIdProvider.delegate = tenantIdProvider; testRule.deploy(Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).startEvent().userTask().done(), Bpmn.createExecutableProcess("superProcess").startEvent().callActivity().calledElement(PROCESS_DEFINITION_KEY).done()); // if a process instance is started engineRule.getRuntimeService().startProcessInstanceByKey("superProcess"); // then the tenant id is inherited to the sub process instance even tough it is not set by the provider ProcessInstance processInstance = engineRule.getRuntimeService().createProcessInstanceQuery().processDefinitionKey(PROCESS_DEFINITION_KEY).singleResult(); assertThat(processInstance.getTenantId(), is(tenantId)); }