use of org.camunda.bpm.engine.history.HistoricVariableInstance in project camunda-bpm-platform by camunda.
the class TransientVariableTest method testMessageCorrelationWithTransientVariable.
@Test
public void testMessageCorrelationWithTransientVariable() {
// given
BpmnModelInstance instance = Bpmn.createExecutableProcess("process").startEvent().intermediateCatchEvent().message("message").scriptTask("scriptTask").scriptFormat("javascript").camundaResultVariable("abc").scriptText("execution.setVariable('abc', blob);").endEvent().done();
testRule.deploy(instance);
runtimeService.startProcessInstanceByKey("process", Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", false)));
// when
VariableMap correlationKeys = Variables.createVariables().putValueTyped("foo", Variables.stringValue("foo", true));
VariableMap variables = Variables.createVariables().putValueTyped("blob", Variables.stringValue("blob", true));
runtimeService.correlateMessage("message", correlationKeys, variables);
// then
VariableInstance variableInstance = runtimeService.createVariableInstanceQuery().singleResult();
assertNull(variableInstance);
HistoricVariableInstance historicVariableInstance = historyService.createHistoricVariableInstanceQuery().variableName("abc").singleResult();
assertNotNull(historicVariableInstance);
assertEquals("blob", historicVariableInstance.getValue());
}
use of org.camunda.bpm.engine.history.HistoricVariableInstance in project camunda-bpm-platform by camunda.
the class UpdateHistoricValueDelegate method execute.
public void execute(DelegateExecution execution) throws Exception {
HistoryService historyService = execution.getProcessEngineServices().getHistoryService();
HistoricVariableInstance variableInstance = historyService.createHistoricVariableInstanceQuery().variableName("listVar").singleResult();
List<String> list = (List<String>) variableInstance.getValue();
// implicit update of the list, should not trigger an update
// of the value since we deal with historic variables
list.add(NEW_ELEMENT);
}
use of org.camunda.bpm.engine.history.HistoricVariableInstance in project camunda-bpm-platform by camunda.
the class UpdateHistoricDetailValueDelegate method execute.
public void execute(DelegateExecution execution) throws Exception {
HistoryService historyService = execution.getProcessEngineServices().getHistoryService();
HistoricVariableInstance variableInstance = historyService.createHistoricVariableInstanceQuery().variableName("listVar").singleResult();
HistoricVariableUpdate initialUpdate = (HistoricVariableUpdate) historyService.createHistoricDetailQuery().variableUpdates().variableInstanceId(variableInstance.getId()).orderPartiallyByOccurrence().asc().list().get(0);
List<String> list = (List<String>) initialUpdate.getValue();
// implicit update of the list, should not trigger an update
// of the value since we deal with historic variables
list.add(NEW_ELEMENT);
}
use of org.camunda.bpm.engine.history.HistoricVariableInstance in project camunda-bpm-platform by camunda.
the class HistoricVariableInstanceScopeTest method testSetVariableOnServiceTaskInsideParallelBranch.
@Deployment
public void testSetVariableOnServiceTaskInsideParallelBranch() {
ProcessInstance pi = runtimeService.startProcessInstanceByKey("process");
HistoricVariableInstanceQuery query = historyService.createHistoricVariableInstanceQuery();
assertEquals(1, query.count());
HistoricVariableInstance variable = query.singleResult();
// the variable is in the process instance scope
assertEquals(pi.getId(), variable.getActivityInstanceId());
assertProcessEnded(pi.getId());
}
use of org.camunda.bpm.engine.history.HistoricVariableInstance in project camunda-bpm-platform by camunda.
the class HistoricVariableInstanceScopeTest method testSetVariableLocalOnUserTask.
@Deployment(resources = { "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml" })
public void testSetVariableLocalOnUserTask() {
ProcessInstance pi = runtimeService.startProcessInstanceByKey("oneTaskProcess");
Task task = taskService.createTaskQuery().singleResult();
assertNotNull(task);
taskService.setVariableLocal(task.getId(), "testVar", "testValue");
ExecutionEntity taskExecution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
assertNotNull(taskExecution);
HistoricVariableInstanceQuery query = historyService.createHistoricVariableInstanceQuery();
assertEquals(1, query.count());
HistoricVariableInstance variable = query.singleResult();
assertNotNull(variable);
// the variable is in the task scope
assertEquals(taskExecution.getActivityInstanceId(), variable.getActivityInstanceId());
taskService.complete(task.getId());
assertProcessEnded(pi.getId());
}
Aggregations