public String getSingleExecutionIdForActivity(ActivityInstance activityInstance, String activityId) { ActivityInstance singleInstance = getSingleActivityInstance(activityInstance, activityId); String[] executionIds = singleInstance.getExecutionIds(); if (executionIds.length == 1) { return executionIds[0]; } else { throw new RuntimeException("There is more than one execution assigned to activity instance " + singleInstance.getId()); } }
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()); }
Set<String> activityInstanceExecutions = new HashSet<String>(Arrays.asList(activityInstance.getExecutionIds())); for (String activityInstanceExecutionId : activityInstance.getExecutionIds()) { ExecutionEntity execution = Context.getCommandContext() .getExecutionManager()
Set<String> activityInstanceExecutions = new HashSet<String>(Arrays.asList(activityInstance.getExecutionIds())); for (String activityInstanceExecutionId : activityInstance.getExecutionIds()) { ExecutionEntity execution = Context.getCommandContext() .getExecutionManager()
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; }
@Deployment public void testCatchErrorThrownBySignallableActivityBehaviour() { String procId = runtimeService.startProcessInstanceByKey("catchErrorThrownBySignallableActivityBehaviour").getId(); assertNotNull("Didn't get a process id from runtime service", procId); ActivityInstance processActivityInstance = runtimeService.getActivityInstance(procId); ActivityInstance serviceTask = processActivityInstance.getChildActivityInstances()[0]; assertEquals("Expected the service task to be active after starting the process", "serviceTask", serviceTask.getActivityId()); runtimeService.signal(serviceTask.getExecutionIds()[0]); assertThatErrorHasBeenCaught(procId); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/externaltask/oneExternalTaskProcess.bpmn20.xml") public void testQueryByExecutionId() { // given List<ProcessInstance> processInstances = startInstancesByKey("oneExternalTaskProcess", 3); ProcessInstance firstInstance = processInstances.get(0); ActivityInstance externalTaskActivityInstance = runtimeService .getActivityInstance(firstInstance.getId()) .getActivityInstances("externalTask")[0]; String executionId = externalTaskActivityInstance.getExecutionIds()[0]; // when ExternalTask externalTask = externalTaskService .createExternalTaskQuery() .executionId(executionId) .singleResult(); // then assertNotNull(externalTask); assertEquals(executionId, externalTask.getExecutionId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/externaltask/oneExternalTaskProcess.bpmn20.xml") public void testFetch() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneExternalTaskProcess"); // when List<LockedExternalTask> externalTasks = externalTaskService.fetchAndLock(1, WORKER_ID) .topic(TOPIC_NAME, LOCK_TIME) .execute(); // then assertEquals(1, externalTasks.size()); LockedExternalTask task = externalTasks.get(0); assertNotNull(task.getId()); assertEquals(processInstance.getId(), task.getProcessInstanceId()); assertEquals(processInstance.getProcessDefinitionId(), task.getProcessDefinitionId()); assertEquals("externalTask", task.getActivityId()); assertEquals("oneExternalTaskProcess", task.getProcessDefinitionKey()); assertEquals(TOPIC_NAME, task.getTopicName()); ActivityInstance activityInstance = runtimeService .getActivityInstance(processInstance.getId()) .getActivityInstances("externalTask")[0]; assertEquals(activityInstance.getId(), task.getActivityInstanceId()); assertEquals(activityInstance.getExecutionIds()[0], task.getExecutionId()); AssertUtil.assertEqualsSecondPrecision(nowPlus(LOCK_TIME), task.getLockExpirationTime()); assertEquals(WORKER_ID, task.getWorkerId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/externaltask/twoExternalTaskWithPriorityProcess.bpmn20.xml") public void testFetchWithPriority() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("twoExternalTaskWithPriorityProcess"); // when List<LockedExternalTask> externalTasks = externalTaskService.fetchAndLock(1, WORKER_ID, true) .topic(TOPIC_NAME, LOCK_TIME) .execute(); // then assertEquals(1, externalTasks.size()); LockedExternalTask task = externalTasks.get(0); assertNotNull(task.getId()); assertEquals(processInstance.getId(), task.getProcessInstanceId()); assertEquals(processInstance.getProcessDefinitionId(), task.getProcessDefinitionId()); assertEquals("externalTaskWithPrio", task.getActivityId()); assertEquals("twoExternalTaskWithPriorityProcess", task.getProcessDefinitionKey()); assertEquals(TOPIC_NAME, task.getTopicName()); assertEquals(7, task.getPriority()); ActivityInstance activityInstance = runtimeService .getActivityInstance(processInstance.getId()) .getActivityInstances("externalTaskWithPrio")[0]; assertEquals(activityInstance.getId(), task.getActivityInstanceId()); assertEquals(activityInstance.getExecutionIds()[0], task.getExecutionId()); AssertUtil.assertEqualsSecondPrecision(nowPlus(LOCK_TIME), task.getLockExpirationTime()); assertEquals(WORKER_ID, task.getWorkerId()); }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) @Test public void testActivityInstancePopulated() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess", "business-key"); // validate properties of root ActivityInstance rootActInstance = runtimeService.getActivityInstance(processInstance.getId()); assertEquals(processInstance.getId(), rootActInstance.getProcessInstanceId()); assertEquals(processInstance.getProcessDefinitionId(), rootActInstance.getProcessDefinitionId()); assertEquals(processInstance.getId(), rootActInstance.getProcessInstanceId()); assertTrue(rootActInstance.getExecutionIds()[0].equals(processInstance.getId())); assertEquals(rootActInstance.getProcessDefinitionId(), rootActInstance.getActivityId()); assertNull(rootActInstance.getParentActivityInstanceId()); assertEquals("processDefinition", rootActInstance.getActivityType()); // validate properties of child: Task task = taskService.createTaskQuery().singleResult(); ActivityInstance childActivityInstance = rootActInstance.getChildActivityInstances()[0]; assertEquals(processInstance.getId(), childActivityInstance.getProcessInstanceId()); assertEquals(processInstance.getProcessDefinitionId(), childActivityInstance.getProcessDefinitionId()); assertEquals(processInstance.getId(), childActivityInstance.getProcessInstanceId()); assertTrue(childActivityInstance.getExecutionIds()[0].equals(task.getExecutionId())); assertEquals("theTask", childActivityInstance.getActivityId()); assertEquals(rootActInstance.getId(), childActivityInstance.getParentActivityInstanceId()); assertEquals("userTask", childActivityInstance.getActivityType()); assertNotNull(childActivityInstance.getChildActivityInstances()); assertNotNull(childActivityInstance.getChildTransitionInstances()); assertEquals(0, childActivityInstance.getChildActivityInstances().length); assertEquals(0, childActivityInstance.getChildTransitionInstances().length); }
public String getSingleExecutionIdForActivity(ActivityInstance activityInstance, String activityId) { ActivityInstance singleInstance = getSingleActivityInstance(activityInstance, activityId); String[] executionIds = singleInstance.getExecutionIds(); if (executionIds.length == 1) { return executionIds[0]; } else { throw new RuntimeException("There is more than one execution assigned to activity instance " + singleInstance.getId()); } }
@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()); }
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()); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/externaltask/externalTaskPriorityExpression.bpmn20.xml") public void testFetchWithPriorityExpression() { // given ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("twoExternalTaskWithPriorityProcess", Variables.createVariables().putValue("priority", 18)); // when List<LockedExternalTask> externalTasks = externalTaskService.fetchAndLock(1, WORKER_ID, true) .topic(TOPIC_NAME, LOCK_TIME) .execute(); // then assertEquals(1, externalTasks.size()); LockedExternalTask task = externalTasks.get(0); assertNotNull(task.getId()); assertEquals(processInstance.getId(), task.getProcessInstanceId()); assertEquals(processInstance.getProcessDefinitionId(), task.getProcessDefinitionId()); assertEquals("externalTaskWithPrio", task.getActivityId()); assertEquals("twoExternalTaskWithPriorityProcess", task.getProcessDefinitionKey()); assertEquals(TOPIC_NAME, task.getTopicName()); assertEquals(18, task.getPriority()); ActivityInstance activityInstance = runtimeService .getActivityInstance(processInstance.getId()) .getActivityInstances("externalTaskWithPrio")[0]; assertEquals(activityInstance.getId(), task.getActivityInstanceId()); assertEquals(activityInstance.getExecutionIds()[0], task.getExecutionId()); AssertUtil.assertEqualsSecondPrecision(nowPlus(LOCK_TIME), task.getLockExpirationTime()); assertEquals(WORKER_ID, task.getWorkerId()); }
private Job job(ActivityInstance activityInstance, String activityId) { for(Job job: jobQuery().list()) { } if (activityInstance.getActivityId().equals(activityId)) return jobQuery().executionId(activityInstance.getExecutionIds()[0]).singleResult(); for (ActivityInstance nextActivityInstance: Lists.newArrayList(activityInstance.getChildActivityInstances())) { Job job = job(nextActivityInstance, activityId); if (job != null) return job; } return null; }
assertEquals(catchEventInstance.getExecutionIds()[0], job.getExecutionId());
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; }
@Deployment public void testCatchErrorThrownBySignallableActivityBehaviour() { String procId = runtimeService.startProcessInstanceByKey("catchErrorThrownBySignallableActivityBehaviour").getId(); assertNotNull("Didn't get a process id from runtime service", procId); ActivityInstance processActivityInstance = runtimeService.getActivityInstance(procId); ActivityInstance serviceTask = processActivityInstance.getChildActivityInstances()[0]; assertEquals("Expected the service task to be active after starting the process", "serviceTask", serviceTask.getActivityId()); runtimeService.signal(serviceTask.getExecutionIds()[0]); assertThatErrorHasBeenCaught(procId); }