Esempio n. 1
0
        public virtual IProcessDefinition FindDeployedLatestProcessDefinitionByKey(string processDefinitionKey)
        {
            IProcessDefinition processDefinition = processDefinitionEntityManager.FindLatestProcessDefinitionByKey(processDefinitionKey);

            if (processDefinition == null)
            {
                throw new ActivitiObjectNotFoundException("no processes deployed with key '" + processDefinitionKey + "'", typeof(IProcessDefinition));
            }
            processDefinition = ResolveProcessDefinition(processDefinition).ProcessDefinition;
            return(processDefinition);
        }
Esempio n. 2
0
        /// <summary>
        /// Gets the most recent persisted process definition that matches this one for tenant and key.
        /// If none is found, returns null.  This method assumes that the tenant and key are properly
        /// set on the process definition entity.
        /// </summary>
        public virtual IProcessDefinitionEntity GetMostRecentVersionOfProcessDefinition(IProcessDefinitionEntity processDefinition)
        {
            string key      = processDefinition.Key;
            string tenantId = processDefinition.TenantId;
            IProcessDefinitionEntityManager processDefinitionManager = Context.CommandContext.ProcessEngineConfiguration.ProcessDefinitionEntityManager;

            IProcessDefinitionEntity existingDefinition;

            if (tenantId is object && !tenantId.Equals(ProcessEngineConfiguration.NO_TENANT_ID))
            {
                existingDefinition = processDefinitionManager.FindLatestProcessDefinitionByKeyAndTenantId(key, tenantId);
            }
            else
            {
                existingDefinition = processDefinitionManager.FindLatestProcessDefinitionByKey(key);
            }

            return(existingDefinition);
        }