inOrder.verify(mockModificationBuilder).startBeforeActivity("activityId"); verify(mockModificationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.stringValue("valueLocal"))); verify(mockModificationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.stringValue("value"))); verify(mockModificationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(74)));
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBeforeWithVariables() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue").setVariables(Variables.createVariables().putValue("procInstMapVar", "procInstMapValue")) .setVariablesLocal(Variables.createVariables().putValue("localMapVar", "localMapValue")).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.getId()); assertNotNull(updatedTree); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ActivityInstance task2Instance = getChildInstanceForActivity(updatedTree, "task2"); assertNotNull(task2Instance); assertEquals(1, task2Instance.getExecutionIds().length); String task2ExecutionId = task2Instance.getExecutionIds()[0]; assertEquals(4, runtimeService.createVariableInstanceQuery().count()); assertEquals("procInstValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstVar")); assertEquals("localValue", runtimeService.getVariableLocal(task2ExecutionId, "localVar")); assertEquals("procInstMapValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstMapVar")); assertEquals("localMapValue", runtimeService.getVariableLocal(task2ExecutionId, "localMapVar")); completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstance.getId()); }
@Deployment(resources = TRANSACTION_WITH_COMPENSATION_PROCESS) public void testStartAdditionalCompensatingTaskAndCompleteNewCompensatingTask() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess"); completeTasksInOrder("userTask"); Task firstUndoTask = taskService.createTaskQuery().taskDefinitionKey("undoTask").singleResult(); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("undoTask").setVariableLocal("new", true).execute(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); assertThat(tree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).beginScope("tx").activity("txEnd").activity("undoTask") .activity("undoTask").done()); String taskExecutionId = runtimeService.createExecutionQuery().variableValueEquals("new", true).singleResult().getId(); Task secondUndoTask = taskService.createTaskQuery().executionId(taskExecutionId).singleResult(); assertNotNull(secondUndoTask); assertNotSame(firstUndoTask.getId(), secondUndoTask.getId()); taskService.complete(secondUndoTask.getId()); tree = runtimeService.getActivityInstance(processInstance.getId()); assertThat(tree) .hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).beginScope("tx").activity("txEnd").activity("undoTask").done()); completeTasksInOrder("undoTask", "afterCancel"); assertProcessEnded(processInstance.getId()); }
.startBeforeActivity("innerTask") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startBeforeActivity("task2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startTransition("flow2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startBeforeActivity("task2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBeforeWithVariables() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue").setVariables(Variables.createVariables().putValue("procInstMapVar", "procInstMapValue")) .setVariablesLocal(Variables.createVariables().putValue("localMapVar", "localMapValue")).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.getId()); assertNotNull(updatedTree); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ActivityInstance task2Instance = getChildInstanceForActivity(updatedTree, "task2"); assertNotNull(task2Instance); assertEquals(1, task2Instance.getExecutionIds().length); String task2ExecutionId = task2Instance.getExecutionIds()[0]; assertEquals(4, runtimeService.createVariableInstanceQuery().count()); assertEquals("procInstValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstVar")); assertEquals("localValue", runtimeService.getVariableLocal(task2ExecutionId, "localVar")); assertEquals("procInstMapValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstMapVar")); assertEquals("localMapValue", runtimeService.getVariableLocal(task2ExecutionId, "localMapVar")); completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstance.getId()); }
@Deployment(resources = TRANSACTION_WITH_COMPENSATION_PROCESS) public void testStartAdditionalCompensatingTaskAndCompleteNewCompensatingTask() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testProcess"); completeTasksInOrder("userTask"); Task firstUndoTask = taskService.createTaskQuery().taskDefinitionKey("undoTask").singleResult(); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("undoTask").setVariableLocal("new", true).execute(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); assertThat(tree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).beginScope("tx").activity("txEnd").activity("undoTask") .activity("undoTask").done()); String taskExecutionId = runtimeService.createExecutionQuery().variableValueEquals("new", true).singleResult().getId(); Task secondUndoTask = taskService.createTaskQuery().executionId(taskExecutionId).singleResult(); assertNotNull(secondUndoTask); assertNotSame(firstUndoTask.getId(), secondUndoTask.getId()); taskService.complete(secondUndoTask.getId()); tree = runtimeService.getActivityInstance(processInstance.getId()); assertThat(tree) .hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).beginScope("tx").activity("txEnd").activity("undoTask").done()); completeTasksInOrder("undoTask", "afterCancel"); assertProcessEnded(processInstance.getId()); }
.startBeforeActivity("innerTask") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startTransition("flow2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startBeforeActivity("task2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();
.startBeforeActivity("task2") .setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue") .execute();