taskService.setVariableLocal(task1.getId(), "taskVariable", "aCustomValue");
taskService.setVariableLocal(task2.getId(), "anotherTaskVariable", "aCustomValue");
// when
VariableInstanceQuery processVariablesQuery = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(execution1.getProcessInstanceId(), execution2.getProcessInstanceId(), execution3.getProcessInstanceId());
VariableInstanceQuery taskVariablesQuery = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(execution1.getActivityInstanceId(), execution2.getActivityInstanceId());
// then (process variables)
List<VariableInstance> result = processVariablesQuery.list();
assertFalse(result.isEmpty());
assertEquals(4, result.size());
assertEquals(4, processVariablesQuery.count());
for (VariableInstance var : result) {
assertEquals("string", var.getTypeName());
if (var.getName().equals("myVar")) {
assertEquals("myVar", var.getName());
assertEquals("test123", var.getValue());
} else if (var.getName().equals("stringVar")) {
assertEquals("stringVar", var.getName());
assertEquals("test", var.getValue());
} else {
fail("An unexpected variable '" + var.getName() + "' was found with value " + var.getValue());
}
}
// then (task variables)
result = taskVariablesQuery.list();
assertFalse(result.isEmpty());
assertEquals(2, result.size());
assertEquals(2, taskVariablesQuery.count());
for (VariableInstance var : result) {
assertEquals("string", var.getTypeName());
if (var.getName().equals("taskVariable")) {
assertEquals("taskVariable", var.getName());