public String getRootProcessInstanceId() { if (isProcessInstanceExecution()) { return rootProcessInstanceId; } else { ExecutionEntity processInstance = getProcessInstance(); return processInstance.rootProcessInstanceId; } }
protected ExecutionEntity filterProcessInstance(List<ExecutionEntity> executionList) { for (ExecutionEntity execution : executionList) { if (execution.isProcessInstanceExecution()) { return execution; } } throw new ProcessEngineException("Could not determine process instance execution"); }
protected ExecutionEntity filterProcessInstance(List<ExecutionEntity> executionList) { for (ExecutionEntity execution : executionList) { if (execution.isProcessInstanceExecution()) { return execution; } } throw new ProcessEngineException("Could not determine process instance execution"); }
public String getRootProcessInstanceId() { if (isProcessInstanceExecution()) { return rootProcessInstanceId; } else { ExecutionEntity processInstance = getProcessInstance(); return processInstance.rootProcessInstanceId; } }
@Override public String toString() { if (isProcessInstanceExecution()) { return "ProcessInstance[" + getToStringIdentity() + "]"; } else { return (isConcurrent ? "Concurrent" : "") + (isScope ? "Scope" : "") + "Execution[" + getToStringIdentity() + "]"; } }
@Override public String toString() { if (isProcessInstanceExecution()) { return "ProcessInstance[" + getToStringIdentity() + "]"; } else { return (isConcurrent ? "Concurrent" : "") + (isScope ? "Scope" : "") + "Execution[" + getToStringIdentity() + "]"; } }
@Override public ProcessInstanceStartContext getProcessInstanceStartContext() { if (isProcessInstanceExecution()) { if (startContext == null) { ActivityImpl activity = getActivity(); startContext = new ProcessInstanceStartContext(activity); } } return super.getProcessInstanceStartContext(); }
@Override public ProcessInstanceStartContext getProcessInstanceStartContext() { if (isProcessInstanceExecution()) { if (startContext == null) { ActivityImpl activity = getActivity(); startContext = new ProcessInstanceStartContext(activity); } } return super.getProcessInstanceStartContext(); }
protected void createDefaultAuthorizations(ExecutionEntity execution) { if(execution.isProcessInstanceExecution() && isAuthorizationEnabled()) { ResourceAuthorizationProvider provider = getResourceAuthorizationProvider(); AuthorizationEntity[] authorizations = provider.newProcessInstance(execution); saveDefaultAuthorizations(authorizations); } }
public void deleteExecution(ExecutionEntity execution) { getDbEntityManager().delete(execution); if (execution.isProcessInstanceExecution()) { deleteAuthorizations(Resources.PROCESS_INSTANCE, execution.getProcessInstanceId()); } }
protected void createDefaultAuthorizations(ExecutionEntity execution) { if(execution.isProcessInstanceExecution() && isAuthorizationEnabled()) { ResourceAuthorizationProvider provider = getResourceAuthorizationProvider(); AuthorizationEntity[] authorizations = provider.newProcessInstance(execution); saveDefaultAuthorizations(authorizations); } }
public void deleteExecution(ExecutionEntity execution) { getDbEntityManager().delete(execution); if (execution.isProcessInstanceExecution()) { deleteAuthorizations(Resources.PROCESS_INSTANCE, execution.getProcessInstanceId()); } }
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()); } } }
@Override @SuppressWarnings("unchecked") public void initialize() { LOG.initializeExecution(this); ScopeImpl scope = getScopeActivity(); ensureParentInitialized(); List<VariableDeclaration> variableDeclarations = (List<VariableDeclaration>) scope.getProperty(BpmnParse.PROPERTYNAME_VARIABLE_DECLARATIONS); if (variableDeclarations != null) { for (VariableDeclaration variableDeclaration : variableDeclarations) { variableDeclaration.initialize(this, parent); } } if (isProcessInstanceExecution()) { String initiatorVariableName = (String) processDefinition.getProperty(BpmnParse.PROPERTYNAME_INITIATOR_VARIABLE_NAME); if (initiatorVariableName != null) { String authenticatedUserId = Context.getCommandContext().getAuthenticatedUserId(); setVariable(initiatorVariableName, authenticatedUserId); } } // create event subscriptions for the current scope for (EventSubscriptionDeclaration declaration : EventSubscriptionDeclaration.getDeclarationsForScope(scope).values()) { if(!declaration.isStartEvent()) { declaration.createSubscriptionForExecution(this); } } }
@Override @SuppressWarnings("unchecked") public void initialize() { LOG.initializeExecution(this); ScopeImpl scope = getScopeActivity(); ensureParentInitialized(); List<VariableDeclaration> variableDeclarations = (List<VariableDeclaration>) scope.getProperty(BpmnParse.PROPERTYNAME_VARIABLE_DECLARATIONS); if (variableDeclarations != null) { for (VariableDeclaration variableDeclaration : variableDeclarations) { variableDeclaration.initialize(this, parent); } } if (isProcessInstanceExecution()) { String initiatorVariableName = (String) processDefinition.getProperty(BpmnParse.PROPERTYNAME_INITIATOR_VARIABLE_NAME); if (initiatorVariableName != null) { String authenticatedUserId = Context.getCommandContext().getAuthenticatedUserId(); setVariable(initiatorVariableName, authenticatedUserId); } } // create event subscriptions for the current scope for (EventSubscriptionDeclaration declaration : EventSubscriptionDeclaration.getDeclarationsForScope(scope).values()) { if(!declaration.isStartEvent()) { declaration.createSubscriptionForExecution(this); } } }
public void startWithFormProperties(VariableMap properties) { setRootProcessInstanceId(getProcessInstanceId()); provideTenantId(properties); if (isProcessInstanceExecution()) { ActivityImpl initial = processDefinition.getInitial(); ProcessInstanceStartContext processInstanceStartContext = getProcessInstanceStartContext(); if (processInstanceStartContext != null) { initial = processInstanceStartContext.getInitial(); } FormPropertyStartContext formPropertyStartContext = new FormPropertyStartContext(initial); formPropertyStartContext.setFormProperties(properties); startContext = formPropertyStartContext; initialize(); initializeTimerDeclarations(); fireHistoricProcessStartEvent(); } performOperation(PvmAtomicOperation.PROCESS_START); }
public void startWithFormProperties(VariableMap properties) { setRootProcessInstanceId(getProcessInstanceId()); provideTenantId(properties); if (isProcessInstanceExecution()) { ActivityImpl initial = processDefinition.getInitial(); ProcessInstanceStartContext processInstanceStartContext = getProcessInstanceStartContext(); if (processInstanceStartContext != null) { initial = processInstanceStartContext.getInitial(); } FormPropertyStartContext formPropertyStartContext = new FormPropertyStartContext(initial); formPropertyStartContext.setFormProperties(properties); startContext = formPropertyStartContext; initialize(); initializeTimerDeclarations(); fireHistoricProcessStartEvent(); } performOperation(PvmAtomicOperation.PROCESS_START); }
public void testNullBusinessKeyForChildExecutions() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(CONCURRENT_PROCESS_KEY, "76545"); List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(processInstance.getId()).list(); for (Execution e : executions) { if (((ExecutionEntity) e).isProcessInstanceExecution()) { assertEquals("76545", ((ExecutionEntity) e).getBusinessKeyWithoutCascade()); } else { assertNull(((ExecutionEntity) e).getBusinessKeyWithoutCascade()); } } }
@Deployment(resources={"org/camunda/bpm/engine/test/api/runtime/concurrentExecution.bpmn20.xml"}) public void testExecutionQueryWithProcessVariable() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("x", "parent"); ProcessInstance pi = runtimeService.startProcessInstanceByKey("concurrent", variables); List<Execution> concurrentExecutions = runtimeService.createExecutionQuery().processInstanceId(pi.getId()).list(); assertEquals(3, concurrentExecutions.size()); for (Execution execution : concurrentExecutions) { if (!((ExecutionEntity)execution).isProcessInstanceExecution()) { // only the concurrent executions, not the root one, would be cooler to query that directly, see http://jira.codehaus.org/browse/ACT-1373 runtimeService.setVariableLocal(execution.getId(), "x", "child"); } } assertEquals(2, runtimeService.createExecutionQuery().processInstanceId(pi.getId()).variableValueEquals("x", "child").count()); assertEquals(1, runtimeService.createExecutionQuery().processInstanceId(pi.getId()).variableValueEquals("x", "parent").count()); assertEquals(3, runtimeService.createExecutionQuery().processInstanceId(pi.getId()).processVariableValueEquals("x", "parent").count()); assertEquals(3, runtimeService.createExecutionQuery().processInstanceId(pi.getId()).processVariableValueNotEquals("x", "xxx").count()); }