예제 #1
0
 public virtual void concurrentChildExecutionEnded(ActivityExecution scopeExecution, ActivityExecution endedExecution)
 {
     // join
     endedExecution.remove();
     scopeExecution.tryPruneLastConcurrentChild();
     scopeExecution.forceUpdate();
 }
예제 #2
0
        public override void execute(ActivityExecution execution)
        {
            string toStr      = getStringFromField(to, execution);
            string fromStr    = getStringFromField(from, execution);
            string ccStr      = getStringFromField(cc, execution);
            string bccStr     = getStringFromField(bcc, execution);
            string subjectStr = getStringFromField(subject, execution);
            string textStr    = getStringFromField(text, execution);
            string htmlStr    = getStringFromField(html, execution);
            string charSetStr = getStringFromField(charset, execution);

            Email email = createEmail(textStr, htmlStr);

            addTo(email, toStr);
            setFrom(email, fromStr);
            addCc(email, ccStr);
            addBcc(email, bccStr);
            setSubject(email, subjectStr);
            MailServerProperties = email;
            setCharset(email, charSetStr);

            try
            {
                email.send();
            }
            catch (EmailException e)
            {
                throw LOG.sendingEmailException(toStr, e);
            }
            leave(execution);
        }
예제 #3
0
 public ActivityBehaviorSignalInvocation(SignallableActivityBehavior behaviorInstance, ActivityExecution execution, string signalName, object signalData) : base(execution, null)
 {
     this.behaviorInstance = behaviorInstance;
     this.execution        = execution;
     this.signalName       = signalName;
     this.signalData       = signalData;
 }
예제 #4
0
        protected internal override void startInstance(ActivityExecution execution, VariableMap variables, string businessKey)
        {
            ProcessDefinitionImpl definition      = getProcessDefinitionToCall(execution, CallableElement);
            PvmProcessInstance    processInstance = execution.createSubProcessInstance(definition, businessKey);

            processInstance.start(variables);
        }
예제 #5
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(final org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
        public virtual void execute(ActivityExecution execution)
        {
            if (isAfterEventBasedGateway || conditionalEvent.tryEvaluate(execution))
            {
                leave(execution);
            }
        }
예제 #6
0
        protected internal override void startInstance(ActivityExecution execution, VariableMap variables, string businessKey)
        {
            CmmnCaseDefinition definition   = getCaseDefinitionToCall(execution, CallableElement);
            CmmnCaseInstance   caseInstance = execution.createSubCaseInstance(definition, businessKey);

            caseInstance.create(variables);
        }
예제 #7
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            PvmTransition more = execution.Activity.findOutgoingTransition("more");
            PvmTransition done = execution.Activity.findOutgoingTransition("done");

            int?value = (int?)execution.getVariable(variableName);

            if (value == null)
            {
                execution.setVariable(variableName, from);
                execution.leaveActivityViaTransition(more);
            }
            else
            {
                value = value + 1;

                if (value.Value < to)
                {
                    execution.setVariable(variableName, value);
                    execution.leaveActivityViaTransition(more);
                }
                else
                {
                    execution.leaveActivityViaTransition(done);
                }
            }
        }
예제 #8
0
 public override void complete(ActivityExecution scopeExecution)
 {
     // check whether legacy behavior needs to be performed.
     if (!LegacyBehavior.eventSubprocessComplete(scopeExecution))
     {
         // in case legacy behavior is not performed, the event subprocess behaves in the same way as a regular subprocess.
         base.complete(scopeExecution);
     }
 }
예제 #9
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            PvmActivity activity        = execution.Activity;
            PvmActivity initialActivity = activity.Properties.get(BpmnProperties.INITIAL_ACTIVITY);

            ensureNotNull("No initial activity found for subprocess " + execution.Activity.Id, "initialActivity", initialActivity);

            execution.executeActivity(initialActivity);
        }
예제 #10
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            ExecutionEntity executionEntity = (ExecutionEntity)execution;
            PriorityProvider <ExternalTaskActivityBehavior> provider = Context.ProcessEngineConfiguration.ExternalTaskPriorityProvider;

            long   priority = provider.determinePriority(executionEntity, this, null);
            string topic    = (string)topicNameValueProvider.getValue(executionEntity);

            ExternalTaskEntity.createAndInsert(executionEntity, topic, priority);
        }
예제 #11
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            if (isAfterEventBasedGateway)
            {
                leave(execution);
            }
            else
            {
                // Do nothing: waitstate behavior
            }
        }
예제 #12
0
 public override void concurrentChildExecutionEnded(ActivityExecution scopeExecution, ActivityExecution endedExecution)
 {
     // Check whether legacy behavior needs to be performed.
     // Legacy behavior means that the event subprocess is not a scope and as a result does not
     // join concurrent executions on it's own. Instead it delegates to the the subprocess activity behavior in which it is embedded.
     if (!LegacyBehavior.eventSubprocessConcurrentChildExecutionEnded(scopeExecution, endedExecution))
     {
         // in case legacy behavior is not performed, the event subprocess behaves in the same way as a regular subprocess.
         base.concurrentChildExecutionEnded(scopeExecution, endedExecution);
     }
 }
예제 #13
0
 protected internal virtual void applyInputParameters <T1>(ActivityExecution execution, ConnectorRequest <T1> request)
 {
     if (ioMapping != null)
     {
         // create variable scope for input parameters
         ConnectorVariableScope connectorInputVariableScope = new ConnectorVariableScope((AbstractVariableScope)execution);
         // execute the connector input parameters
         ioMapping.executeInputParameters(connectorInputVariableScope);
         // write the local variables to the request.
         connectorInputVariableScope.writeToRequest(request);
     }
 }
예제 #14
0
 protected internal virtual void applyOutputParameters(ActivityExecution execution, ConnectorResponse response)
 {
     if (ioMapping != null)
     {
         // create variable scope for output parameters
         ConnectorVariableScope connectorOutputVariableScope = new ConnectorVariableScope((AbstractVariableScope)execution);
         // read parameters from response
         connectorOutputVariableScope.readFromResponse(response);
         // map variables to parent scope.
         ioMapping.executeOutputParameters(connectorOutputVariableScope);
     }
 }
예제 #15
0
        protected internal virtual void lockConcurrentRoot(ActivityExecution execution)
        {
            ActivityExecution concurrentRoot = null;

            if (execution.Concurrent)
            {
                concurrentRoot = execution.Parent;
            }
            else
            {
                concurrentRoot = execution;
            }
            ((ExecutionEntity)concurrentRoot).forceUpdate();
        }
예제 #16
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            string variableName = (string)counterName.getValue(execution);
            object variable     = execution.getVariable(variableName);

            if (variable == null)
            {
                execution.setVariable(variableName, (int?)1);
            }
            else
            {
                execution.setVariable(variableName, ((int?)variable) + 1);
            }
        }
예제 #17
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void signal(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution, String signalName, Object signalData) throws Exception
        public virtual void signal(ActivityExecution execution, string signalName, object signalData)
        {
            if (LegacyBehavior.signalCancelBoundaryEvent(signalName))
            {
                // join compensating executions
                if (!execution.hasChildren())
                {
                    leave(execution);
                }
                else
                {
                    ((ExecutionEntity)execution).forceUpdate();
                }
            }
            else
            {
                base.signal(execution, signalName, signalData);
            }
        }
예제 #18
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            PvmTransition transition   = null;
            string        creditRating = (string)execution.getVariable("creditRating");

            if (creditRating.Equals("AAA+"))
            {
                transition = execution.Activity.findOutgoingTransition("wow");
            }
            else if (creditRating.Equals("Aaa-"))
            {
                transition = execution.Activity.findOutgoingTransition("nice");
            }
            else
            {
                transition = execution.Activity.findOutgoingTransition("default");
            }

            execution.leaveActivityViaTransition(transition);
        }
예제 #19
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            // If conditional events exist after the event based gateway they should be evaluated.
            // If a condition is satisfied the event based gateway should be left,
            // otherwise the event based gateway is a wait state
            ActivityImpl eventBasedGateway = (ActivityImpl)execution.Activity;

            foreach (ActivityImpl act in eventBasedGateway.EventActivities)
            {
                ActivityBehavior activityBehavior = act.ActivityBehavior;
                if (activityBehavior is ConditionalEventBehavior)
                {
                    ConditionalEventBehavior   conditionalEventBehavior   = (ConditionalEventBehavior)activityBehavior;
                    ConditionalEventDefinition conditionalEventDefinition = conditionalEventBehavior.ConditionalEventDefinition;
                    if (conditionalEventDefinition.tryEvaluate(execution))
                    {
                        ((ExecutionEntity)execution).executeEventHandlerActivity(conditionalEventDefinition.ConditionalActivity);
                        return;
                    }
                }
            }
        }
예제 #20
0
 public ActivityBehaviorInvocation(ActivityBehavior behaviorInstance, ActivityExecution execution) : base(execution, null)
 {
     this.behaviorInstance = behaviorInstance;
     this.execution        = execution;
 }
예제 #21
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            PvmTransition transition = execution.Activity.OutgoingTransitions[0];

            execution.leaveActivityViaTransition(transition);
        }
예제 #22
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            BpmnExceptionHandler.propagateError(errorCode, null, null, execution);
        }
예제 #23
0
        public override void doLeave(ActivityExecution execution)
        {
            CompensationUtil.createEventScopeExecution((ExecutionEntity)execution);

            base.doLeave(execution);
        }
예제 #24
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
        }
예제 #25
0
 public virtual void migrateScope(ActivityExecution scopeExecution)
 {
 }
예제 #26
0
 public ActivityExecutionTuple(PvmScope scope, ActivityExecution execution)
 {
     this.execution = execution;
     this.scope     = scope;
 }
예제 #27
0
 public virtual void complete(ActivityExecution scopeExecution)
 {
     leave(scopeExecution);
 }
예제 #28
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            // wait for signal
        }
예제 #29
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void execute(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution) throws Exception
        public virtual void execute(ActivityExecution execution)
        {
            // a link event does not behave as a wait state
            leave(execution);
        }
예제 #30
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void signal(org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution execution, String signalName, Object signalData) throws Exception
        public virtual void signal(ActivityExecution execution, string signalName, object signalData)
        {
            leave(execution);
        }