public static DelegateCaseVariableInstanceImpl fromVariableInstance(VariableInstance variableInstance) { DelegateCaseVariableInstanceImpl delegateInstance = new DelegateCaseVariableInstanceImpl(); delegateInstance.variableId = variableInstance.getId(); delegateInstance.processInstanceId = variableInstance.getProcessInstanceId(); delegateInstance.executionId = variableInstance.getExecutionId(); delegateInstance.caseExecutionId = variableInstance.getCaseExecutionId(); delegateInstance.caseInstanceId = variableInstance.getCaseInstanceId(); delegateInstance.taskId = variableInstance.getTaskId(); delegateInstance.activityInstanceId = variableInstance.getActivityInstanceId(); delegateInstance.tenantId = variableInstance.getTenantId(); delegateInstance.errorMessage = variableInstance.getErrorMessage(); delegateInstance.name = variableInstance.getName(); delegateInstance.value = variableInstance.getTypedValue(); return delegateInstance; }
public static HalVariableValue generateVariableValue(VariableInstance variableInstance, String variableScopeId) { if (variableScopeId.equals(variableInstance.getTaskId())) { return generateTaskVariableValue(variableInstance, variableScopeId); } else if (variableScopeId.equals(variableInstance.getProcessInstanceId())) { return generateProcessInstanceVariableValue(variableInstance, variableScopeId); } else if (variableScopeId.equals(variableInstance.getExecutionId())) { return generateExecutionVariableValue(variableInstance, variableScopeId); } else if (variableScopeId.equals(variableInstance.getCaseInstanceId())) { return generateCaseInstanceVariableValue(variableInstance, variableScopeId); } else if (variableScopeId.equals(variableInstance.getCaseExecutionId())) { return generateCaseExecutionVariableValue(variableInstance, variableScopeId); } else { throw new RestException("Variable scope id '" + variableScopeId + "' does not match with variable instance '" + variableInstance + "'"); } }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn"}) public void testQueryByCaseActivityInstanceId() { CaseInstance instance = caseService .withCaseDefinitionByKey("oneTaskCase") .setVariable("aVariableName", "abc") .create(); VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); query .activityInstanceIdIn(instance.getId()); VariableInstance result = query.singleResult(); assertNotNull(result); assertEquals("aVariableName", result.getName()); assertEquals("abc", result.getValue()); assertEquals(instance.getId(), result.getCaseExecutionId()); assertEquals(instance.getId(), result.getCaseInstanceId()); assertNull(result.getExecutionId()); assertNull(result.getProcessInstanceId()); }
protected void verifyVariables(String caseInstanceId, List<VariableInstance> result) { for (VariableInstance variable : result) { assertEquals(caseInstanceId, variable.getCaseExecutionId()); assertEquals(caseInstanceId, variable.getCaseInstanceId()); if (variable.getName().equals("aVariableName")) { assertEquals("aVariableName", variable.getName()); assertEquals("abc", variable.getValue()); } else if (variable.getName().equals("anotherVariableName")) { assertEquals("anotherVariableName", variable.getName()); assertEquals(999, variable.getValue()); } else { fail("Unexpected variable: " + variable.getName()); } } }
@Deployment public void testOutputScriptValueAsVariable() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("scriptSource", "return 1 + 1"); ProcessInstance pi = runtimeService.startProcessInstanceByKey("testProcess", variables); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("var1").singleResult(); assertNotNull(variable); assertEquals(2, variable.getValue()); assertEquals(pi.getId(), variable.getExecutionId()); }
@Test public void testIoMappingInvocation() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(instance) .activityBuilder("user1") .camundaInputParameter("foo", "bar") .done() ); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); Batch batch = runtimeService .createModification(processDefinition.getId()) .startAfterActivity("user2") .processInstanceIds(Arrays.asList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then VariableInstance inputVariable = runtimeService.createVariableInstanceQuery().singleResult(); Assert.assertNotNull(inputVariable); assertEquals("foo", inputVariable.getName()); assertEquals("bar", inputVariable.getValue()); ActivityInstance activityInstance = runtimeService.getActivityInstance(processInstance.getId()); assertEquals(activityInstance.getActivityInstances("user1")[0].getId(), inputVariable.getActivityInstanceId()); }
public void setVariables(List<VariableInstance> variables) { this.variables = new HashMap<String, VariableInstance>(); for (VariableInstance variable : variables) { this.variables.put(variable.getId(), variable); } }
public void testQuerySortingDesc() { List<VariableInstance> variableInstances = runtimeService.createVariableInstanceQuery() .orderByTenantId() .desc() .list(); assertThat(variableInstances.size(), is(2)); assertThat(variableInstances.get(0).getTenantId(), is(TENANT_TWO)); assertThat(variableInstances.get(1).getTenantId(), is(TENANT_ONE)); }
@Test public void testSerializableErrorMessage() { // given Map<String, Object> variables = new HashMap<String, Object>(); variables.put("customSerializable", new CustomSerializable()); variables.put("failingSerializable", new FailingSerializable()); Task task = taskService.newTask(); taskService.saveTask(task); taskService.setVariablesLocal(task.getId(), variables); // when VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // then List<VariableInstance> results = query.list(); // both variables are fetched assertEquals(2, results.size()); for (VariableInstance variableInstance : results) { if(variableInstance.getName().equals("customSerializable")) { assertNotNull(variableInstance.getValue()); assertTrue(variableInstance.getValue() instanceof CustomSerializable); } if(variableInstance.getName().equals("failingSerializable")) { // no value was fetched assertNull(variableInstance.getValue()); // error message is present assertNotNull(variableInstance.getErrorMessage()); } } // delete task taskService.deleteTask(task.getId(), true); }
public static HalVariableValue fromVariableInstance(VariableInstance variableInstance) { HalVariableValue dto = new HalVariableValue(); VariableValueDto variableValueDto = VariableValueDto.fromTypedValue(variableInstance.getTypedValue()); dto.name = variableInstance.getName(); dto.value = variableValueDto.getValue(); dto.type = variableValueDto.getType(); dto.valueInfo = variableValueDto.getValueInfo(); return dto; }
@Override public boolean matches(VariableInstance variable) { return executionId.equals(variable.getExecutionId()) && variableName.equals(variable.getName()); } });
@Deployment(resources={"org/camunda/bpm/engine/test/api/cmmn/oneTaskCase.cmmn"}) public void testCreateByKeyWithVariablesNonFluent() { // given a deployed case definition // when Map<String, Object> variables = new HashMap<String, Object>(); variables.put("aVariable", "aValue"); CaseInstance caseInstance = caseService.createCaseInstanceByKey("oneTaskCase", variables); // then assertNotNull(caseInstance); VariableInstance variable = runtimeService.createVariableInstanceQuery() .caseInstanceIdIn(caseInstance.getId()) .singleResult(); assertNotNull(variable); assertEquals("aVariable", variable.getName()); assertEquals("aValue", variable.getValue()); assertEquals(caseInstance.getId(), variable.getCaseInstanceId()); }
public boolean shouldEvaluateForVariableEvent(VariableEvent event) { return ((variableName == null || event.getVariableInstance().getName().equals(variableName)) && ((variableEvents == null || variableEvents.isEmpty()) || variableEvents.contains(event.getEventName()))); }
public void testProcessVariableQueryWithReadInstancesPermissionOnOneTaskProcess() { // given String processInstanceId = startProcessInstanceByKey(PROCESS_KEY, getVariables()).getId(); createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, READ_INSTANCE); // when VariableInstanceQuery query = runtimeService.createVariableInstanceQuery(); // then verifyQueryResults(query, 1); VariableInstance variable = query.singleResult(); assertNotNull(variable); assertEquals(processInstanceId, variable.getProcessInstanceId()); }
private void verifyQueryResult(VariableInstanceQuery query, String varValue) { // then List<VariableInstance> result = query.list(); assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals(1, query.count()); for (VariableInstance var : result) { assertEquals("stringVar", var.getName()); assertEquals("string", var.getTypeName()); assertEquals(varValue, var.getValue()); } }
public void assertVariableMigratedToExecution(VariableInstance variableBefore, String executionId) { assertVariableMigratedToExecution(variableBefore, executionId, variableBefore.getActivityInstanceId()); }
@Deployment public void testOutputNullValue() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("testProcess"); VariableInstance variable = runtimeService.createVariableInstanceQuery().variableName("var1").singleResult(); assertNotNull(variable); assertEquals("null", variable.getTypeName()); assertEquals(pi.getId(), variable.getExecutionId()); }
@Test @Deployment(resources = SINGLE_CONDITIONAL_START_EVENT_XML) public void testStartInstanceWithVariableCondition() { // given a deployed process // when List<ProcessInstance> instances = runtimeService .createConditionEvaluation() .setVariable("foo", 1) .evaluateStartConditions(); // then assertEquals(1, instances.size()); VariableInstance vars = runtimeService.createVariableInstanceQuery().singleResult(); assertEquals(vars.getProcessInstanceId(), instances.get(0).getId()); assertEquals(1, vars.getValue()); }
assertNull(variableInstance.getErrorMessage()); ObjectValue typedValue = (ObjectValue) variableInstance.getTypedValue(); assertNotNull(typedValue); assertFalse(typedValue.isDeserialized());