コード例 #1
0
        protected internal virtual void handleStartEvent(EventSubscriptionEntity eventSubscription,IDictionary <string,object> payload,string businessKey,CommandContext commandContext)
        {
            string processDefinitionId = eventSubscription.Configuration;

            ensureNotNull("Configuration of signal start event subscription '" + eventSubscription.Id + "' contains no process definition id.",processDefinitionId);

            DeploymentCache         deploymentCache   = Context.ProcessEngineConfiguration.DeploymentCache;
            ProcessDefinitionEntity processDefinition = deploymentCache.findDeployedProcessDefinitionById(processDefinitionId);

            if (processDefinition == null || processDefinition.Suspended)
            {
                // ignore event subscription
                LOG.debugIgnoringEventSubscription(eventSubscription,processDefinitionId);
            }
            else
            {
                ActivityImpl       signalStartEvent = processDefinition.findActivity(eventSubscription.ActivityId);
                PvmProcessInstance processInstance  = processDefinition.createProcessInstance(businessKey,signalStartEvent);
                processInstance.start(payload);
            }
        }