Esempio n. 1
0
        public virtual Void execute(CommandContext commandContext)
        {
            ensureNotNull("caseExecutionId", caseExecutionId);

            caseExecution = commandContext.CaseExecutionManager.findCaseExecutionById(caseExecutionId);

            ensureNotNull(typeof(CaseExecutionNotFoundException), "There does not exist any case execution with id: '" + caseExecutionId + "'", "caseExecution", caseExecution);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkUpdateCaseInstance(caseExecution);
            }

            if (variablesDeletions != null && variablesDeletions.Count > 0)
            {
                caseExecution.removeVariables(variablesDeletions);
            }

            if (variablesLocalDeletions != null && variablesLocalDeletions.Count > 0)
            {
                caseExecution.removeVariablesLocal(variablesLocalDeletions);
            }

            if (variables != null && variables.Count > 0)
            {
                caseExecution.Variables = variables;
            }

            if (variablesLocal != null && variablesLocal.Count > 0)
            {
                caseExecution.VariablesLocal = variablesLocal;
            }

            return(null);
        }
Esempio n. 2
0
        public virtual TypedValue execute(CommandContext commandContext)
        {
            ensureNotNull("caseExecutionId", caseExecutionId);
            ensureNotNull("variableName", variableName);

            CaseExecutionEntity caseExecution = commandContext.CaseExecutionManager.findCaseExecutionById(caseExecutionId);

            ensureNotNull(typeof(CaseExecutionNotFoundException), "case execution " + caseExecutionId + " doesn't exist", "caseExecution", caseExecution);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkReadCaseInstance(caseExecution);
            }

            TypedValue value;

            if (isLocal)
            {
                value = caseExecution.getVariableLocalTyped(variableName, deserializeValue);
            }
            else
            {
                value = caseExecution.getVariableTyped(variableName, deserializeValue);
            }

            return(value);
        }
Esempio n. 3
0
 protected internal virtual void fireForceUpdate(CmmnActivityExecution execution)
 {
     if (execution is CaseExecutionEntity)
     {
         CaseExecutionEntity entity = (CaseExecutionEntity)execution;
         entity.forceUpdate();
     }
 }
Esempio n. 4
0
        public override Void execute(CommandContext commandContext)
        {
            base.execute(commandContext);

            CaseExecutionEntity caseExecution = CaseExecution;

            performStateTransition(commandContext, caseExecution);

            return(null);
        }
Esempio n. 5
0
        private CaseExecutionEntity prepareCaseExecution(CaseDefinitionEntity caseDefinitionEntity1)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity caseExecutionEntity = new org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity();
            CaseExecutionEntity caseExecutionEntity = new CaseExecutionEntity();

            caseExecutionEntity.Id             = System.Guid.randomUUID().ToString();
            caseExecutionEntity.CaseDefinition = caseDefinitionEntity1;
            return(caseExecutionEntity);
        }
Esempio n. 6
0
        protected internal override CmmnExecution newCaseInstance()
        {
            CaseExecutionEntity caseInstance = new CaseExecutionEntity();

            if (!string.ReferenceEquals(tenantId, null))
            {
                caseInstance.TenantId = tenantId;
            }

            Context.CommandContext.CaseExecutionManager.insertCaseExecution(caseInstance);
            return(caseInstance);
        }
Esempio n. 7
0
        protected internal virtual string getCaseDefinitionKey(CaseExecutionEntity execution)
        {
            CaseDefinitionEntity definition = (CaseDefinitionEntity)execution.CaseDefinition;

            if (definition != null)
            {
                return(definition.Key);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 8
0
        private static void loggContextSwitchDetails(CaseExecutionEntity execution)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final CoreExecutionContext<? extends org.camunda.bpm.engine.impl.core.instance.CoreExecution> executionContext = Context.getCoreExecutionContext();
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
            CoreExecutionContext <CoreExecution> executionContext = Context.CoreExecutionContext;

            // only log for first atomic op:
            if (executionContext == null || (executionContext.Execution != execution))
            {
                ProcessApplicationManager processApplicationManager = Context.ProcessEngineConfiguration.ProcessApplicationManager;
                LOG.debugNoTargetProcessApplicationFoundForCaseExecution(execution, processApplicationManager);
            }
        }
Esempio n. 9
0
        public virtual CaseInstance execute(CommandContext commandContext)
        {
            ensureAtLeastOneNotNull("caseDefinitionId and caseDefinitionKey are null", caseDefinitionId, caseDefinitionKey);

            CaseDefinitionEntity caseDefinition = find(commandContext);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkCreateCaseInstance(caseDefinition);
            }

            // Start the case instance
            CaseExecutionEntity caseInstance = (CaseExecutionEntity)caseDefinition.createCaseInstance(businessKey);

            caseInstance.create(variables);
            return(caseInstance);
        }
Esempio n. 10
0
        public static ProcessApplicationReference getTargetProcessApplication(CaseExecutionEntity execution)
        {
            if (execution == null)
            {
                return(null);
            }

            ProcessApplicationReference processApplicationForDeployment = getTargetProcessApplication((CaseDefinitionEntity)execution.CaseDefinition);

            // logg application context switch details
            if (LOG.ContextSwitchLoggable && processApplicationForDeployment == null)
            {
                loggContextSwitchDetails(execution);
            }

            return(processApplicationForDeployment);
        }
Esempio n. 11
0
        public virtual void testUpdateCaseDefinitionIdInCaseExecutionEntity()
        {
            // given
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.cmmn.entity.repository.CaseDefinitionEntity caseDefinitionEntity1 = prepareCaseDefinition(java.util.UUID.randomUUID().toString());
            CaseDefinitionEntity caseDefinitionEntity1 = prepareCaseDefinition(System.Guid.randomUUID().ToString());
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.cmmn.entity.repository.CaseDefinitionEntity caseDefinitionEntity2 = prepareCaseDefinition(java.util.UUID.randomUUID().toString());
            CaseDefinitionEntity caseDefinitionEntity2 = prepareCaseDefinition(System.Guid.randomUUID().ToString());

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity caseExecutionEntity = prepareCaseExecution(caseDefinitionEntity1);
            CaseExecutionEntity caseExecutionEntity = prepareCaseExecution(caseDefinitionEntity1);

            assertThat(caseExecutionEntity.CaseDefinitionId).isEqualTo(caseDefinitionEntity1.Id);

            createCaseExecution(caseExecutionEntity);

            caseExecutionEntity.CaseDefinition = caseDefinitionEntity2;

            // Create
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.history.event.HistoricCaseActivityInstanceEventEntity historicCaseActivityInstanceEntity = prepareHistoricCaseActivityInstance(caseDefinitionEntity1);
            HistoricCaseActivityInstanceEventEntity historicCaseActivityInstanceEntity = prepareHistoricCaseActivityInstance(caseDefinitionEntity1);

            createCaseExecutionHistory(historicCaseActivityInstanceEntity);

            // when
            // Set new caseDefinitionId and update
            historicCaseActivityInstanceEntity.CaseDefinitionId = caseDefinitionEntity2.Id;
            historicCaseActivityInstanceEntity.EventType        = HistoryEventTypes.CASE_ACTIVITY_INSTANCE_UPDATE.EventName;
            updateCaseExecutionHistory(historicCaseActivityInstanceEntity);

            // then
            // Read from DB and assert
            HistoricCaseActivityInstanceEntity updatedInstance = findHistoricCaseActivityInstance(historicCaseActivityInstanceEntity.Id);

            assertThat(updatedInstance.CaseDefinitionId).isEqualTo(caseDefinitionEntity2.Id);

            deleteHistoricCaseActivityInstance(historicCaseActivityInstanceEntity);
            deleteCaseExecution(caseExecutionEntity);
            deleteCaseDefinition(caseDefinitionEntity1);
            deleteCaseDefinition(caseDefinitionEntity2);
        }
Esempio n. 12
0
        public virtual VariableMap execute(CommandContext commandContext)
        {
            ensureNotNull("caseExecutionId", caseExecutionId);

            CaseExecutionEntity caseExecution = commandContext.CaseExecutionManager.findCaseExecutionById(caseExecutionId);

            ensureNotNull(typeof(CaseExecutionNotFoundException), "case execution " + caseExecutionId + " doesn't exist", "caseExecution", caseExecution);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkReadCaseInstance(caseExecution);
            }

            VariableMapImpl result = new VariableMapImpl();

            // collect variables
            caseExecution.collectVariables(result, variableNames, isLocal, deserializeValues);

            return(result);
        }
Esempio n. 13
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: public void performOperation(final org.camunda.bpm.engine.impl.cmmn.operation.CmmnAtomicOperation executionOperation, final org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity execution)
        public virtual void performOperation(CmmnAtomicOperation executionOperation, CaseExecutionEntity execution)
        {
            ProcessApplicationReference targetProcessApplication = getTargetProcessApplication(execution);

            if (requiresContextSwitch(targetProcessApplication))
            {
                Context.executeWithinProcessApplication(new CallableAnonymousInnerClass(this, executionOperation, execution)
                                                        , targetProcessApplication, new InvocationContext(execution));
            }
            else
            {
                try
                {
                    Context.ExecutionContext = execution;
                    LOG.debugExecutingAtomicOperation(executionOperation, execution);

                    executionOperation.execute(execution);
                }
                finally
                {
                    Context.removeExecutionContext();
                }
            }
        }
Esempio n. 14
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: private Void deleteCaseExecution(final org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity caseExecutionEntity)
        private Void deleteCaseExecution(CaseExecutionEntity caseExecutionEntity)
        {
            return(processEngineConfiguration.CommandExecutorTxRequiresNew.execute(new CommandAnonymousInnerClass4(this, caseExecutionEntity)));
        }
Esempio n. 15
0
        protected internal virtual void setReferenceToCaseInstance(HistoricDecisionInstanceEntity @event, CaseExecutionEntity execution)
        {
            @event.CaseDefinitionKey = getCaseDefinitionKey(execution);
            @event.CaseDefinitionId  = execution.CaseDefinitionId;

            @event.CaseInstanceId = execution.CaseInstanceId;
            @event.ExecutionId    = execution.Id;

            @event.ActivityId         = execution.ActivityId;
            @event.ActivityInstanceId = execution.Id;
        }
Esempio n. 16
0
 public virtual void debugNoTargetProcessApplicationFoundForCaseExecution(CaseExecutionEntity execution, ProcessApplicationManager processApplicationManager)
 {
     logDebug("024", "no target process application found for CaseExecution[{}], CaseDefinition[{}], Deployment[{}] Registrations[{}]", execution.Id, execution.CaseDefinitionId, ((CaseDefinitionEntity)execution.CaseDefinition).DeploymentId, processApplicationManager.RegistrationSummary);
 }
Esempio n. 17
0
			protected void performStateTransition(CommandContext commandContext, CaseExecutionEntity caseExecution)
			{
			  caseExecution.terminate();
			}
Esempio n. 18
0
 protected internal virtual ProcessApplicationReference getTargetProcessApplication(CaseExecutionEntity execution)
 {
     return(ProcessApplicationContextUtil.getTargetProcessApplication(execution));
 }
Esempio n. 19
0
 protected internal abstract void performStateTransition(CommandContext commandContext, CaseExecutionEntity caseExecution);
Esempio n. 20
0
 public static void setExecutionContext(CaseExecutionEntity execution)
 {
     getStack(executionContextStackThreadLocal).Push(new CaseExecutionContext(execution));
 }
Esempio n. 21
0
 protected internal virtual HistoricDecisionInstanceEntity newDecisionInstanceEventEntity(CaseExecutionEntity executionEntity, DmnDecisionLogicEvaluationEvent evaluationEvent)
 {
     return(new HistoricDecisionInstanceEntity());
 }
Esempio n. 22
0
        protected internal override HistoricCaseActivityInstanceEventEntity loadCaseActivityInstanceEventEntity(CaseExecutionEntity caseExecutionEntity)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final String caseActivityInstanceId = caseExecutionEntity.getId();
            string caseActivityInstanceId = caseExecutionEntity.Id;

            HistoricCaseActivityInstanceEventEntity cachedEntity = findInCache(typeof(HistoricCaseActivityInstanceEventEntity), caseActivityInstanceId);

            if (cachedEntity != null)
            {
                return(cachedEntity);
            }
            else
            {
                return(newCaseActivityInstanceEventEntity(caseExecutionEntity));
            }
        }
Esempio n. 23
0
 public CallableAnonymousInnerClass(CommandContext outerInstance, CmmnAtomicOperation executionOperation, CaseExecutionEntity execution)
 {
     this.outerInstance      = outerInstance;
     this.executionOperation = executionOperation;
     this.execution          = execution;
 }
Esempio n. 24
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: private void createCaseExecution(final org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity caseExecutionEntity)
        private void createCaseExecution(CaseExecutionEntity caseExecutionEntity)
        {
            processEngineConfiguration.CommandExecutorTxRequiresNew.execute(new CommandAnonymousInnerClass5(this, caseExecutionEntity));
        }
Esempio n. 25
0
 public CommandAnonymousInnerClass5(CaseDefinitionIdHistoryUpdateTest outerInstance, CaseExecutionEntity caseExecutionEntity)
 {
     this.outerInstance       = outerInstance;
     this.caseExecutionEntity = caseExecutionEntity;
 }
Esempio n. 26
0
 protected internal override void performStateTransition(CommandContext commandContext, CaseExecutionEntity caseExecution)
 {
     caseExecution.disable();
 }
Esempio n. 27
0
        public virtual void assertSuperExecutionOfCaseInstance(string caseInstanceId, string expectedSuperExecutionId)
        {
            CaseExecutionEntity calledInstance = (CaseExecutionEntity)processEngine.CaseService.createCaseInstanceQuery().caseInstanceId(caseInstanceId).singleResult();

            Assert.assertEquals(expectedSuperExecutionId, calledInstance.SuperExecutionId);
        }
Esempio n. 28
0
        protected internal virtual HistoricDecisionInstanceEntity createDecisionEvaluatedEvt(DmnDecisionLogicEvaluationEvent evaluationEvent, CaseExecutionEntity execution)
        {
            // create event instance
            HistoricDecisionInstanceEntity @event = newDecisionInstanceEventEntity(execution, evaluationEvent);

            // initialize event
            initDecisionInstanceEvent(@event, evaluationEvent, HistoryEventTypes.DMN_DECISION_EVALUATE);
            setReferenceToCaseInstance(@event, execution);

            DecisionDefinition decisionDefinition = (DecisionDefinition)evaluationEvent.Decision;
            string             tenantId           = execution.TenantId;

            if (string.ReferenceEquals(tenantId, null))
            {
                tenantId = provideTenantId(decisionDefinition, @event);
            }
            @event.TenantId = tenantId;
            return(@event);
        }