示例#1
0
        protected internal override void Execute(AbstractVariableScope innerScope, AbstractVariableScope outerScope)
        {
            // get value from inner scope
            var value = valueProvider.GetValue(innerScope);

            Log.DebugMappingValuefromInnerScopeToOuterScope(value, innerScope, name, outerScope);

            // set variable in outer scope
            outerScope.SetVariable(name, value);
        }
示例#2
0
//JAVA TO C# CONVERTER WARNING: MethodInfo 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static void evaluateDecision(org.camunda.bpm.engine.impl.core.Variable.scope.AbstractVariableScope execution, org.camunda.bpm.engine.impl.core.model.BaseCallableElement callableElement, String resultVariable, org.camunda.bpm.engine.impl.dmn.result.DecisionResultMapper decisionResultMapper) throws Exception
        public static void EvaluateDecision(AbstractVariableScope execution, BaseCallableElement callableElement,
                                            string resultVariable, IDecisionResultMapper decisionResultMapper)
        {
            var decisionDefinition = ResolveDecisionDefinition(callableElement, execution);
            var invocation         = CreateInvocation(decisionDefinition, execution);

            Invoke(invocation);

            var result = (IDmnDecisionResult)invocation.InvocationResult;

            if (result != null)
            {
                execution.SetVariableLocalTransient(DecisionResultVariable, result);

                if (!ReferenceEquals(resultVariable, null) && (decisionResultMapper != null))
                {
                    var mappedDecisionResult = decisionResultMapper.MapDecisionResult(result);
                    execution.SetVariable(resultVariable, mappedDecisionResult);
                }
            }
        }