Exemple #1
0
        protected internal virtual IList <HistoricDecisionInputInstance> createHistoricDecisionInputInstances(DmnDecisionTableEvaluationEvent evaluationEvent, string rootProcessInstanceId, DateTime removalTime)
        {
            IList <HistoricDecisionInputInstance> inputInstances = new List <HistoricDecisionInputInstance>();

            foreach (DmnEvaluatedInput inputClause in evaluationEvent.Inputs)
            {
                HistoricDecisionInputInstanceEntity inputInstance = new HistoricDecisionInputInstanceEntity(rootProcessInstanceId, removalTime);
                inputInstance.ClauseId   = inputClause.Id;
                inputInstance.ClauseName = inputClause.Name;
                inputInstance.CreateTime = ClockUtil.CurrentTime;

                TypedValue typedValue = Variables.untypedValue(inputClause.Value);
                inputInstance.setValue(typedValue);

                inputInstances.Add(inputInstance);
            }

            return(inputInstances);
        }
Exemple #2
0
        protected internal virtual IList <HistoricDecisionOutputInstance> createHistoricDecisionOutputInstances(DmnDecisionTableEvaluationEvent evaluationEvent, string rootProcessInstanceId, DateTime removalTime)
        {
            IList <HistoricDecisionOutputInstance> outputInstances = new List <HistoricDecisionOutputInstance>();

            IList <DmnEvaluatedDecisionRule> matchingRules = evaluationEvent.MatchingRules;

            for (int index = 0; index < matchingRules.Count; index++)
            {
                DmnEvaluatedDecisionRule rule = matchingRules[index];

                string ruleId    = rule.Id;
                int?   ruleOrder = index + 1;

                foreach (DmnEvaluatedOutput outputClause in rule.OutputEntries.values())
                {
                    HistoricDecisionOutputInstanceEntity outputInstance = new HistoricDecisionOutputInstanceEntity(rootProcessInstanceId, removalTime);
                    outputInstance.ClauseId   = outputClause.Id;
                    outputInstance.ClauseName = outputClause.Name;
                    outputInstance.CreateTime = ClockUtil.CurrentTime;

                    outputInstance.RuleId    = ruleId;
                    outputInstance.RuleOrder = ruleOrder;

                    outputInstance.VariableName = outputClause.OutputName;
                    outputInstance.setValue(outputClause.Value);

                    outputInstances.Add(outputInstance);
                }
            }

            return(outputInstances);
        }
Exemple #3
0
        protected internal virtual void initDecisionInstanceEventForDecisionTable(HistoricDecisionInstanceEntity @event, DmnDecisionTableEvaluationEvent evaluationEvent)
        {
            if (evaluationEvent.CollectResultValue != null)
            {
                double?collectResultValue = getCollectResultValue(evaluationEvent.CollectResultValue);
                @event.CollectResultValue = collectResultValue;
            }

            IList <HistoricDecisionInputInstance> historicDecisionInputInstances = createHistoricDecisionInputInstances(evaluationEvent, @event.RootProcessInstanceId, @event.RemovalTime);

            @event.Inputs = historicDecisionInputInstances;

            IList <HistoricDecisionOutputInstance> historicDecisionOutputInstances = createHistoricDecisionOutputInstances(evaluationEvent, @event.RootProcessInstanceId, @event.RemovalTime);

            @event.Outputs = historicDecisionOutputInstances;
        }