protected void migrateHistory(DelegateExecution execution) { if (activityInstance.getId().equals(activityInstance.getProcessInstanceId())) { migrateProcessInstanceHistory(execution); } else { migrateActivityInstanceHistory(execution); } }
protected void migrateHistory(DelegateExecution execution) { if (activityInstance.getId().equals(activityInstance.getProcessInstanceId())) { migrateProcessInstanceHistory(execution); } else { migrateActivityInstanceHistory(execution); } }
public ExecutionEntity getExecution(ActivityInstance activityInstance) { ScopeImpl scope = null; if (activityInstance.getId().equals(activityInstance.getProcessInstanceId())) { scope = processDefinition; } else { scope = processDefinition.findActivity(activityInstance.getActivityId()); } return intersect( getExecutions(scope), activityInstance.getExecutionIds()); }
public ExecutionEntity getExecution(ActivityInstance activityInstance) { ScopeImpl scope = null; if (activityInstance.getId().equals(activityInstance.getProcessInstanceId())) { scope = processDefinition; } else { scope = processDefinition.findActivity(activityInstance.getActivityId()); } return intersect( getExecutions(scope), activityInstance.getExecutionIds()); }
public static ActivityInstanceDto fromActivityInstance(ActivityInstance instance) { ActivityInstanceDto result = new ActivityInstanceDto(); result.id = instance.getId(); result.parentActivityInstanceId = instance.getParentActivityInstanceId(); result.activityId = instance.getActivityId(); result.activityType = instance.getActivityType(); result.processInstanceId = instance.getProcessInstanceId(); result.processDefinitionId = instance.getProcessDefinitionId(); result.childActivityInstances = fromListOfActivityInstance(instance.getChildActivityInstances()); result.childTransitionInstances = TransitionInstanceDto.fromListOfTransitionInstance(instance.getChildTransitionInstances()); result.executionIds = instance.getExecutionIds(); result.activityName = instance.getActivityName(); return result; }
public static ActivityInstanceDto fromActivityInstance(ActivityInstance instance) { ActivityInstanceDto result = new ActivityInstanceDto(); result.id = instance.getId(); result.parentActivityInstanceId = instance.getParentActivityInstanceId(); result.activityId = instance.getActivityId(); result.activityType = instance.getActivityType(); result.processInstanceId = instance.getProcessInstanceId(); result.processDefinitionId = instance.getProcessDefinitionId(); result.childActivityInstances = fromListOfActivityInstance(instance.getChildActivityInstances()); result.childTransitionInstances = TransitionInstanceDto.fromListOfTransitionInstance(instance.getChildTransitionInstances()); result.executionIds = instance.getExecutionIds(); result.activityName = instance.getActivityName(); return result; }
@Test public void testStartAfter() { DeploymentWithDefinitions deployment = testRule.deploy(instance); ProcessDefinition definition = deployment.getDeployedProcessDefinitions().get(0); List<String> processInstanceIds = helper.startInstances("process1", 2); runtimeService.createModification(definition.getId()).startAfterActivity("user2").processInstanceIds(processInstanceIds).execute(); for (String processInstanceId : processInstanceIds) { ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(definition.getId()).activity("user1").activity("user3").done()); } }
@Test public void testStartBeforeAndCancelAll() { DeploymentWithDefinitions deployment = testRule.deploy(instance); ProcessDefinition definition = deployment.getDeployedProcessDefinitions().get(0); List<String> processInstanceIds = helper.startInstances("process1", 2); runtimeService.createModification(definition.getId()).cancelAllForActivity("user1").startBeforeActivity("user2").processInstanceIds(processInstanceIds).execute(); for (String processInstanceId : processInstanceIds) { ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(definition.getId()).activity("user2").done()); } }
@Test public void testStartTransition() { DeploymentWithDefinitions deployment = testRule.deploy(instance); ProcessDefinition definition = deployment.getDeployedProcessDefinitions().get(0); List<String> processInstanceIds = helper.startInstances("process1", 2); runtimeService.createModification(definition.getId()).startTransition("seq").processInstanceIds(processInstanceIds).execute(); for (String processInstanceId : processInstanceIds) { ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(definition.getId()).activity("user1").activity("user2").done()); } }
@Test public void testStartBefore() { DeploymentWithDefinitions deployment = testRule.deploy(instance); ProcessDefinition definition = deployment.getDeployedProcessDefinitions().get(0); List<String> processInstanceIds = helper.startInstances("process1", 2); runtimeService.createModification(definition.getId()).startBeforeActivity("user2").processInstanceIds(processInstanceIds).execute(); for (String processInstanceId : processInstanceIds) { ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure( describeActivityInstanceTree( definition.getId()) .activity("user1") .activity("user2") .done()); } }
@Deployment(resources = PARALLEL_GATEWAY_PROCESS) public void testCancellation() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("parallelGateway"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstance.getId()).cancelActivityInstance(getInstanceIdForActivity(tree, "task1")).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree).matches(describeExecutionTree("task2").scope().done()); // complete the process completeTasksInOrder("task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testCancellationAndStartBefore() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); runtimeService.createProcessInstanceModification(processInstance.getId()).cancelActivityInstance(getInstanceIdForActivity(tree, "task1")) .startBeforeActivity("task2").execute(); ActivityInstance activityInstanceTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(activityInstanceTree); assertEquals(processInstanceId, activityInstanceTree.getProcessInstanceId()); assertThat(activityInstanceTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree).matches(describeExecutionTree("task2").scope().done()); completeTasksInOrder("task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testCancellationAndStartBefore() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId()); Batch modificationBatch = runtimeService.createProcessInstanceModification(processInstance.getId()) .cancelActivityInstance(getInstanceIdForActivity(tree, "task1")) .startBeforeActivity("task2") .executeAsync(); assertNotNull(modificationBatch); executeSeedAndBatchJobs(modificationBatch); ActivityInstance activityInstanceTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(activityInstanceTree); assertEquals(processInstanceId, activityInstanceTree.getProcessInstanceId()); assertThat(activityInstanceTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree).matches(describeExecutionTree("task2").scope().done()); completeTasksInOrder("task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartTransition() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); runtimeService.createProcessInstanceModification(processInstance.getId()).startTransition("flow4").execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task2").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartAfter() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); runtimeService.createProcessInstanceModification(processInstance.getId()).startAfterActivity("theStart").execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task1").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task1").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task1"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBefore() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task2").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartTransitionCase2() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); runtimeService.createProcessInstanceModification(processInstance.getId()).startTransition("flow2").execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task1").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task1").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task1"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartTransitionWithAncestorInstanceId() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstanceId); runtimeService.createProcessInstanceModification(processInstance.getId()).startTransition("flow4", tree.getId()).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task2").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBeforeWithAncestorInstanceId() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); String processInstanceId = processInstance.getId(); ActivityInstance tree = runtimeService.getActivityInstance(processInstanceId); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2", tree.getId()).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree) .matches(describeExecutionTree(null).scope().child("task1").concurrent().noScope().up().child("task2").concurrent().noScope().done()); assertEquals(2, taskService.createTaskQuery().count()); // complete the process completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstanceId); }
@Deployment(resources = ONE_SCOPE_TASK_PROCESS) public void testScopeTaskStartBefore() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); String processInstanceId = processInstance.getId(); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("theTask").execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstanceId); assertNotNull(updatedTree); assertEquals(processInstanceId, updatedTree.getProcessInstanceId()); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("theTask").activity("theTask").done()); ExecutionTree executionTree = ExecutionTree.forExecution(processInstanceId, processEngine); assertThat(executionTree).matches(describeExecutionTree(null).scope().child(null).concurrent().noScope().child("theTask").scope().up().up().child(null) .concurrent().noScope().child("theTask").scope().done()); assertEquals(2, taskService.createTaskQuery().count()); completeTasksInOrder("theTask", "theTask"); assertProcessEnded(processInstanceId); }