.startEvent() .userTask("UserTask_1") .camundaInputParameter("localVar", "${loopVar}") .camundaInputParameter("constVar", "someValue") //to test array of parameters .boundaryEvent("MessageReceiver_1").message(TEST_MESSAGE_NAME) .userTask("UserTask_2")
@Test public void testSetVariableOnInputMapping() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .done(); deployMixedProcess(modelInstance, CONDITIONAL_EVENT_PROCESS_KEY, true); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); Task task = taskQuery.singleResult(); //when task before is completed taskService.complete(task.getId()); //then conditional boundary event should triggered with the default evaluation behavior tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_AFTER_CONDITIONAL_BOUNDARY_EVENT, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testNonInterruptingSetVariableOnInputMapping() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .done(); deployMixedProcess(modelInstance, CONDITIONAL_EVENT_PROCESS_KEY, false); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); //when task before is completed taskService.complete(taskQuery.singleResult().getId()); //then conditional boundary event should not triggered also not conditional start event //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_WITH_CONDITION, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testNonInterruptingSetVariableOnInputMappingInSubProcess() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .subProcess(SUB_PROCESS_ID) .embeddedSubProcess() .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .subProcessDone() .endEvent() .done(); deployMixedProcess(modelInstance, SUB_PROCESS_ID, false); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); //when task before is completed taskService.complete(taskQuery.singleResult().getId()); //then conditional boundary event should not triggered also not conditional start event //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_WITH_CONDITION, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testSetVariableOnInputMappingInSubProcess() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .subProcess(SUB_PROCESS_ID) .embeddedSubProcess() .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .subProcessDone() .endEvent() .done(); deployMixedProcess(modelInstance, SUB_PROCESS_ID, true); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); Task task = taskQuery.singleResult(); //when task before is completed taskService.complete(task.getId()); //then conditional boundary event should triggered via default evaluation behavior //but conditional start event should not //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_AFTER_CONDITIONAL_BOUNDARY_EVENT, tasksAfterVariableIsSet.get(0).getName()); }
.startEvent() .userTask("UserTask_1") .camundaInputParameter("localVar", "${loopVar}") .camundaInputParameter("constVar", "someValue") //to test array of parameters .boundaryEvent("MessageReceiver_1").message(TEST_MESSAGE_NAME) .userTask("UserTask_2")
@Test public void testNonInterruptingSetVariableOnInputMapping() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .done(); deployMixedProcess(modelInstance, CONDITIONAL_EVENT_PROCESS_KEY, false); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); //when task before is completed taskService.complete(taskQuery.singleResult().getId()); //then conditional boundary event should not triggered also not conditional start event //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_WITH_CONDITION, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testSetVariableOnInputMapping() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .done(); deployMixedProcess(modelInstance, CONDITIONAL_EVENT_PROCESS_KEY, true); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); Task task = taskQuery.singleResult(); //when task before is completed taskService.complete(task.getId()); //then conditional boundary event should triggered with the default evaluation behavior tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_AFTER_CONDITIONAL_BOUNDARY_EVENT, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testNonInterruptingSetVariableOnInputMappingInSubProcess() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .subProcess(SUB_PROCESS_ID) .embeddedSubProcess() .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .subProcessDone() .endEvent() .done(); deployMixedProcess(modelInstance, SUB_PROCESS_ID, false); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); //when task before is completed taskService.complete(taskQuery.singleResult().getId()); //then conditional boundary event should not triggered also not conditional start event //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_WITH_CONDITION, tasksAfterVariableIsSet.get(0).getName()); }
@Test public void testSetVariableOnInputMappingInSubProcess() { final BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY) .startEvent() .subProcess(SUB_PROCESS_ID) .embeddedSubProcess() .startEvent() .userTask(TASK_BEFORE_CONDITION_ID) .name(TASK_BEFORE_CONDITION) .userTask(TASK_WITH_CONDITION_ID) .camundaInputParameter(VARIABLE_NAME, "1") .name(TASK_WITH_CONDITION) .endEvent() .subProcessDone() .endEvent() .done(); deployMixedProcess(modelInstance, SUB_PROCESS_ID, true); // given ProcessInstance procInst = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY); TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(procInst.getId()); Task task = taskQuery.singleResult(); //when task before is completed taskService.complete(task.getId()); //then conditional boundary event should triggered via default evaluation behavior //but conditional start event should not //since variable is only local tasksAfterVariableIsSet = taskQuery.list(); assertEquals(TASK_AFTER_CONDITIONAL_BOUNDARY_EVENT, tasksAfterVariableIsSet.get(0).getName()); }