コード例 #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: protected void handle(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution, String action) throws Exception
        protected internal virtual void handle(ActivityExecution execution, string action)
        {
            execution.setVariable(action, true);
            string type = (string)execution.getVariable("type");

            if ("error".Equals(type, StringComparison.OrdinalIgnoreCase))
            {
                throw new BpmnError("MyError");
            }
            else if ("exception".Equals(type, StringComparison.OrdinalIgnoreCase))
            {
                throw new MyBusinessException("MyException");
            }
            else if ("leave".Equals(type, StringComparison.OrdinalIgnoreCase))
            {
                execution.setVariable("type", null);
                leave(execution);
            }
        }
コード例 #2
0
        protected internal virtual void executeEscalationHandler(EscalationEventDefinition escalationEventDefinition, ActivityExecutionMappingCollector activityExecutionMappingCollector)
        {
            PvmActivity       escalationHandler   = escalationEventDefinition.EscalationHandler;
            PvmScope          escalationScope     = getScopeForEscalation(escalationEventDefinition);
            ActivityExecution escalationExecution = activityExecutionMappingCollector.getExecutionForScope(escalationScope);

            if (!string.ReferenceEquals(escalationEventDefinition.EscalationCodeVariable, null))
            {
                escalationExecution.setVariable(escalationEventDefinition.EscalationCodeVariable, escalation.EscalationCode);
            }

            escalationExecution.executeActivity(escalationHandler);
        }
コード例 #3
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public Void call() throws Exception
            public override Void call()
            {
                ScriptInvocation invocation = new ScriptInvocation(outerInstance.script, execution);

                Context.ProcessEngineConfiguration.DelegateInterceptor.handleInvocation(invocation);
                object result = invocation.InvocationResult;

                if (result != null && !string.ReferenceEquals(outerInstance.resultVariable, null))
                {
                    execution.setVariable(outerInstance.resultVariable, result);
                }
                outerInstance.leave(execution);
                return(null);
            }
コード例 #4
0
        public override void execute(ActivityExecution execution)
        {
            readFields(execution);

            IList <string> argList = new List <string>();

            argList.Add(commandStr);

            if (!string.ReferenceEquals(arg1Str, null))
            {
                argList.Add(arg1Str);
            }
            if (!string.ReferenceEquals(arg2Str, null))
            {
                argList.Add(arg2Str);
            }
            if (!string.ReferenceEquals(arg3Str, null))
            {
                argList.Add(arg3Str);
            }
            if (!string.ReferenceEquals(arg4Str, null))
            {
                argList.Add(arg4Str);
            }
            if (!string.ReferenceEquals(arg5Str, null))
            {
                argList.Add(arg5Str);
            }

            ProcessBuilder processBuilder = new ProcessBuilder(argList);

            try
            {
                processBuilder.redirectErrorStream(redirectErrorFlag);
                if (cleanEnvBoolan.Value)
                {
                    IDictionary <string, string> env = processBuilder.environment();
                    env.Clear();
                }
                if (!string.ReferenceEquals(directoryStr, null) && directoryStr.Length > 0)
                {
                    processBuilder.directory(new File(directoryStr));
                }

                Process process = processBuilder.start();

                if (waitFlag.Value)
                {
                    int errorCode = process.waitFor();

                    if (!string.ReferenceEquals(resultVariableStr, null))
                    {
                        string result = convertStreamToStr(process.InputStream);
                        execution.setVariable(resultVariableStr, result);
                    }

                    if (!string.ReferenceEquals(errorCodeVariableStr, null))
                    {
                        execution.setVariable(errorCodeVariableStr, Convert.ToString(errorCode));
                    }
                }
            }
            catch (Exception e)
            {
                throw LOG.shellExecutionException(e);
            }

            leave(execution);
        }