protected HistoricActivityInstanceEventEntity loadActivityInstanceEventEntity(ExecutionEntity execution) { final String activityInstanceId = execution.getActivityInstanceId(); HistoricActivityInstanceEventEntity cachedEntity = findInCache(HistoricActivityInstanceEventEntity.class, activityInstanceId); if(cachedEntity != null) { return cachedEntity; } else { return newActivityInstanceEventEntity(execution); } }
protected HistoricActivityInstanceEventEntity loadActivityInstanceEventEntity(ExecutionEntity execution) { final String activityInstanceId = execution.getActivityInstanceId(); HistoricActivityInstanceEventEntity cachedEntity = findInCache(HistoricActivityInstanceEventEntity.class, activityInstanceId); if(cachedEntity != null) { return cachedEntity; } else { return newActivityInstanceEventEntity(execution); } }
public Void call() { ProcessInstanceModificationBuilderImpl builder = (ProcessInstanceModificationBuilderImpl) new ProcessInstanceModificationBuilderImpl(commandContext, superExecution.getProcessInstanceId(), deleteReason) .cancelActivityInstance(superExecution.getActivityInstanceId()); builder.execute(false, skipCustomListeners, skipIoMappings); return null; } });
public Void call() { ProcessInstanceModificationBuilderImpl builder = (ProcessInstanceModificationBuilderImpl) new ProcessInstanceModificationBuilderImpl(commandContext, superExecution.getProcessInstanceId(), deleteReason) .cancelActivityInstance(superExecution.getActivityInstanceId()); builder.execute(false, skipCustomListeners, skipIoMappings); return null; } });
protected void handleIncident(MigratingInstanceParseContext parseContext, IncidentEntity incident) { MigratingActivityInstance owningInstance = parseContext.getMigratingActivityInstanceById(incident.getExecution().getActivityInstanceId()); if (owningInstance != null) { parseContext.consume(incident); MigratingIncident migratingIncident = new MigratingIncident(incident, owningInstance.getTargetScope()); owningInstance.addMigratingDependentInstance(migratingIncident); } }
protected void handleIncident(MigratingInstanceParseContext parseContext, IncidentEntity incident) { MigratingActivityInstance owningInstance = parseContext.getMigratingActivityInstanceById(incident.getExecution().getActivityInstanceId()); if (owningInstance != null) { parseContext.consume(incident); MigratingIncident migratingIncident = new MigratingIncident(incident, owningInstance.getTargetScope()); owningInstance.addMigratingDependentInstance(migratingIncident); } }
protected void assignExecutionsToActivities(List<ExecutionEntity> leaves) { for (ExecutionEntity leaf : leaves) { ScopeImpl activity = leaf.getActivity(); if (activity != null) { if (leaf.getActivityInstanceId() != null) { EnsureUtil.ensureNotNull("activity", activity); submitExecution(leaf, activity); } mergeScopeExecutions(leaf); } else if (leaf.isProcessInstanceExecution()) { submitExecution(leaf, leaf.getProcessDefinition()); } } }
protected void assignExecutionsToActivities(List<ExecutionEntity> leaves) { for (ExecutionEntity leaf : leaves) { ScopeImpl activity = leaf.getActivity(); if (activity != null) { if (leaf.getActivityInstanceId() != null) { EnsureUtil.ensureNotNull("activity", activity); submitExecution(leaf, activity); } mergeScopeExecutions(leaf); } else if (leaf.isProcessInstanceExecution()) { submitExecution(leaf, leaf.getProcessDefinition()); } } }
protected void becomeNonScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity parentExecution = representativeExecution.getParent(); parentExecution.setActivity(representativeExecution.getActivity()); parentExecution.setActivityInstanceId(representativeExecution.getActivityInstanceId()); representativeExecution.remove(); representativeExecution = parentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingNonScopeActivityInstanceBehavior(); }
protected void becomeNonScope() { for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.detachState(); } ExecutionEntity parentExecution = representativeExecution.getParent(); parentExecution.setActivity(representativeExecution.getActivity()); parentExecution.setActivityInstanceId(representativeExecution.getActivityInstanceId()); representativeExecution.remove(); representativeExecution = parentExecution; for (MigratingInstance dependentInstance : migratingDependentInstances) { dependentInstance.attachState(MigratingActivityInstance.this); } instanceBehavior = new MigratingNonScopeActivityInstanceBehavior(); }
protected void initActivityInstanceEvent(HistoricActivityInstanceEventEntity evt, ExecutionEntity execution, HistoryEventType eventType) { PvmScope eventSource = execution.getActivity(); if (eventSource == null) { eventSource = (PvmScope) execution.getEventSource(); } String activityInstanceId = execution.getActivityInstanceId(); String parentActivityInstanceId = null; ExecutionEntity parentExecution = execution.getParent(); if (parentExecution != null && CompensationBehavior.isCompensationThrowing(parentExecution) && execution.getActivity() != null) { parentActivityInstanceId = CompensationBehavior.getParentActivityInstanceId(execution); } else { parentActivityInstanceId = execution.getParentActivityInstanceId(); } initActivityInstanceEvent(evt, execution, eventSource, activityInstanceId, parentActivityInstanceId, eventType); }
protected void initActivityInstanceEvent(HistoricActivityInstanceEventEntity evt, ExecutionEntity execution, HistoryEventType eventType) { PvmScope eventSource = execution.getActivity(); if (eventSource == null) { eventSource = (PvmScope) execution.getEventSource(); } String activityInstanceId = execution.getActivityInstanceId(); String parentActivityInstanceId = null; ExecutionEntity parentExecution = execution.getParent(); if (parentExecution != null && CompensationBehavior.isCompensationThrowing(parentExecution) && execution.getActivity() != null) { parentActivityInstanceId = CompensationBehavior.getParentActivityInstanceId(execution); } else { parentActivityInstanceId = execution.getParentActivityInstanceId(); } initActivityInstanceEvent(evt, execution, eventSource, activityInstanceId, parentActivityInstanceId, eventType); }
protected void setReferenceToProcessInstance(HistoricDecisionInstanceEntity event, ExecutionEntity execution) { event.setProcessDefinitionKey(getProcessDefinitionKey(execution)); event.setProcessDefinitionId(execution.getProcessDefinitionId()); event.setRootProcessInstanceId(execution.getRootProcessInstanceId()); event.setProcessInstanceId(execution.getProcessInstanceId()); event.setExecutionId(execution.getId()); event.setActivityId(execution.getActivityId()); event.setActivityInstanceId(execution.getActivityInstanceId()); }
protected void setReferenceToProcessInstance(HistoricDecisionInstanceEntity event, ExecutionEntity execution) { event.setProcessDefinitionKey(getProcessDefinitionKey(execution)); event.setProcessDefinitionId(execution.getProcessDefinitionId()); event.setRootProcessInstanceId(execution.getRootProcessInstanceId()); event.setProcessInstanceId(execution.getProcessInstanceId()); event.setExecutionId(execution.getId()); event.setActivityId(execution.getActivityId()); event.setActivityInstanceId(execution.getActivityInstanceId()); }
public static ExternalTaskEntity createAndInsert(ExecutionEntity execution, String topic, long priority) { ExternalTaskEntity externalTask = new ExternalTaskEntity(); externalTask.setTopicName(topic); externalTask.setExecutionId(execution.getId()); externalTask.setProcessInstanceId(execution.getProcessInstanceId()); externalTask.setProcessDefinitionId(execution.getProcessDefinitionId()); externalTask.setActivityId(execution.getActivityId()); externalTask.setActivityInstanceId(execution.getActivityInstanceId()); externalTask.setTenantId(execution.getTenantId()); externalTask.setPriority(priority); ProcessDefinitionEntity processDefinition = execution.getProcessDefinition(); externalTask.setProcessDefinitionKey(processDefinition.getKey()); externalTask.insert(); externalTask.produceHistoricExternalTaskCreatedEvent(); return externalTask; }
public static ExternalTaskEntity createAndInsert(ExecutionEntity execution, String topic, long priority) { ExternalTaskEntity externalTask = new ExternalTaskEntity(); externalTask.setTopicName(topic); externalTask.setExecutionId(execution.getId()); externalTask.setProcessInstanceId(execution.getProcessInstanceId()); externalTask.setProcessDefinitionId(execution.getProcessDefinitionId()); externalTask.setActivityId(execution.getActivityId()); externalTask.setActivityInstanceId(execution.getActivityInstanceId()); externalTask.setTenantId(execution.getTenantId()); externalTask.setPriority(priority); ProcessDefinitionEntity processDefinition = execution.getProcessDefinition(); externalTask.setProcessDefinitionKey(processDefinition.getKey()); externalTask.insert(); externalTask.produceHistoricExternalTaskCreatedEvent(); return externalTask; }
public void testExecutionEntitySerialization() throws Exception { ExecutionEntity execution = new ExecutionEntity(); ActivityImpl activityImpl = new ActivityImpl("test", null); activityImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setActivity(activityImpl); ProcessDefinitionImpl processDefinitionImpl = new ProcessDefinitionImpl("test"); processDefinitionImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setProcessDefinition(processDefinitionImpl); TransitionImpl transitionImpl = new TransitionImpl("test", new ProcessDefinitionImpl("test")); transitionImpl.addExecutionListener(new TestExecutionListener()); execution.setTransition(transitionImpl); execution.getProcessInstanceStartContext().setInitial(activityImpl); execution.setSuperExecution(new ExecutionEntity()); execution.setActive(true); execution.setCanceled(false); execution.setBusinessKey("myBusinessKey"); execution.setDeleteReason("no reason"); execution.setActivityInstanceId("123"); execution.setScope(false); byte[] data = writeObject(execution); execution = (ExecutionEntity) readObject(data); assertEquals("myBusinessKey", execution.getBusinessKey()); assertEquals("no reason", execution.getDeleteReason()); assertEquals("123", execution.getActivityInstanceId()); }
public HistoryEvent createFormPropertyUpdateEvt(ExecutionEntity execution, String propertyId, String propertyValue, String taskId) { final IdGenerator idGenerator = Context.getProcessEngineConfiguration().getIdGenerator(); HistoricFormPropertyEventEntity historicFormPropertyEntity = newHistoricFormPropertyEvent(); historicFormPropertyEntity.setId(idGenerator.getNextId()); historicFormPropertyEntity.setEventType(HistoryEventTypes.FORM_PROPERTY_UPDATE.getEventName()); historicFormPropertyEntity.setTimestamp(ClockUtil.getCurrentTime()); historicFormPropertyEntity.setActivityInstanceId(execution.getActivityInstanceId()); historicFormPropertyEntity.setExecutionId(execution.getId()); historicFormPropertyEntity.setProcessDefinitionId(execution.getProcessDefinitionId()); historicFormPropertyEntity.setProcessInstanceId(execution.getProcessInstanceId()); historicFormPropertyEntity.setPropertyId(propertyId); historicFormPropertyEntity.setPropertyValue(propertyValue); historicFormPropertyEntity.setTaskId(taskId); historicFormPropertyEntity.setTenantId(execution.getTenantId()); historicFormPropertyEntity.setUserOperationId(Context.getCommandContext().getOperationId()); historicFormPropertyEntity.setRootProcessInstanceId(execution.getRootProcessInstanceId()); if (isHistoryRemovalTimeStrategyStart()) { provideRemovalTime(historicFormPropertyEntity); } ProcessDefinitionEntity definition = execution.getProcessDefinition(); if (definition != null) { historicFormPropertyEntity.setProcessDefinitionKey(definition.getKey()); } // initialize sequence counter initSequenceCounter(execution, historicFormPropertyEntity); return historicFormPropertyEntity; }
@Deployment public void testSetVariableLocalOnTaskInsideParallelBranch() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("process"); 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(); // the variable is in the user task scope assertEquals(taskExecution.getActivityInstanceId(), variable.getActivityInstanceId()); taskService.complete(task.getId()); assertProcessEnded(pi.getId()); }
@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()); }