示例#1
0
        public override IList <VariableInstance> executeList(CommandContext commandContext, Page page)
        {
            checkQueryOk();
            ensureVariablesInitialized();
            IList <VariableInstance> result = commandContext.VariableInstanceManager.findVariableInstanceByQueryCriteria(this, page);

            if (result == null)
            {
                return(result);
            }

            // iterate over the result array to initialize the value and serialized value of the variable
            foreach (VariableInstance variableInstance in result)
            {
                VariableInstanceEntity variableInstanceEntity = (VariableInstanceEntity)variableInstance;

                if (shouldFetchValue(variableInstanceEntity))
                {
                    try
                    {
                        variableInstanceEntity.getTypedValue(isCustomObjectDeserializationEnabled);
                    }
                    catch (Exception t)
                    {
                        // do not fail if one of the variables fails to load
                        LOG.exceptionWhileGettingValueForVariable(t);
                    }
                }
            }

            return(result);
        }
示例#2
0
            public object Execute(CommandContext commandContext)
            {
                //create a variable
                var variable = VariableInstanceEntity.CreateAndInsert("aVariable",
                                                                      ESS.FW.Bpm.Engine.Variable.Variables.ByteArrayValue(new byte[0]));
                var byteArrayId = variable.ByteArrayId;

                //Delete the variable
                variable.Delete();

                //check if the variable is deleted transient
                //-> no insert and Delete stmt will be flushed
                var dbEntityManager = commandContext.ByteArrayManager;
                var cachedEntity    = dbEntityManager.Get(byteArrayId);

                //var entityState = cachedEntity.EntityState;
                //Assert.AreEqual(DbEntityState.DeletedTransient, entityState);

                return(null);
            }
示例#3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setup()
        public virtual void setup()
        {
            TestIdGenerator idGenerator = new TestIdGenerator();

            entityManager = new ExposingDbEntityManager(idGenerator, null);

            execution1    = new ExecutionEntity();
            execution1.Id = "101";
            execution2    = new ExecutionEntity();
            execution2.Id = "102";
            execution3    = new ExecutionEntity();
            execution3.Id = "103";
            execution4    = new ExecutionEntity();
            execution4.Id = "104";
            execution5    = new ExecutionEntity();
            execution5.Id = "105";
            execution6    = new ExecutionEntity();
            execution6.Id = "106";
            execution7    = new ExecutionEntity();
            execution7.Id = "107";
            execution8    = new ExecutionEntity();
            execution8.Id = "108";

            task1    = new TaskEntity();
            task1.Id = "104";
            task2    = new TaskEntity();
            task2.Id = "105";
            task3    = new TaskEntity();
            task3.Id = "106";
            task4    = new TaskEntity();
            task4.Id = "107";

            variable1    = new VariableInstanceEntity();
            variable1.Id = "108";
            variable2    = new VariableInstanceEntity();
            variable2.Id = "109";
            variable3    = new VariableInstanceEntity();
            variable3.Id = "110";
            variable4    = new VariableInstanceEntity();
            variable4.Id = "111";
        }
            public override object Execute(CommandContext commandContext)
            {
                ExecutionEntity execution = commandContext.ExecutionManager.FindExecutionById(executionId);

                // fetch the variable instance but not the value (make sure the byte array is lazily fetched)
                VariableInstanceEntity varInstance = (VariableInstanceEntity)execution.GetVariableInstanceLocal(varName);
                string byteArrayValueId            = varInstance.ByteArrayId;

                Assert.NotNull("Byte array id is expected to be not null", byteArrayValueId);

                var cachedByteArray = commandContext.ByteArrayManager.Get(byteArrayValueId);

                Assert.IsNull(cachedByteArray, "Byte array is expected to be not fetched yet / lazily fetched.");

                Monitor.Sync();

                // now update the value
                execution.SetVariableLocal(varInstance.Name, newValue);

                return(null);
            }
示例#5
0
            public override Void execute(CommandContext commandContext)
            {
                ExecutionEntity execution = commandContext.ExecutionManager.findExecutionById(executionId);

                // fetch the variable instance but not the value (make sure the byte array is lazily fetched)
                VariableInstanceEntity varInstance = (VariableInstanceEntity)execution.getVariableInstanceLocal(varName);
                string byteArrayValueId            = varInstance.ByteArrayValueId;

                assertNotNull("Byte array id is expected to be not null", byteArrayValueId);

                CachedDbEntity cachedByteArray = commandContext.DbEntityManager.DbEntityCache.getCachedEntity(typeof(ByteArrayEntity), byteArrayValueId);

                assertNull("Byte array is expected to be not fetched yet / lazily fetched.", cachedByteArray);

                monitor.sync();

                // now update the value
                execution.setVariableLocal(varInstance.Name, newValue);

                return(null);
            }
示例#6
0
 public virtual void consume(VariableInstanceEntity variableInstance)
 {
     variables_Renamed.remove(variableInstance);
 }
示例#7
0
 protected internal virtual bool shouldFetchValue(VariableInstanceEntity entity)
 {
     // do not fetch values for byte arrays eagerly (unless requested by the user)
     return(isByteArrayFetchingEnabled || !AbstractTypedValueSerializer.BINARY_VALUE_TYPES.Contains(entity.Serializer.Type.Name));
 }
 public virtual HistoryEvent CreateHistoricVariableMigrateEvt(VariableInstanceEntity variableInstance)
 {
     return(CreateHistoricVariableEvent(variableInstance, null, HistoryEventTypes.VariableInstanceMigrate));
 }
 public virtual HistoryEvent CreateHistoricVariableUpdateEvt(VariableInstanceEntity variableInstance, IVariableScope sourceVariableScope)
 {
     return(CreateHistoricVariableEvent(variableInstance, sourceVariableScope, HistoryEventTypes.VariableInstanceUpdate));
 }
        protected internal virtual HistoryEvent CreateHistoricVariableEvent(VariableInstanceEntity variableInstance, IVariableScope sourceVariableScope, HistoryEventTypes eventType)
        {
            string scopeActivityInstanceId  = null;
            string sourceActivityInstanceId = null;

            if (variableInstance.ExecutionId != null)
            {
                //ExecutionEntity scopeExecution = Context.CommandContext.DbEntityManager.SelectById(typeof(ExecutionEntity), variableInstance.ExecutionId);
                ExecutionEntity scopeExecution = Context.CommandContext.ExecutionManager.FindExecutionById(variableInstance.ExecutionId);
                if (variableInstance.TaskId == null && !variableInstance.IsConcurrentLocal)
                {
                    scopeActivityInstanceId = scopeExecution.ParentActivityInstanceId;
                }
                else
                {
                    scopeActivityInstanceId = scopeExecution.ActivityInstanceId;
                }
            }
            else if (!string.ReferenceEquals(variableInstance.CaseExecutionId, null))
            {
                scopeActivityInstanceId = variableInstance.CaseExecutionId;
            }

            ExecutionEntity sourceExecution = null;

            //CaseExecutionEntity sourceCaseExecution = null;
            if (sourceVariableScope is ExecutionEntity)
            {
                sourceExecution          = (ExecutionEntity)sourceVariableScope;
                sourceActivityInstanceId = sourceExecution.ActivityInstanceId;
            }
            else if (sourceVariableScope is TaskEntity)
            {
                sourceExecution = ((TaskEntity)sourceVariableScope).GetExecution();
                if (sourceExecution != null)
                {
                    sourceActivityInstanceId = sourceExecution.ActivityInstanceId;
                }
                else
                {
                    //sourceCaseExecution = ((TaskEntity)sourceVariableScope).GetCaseExecution();
                    //if (sourceCaseExecution != null)
                    //{
                    //    sourceActivityInstanceId = sourceCaseExecution.Id;
                    //}
                }
            }
            //else if (sourceVariableScope is CaseExecutionEntity)
            //{
            //    sourceCaseExecution = (CaseExecutionEntity)sourceVariableScope;
            //    sourceActivityInstanceId = sourceCaseExecution.Id;
            //}

            // create event
            HistoricVariableUpdateEventEntity evt = NewVariableUpdateEventEntity(sourceExecution);

            // initialize
            InitHistoricVariableUpdateEvt(evt, variableInstance, eventType);
            // initialize sequence counter
            InitSequenceCounter(variableInstance, evt);

            // set scope activity instance id
            evt.ScopeActivityInstanceId = scopeActivityInstanceId;

            // set source activity instance id
            evt.ActivityInstanceId = sourceActivityInstanceId;

            return(evt);
        }
        protected internal virtual void InitHistoricVariableUpdateEvt(HistoricVariableUpdateEventEntity evt, VariableInstanceEntity variableInstance, IHistoryEventType eventType)
        {
            // init properties
            evt.EventType          = eventType.EventName;
            evt.TimeStamp          = ClockUtil.CurrentTime;
            evt.VariableInstanceId = variableInstance.Id;
            evt.ProcessInstanceId  = variableInstance.ProcessInstanceId;
            evt.ExecutionId        = variableInstance.ExecutionId;
            evt.CaseInstanceId     = variableInstance.CaseInstanceId;
            evt.CaseExecutionId    = variableInstance.CaseExecutionId;
            evt.TaskId             = variableInstance.TaskId;
            evt.Revision           = variableInstance.Revision;
            evt.VariableName       = variableInstance.Name;
            evt.SerializerName     = variableInstance.SerializerName;
            evt.TenantId           = variableInstance.TenantId;

            ExecutionEntity execution = variableInstance.Execution;

            if (execution != null)
            {
                ProcessDefinitionEntity definition = execution.GetProcessDefinition();
                if (definition != null)
                {
                    evt.ProcessDefinitionId  = definition.Id;
                    evt.ProcessDefinitionKey = definition.Key;
                }
            }

            //CaseExecutionEntity caseExecution = variableInstance.CaseExecution;
            //if (caseExecution != null)
            //{
            //    CaseDefinitionEntity definition = (CaseDefinitionEntity)caseExecution.CaseDefinition;
            //    if (definition != null)
            //    {
            //        evt.CaseDefinitionId = definition.Id;
            //        evt.CaseDefinitionKey = definition.Key;
            //    }
            //}

            // copy value
            evt.TextValue   = variableInstance.TextValue;
            evt.TextValue2  = variableInstance.TextValue2;
            evt.DoubleValue = variableInstance.DoubleValue;
            evt.LongValue   = variableInstance.LongValue;
            if (variableInstance.ByteArrayId != null)
            {
                evt.ByteValue = variableInstance.ByteArrayValue;
                //evt.Value = variableInstance.Value;
                //evt.ByteArrayValue = variableInstance.ByteArrayValue;
                var r = evt.Value;
            }
        }
 protected internal virtual void InitSequenceCounter(VariableInstanceEntity variable, HistoryEvent @event)
 {
     InitSequenceCounter(variable.SequenceCounter, @event);
 }
示例#13
0
 public virtual void Consume(VariableInstanceEntity variableInstance)
 {
     VariablesRenamed.Remove(variableInstance);
 }
 public MigratingVariableInstance(VariableInstanceEntity variable, bool isConcurrentLocalInParentScope)
 {
     this.Variable = variable;
     this.IsConcurrentLocalInParentScope = isConcurrentLocalInParentScope;
 }