if (processDefinition.isSuspended()) { throw new ActivitiException("Could not handle signal: process definition with id: " + processDefinitionId + " is suspended");
public void execute(JobEntity job, String configuration, ExecutionEntity execution, CommandContext commandContext) { DeploymentManager deploymentCache = Context .getProcessEngineConfiguration() .getDeploymentManager(); ProcessDefinition processDefinition = deploymentCache.findDeployedLatestProcessDefinitionByKey(configuration); try { if(!processDefinition.isSuspended()) { new StartProcessInstanceCmd(configuration, null, null, null).execute(commandContext); } else { log.debug("ignoring timer of suspended process definition {}", processDefinition.getName()); } } catch (RuntimeException e) { log.error("exception during timer execution", e); throw e; } catch (Exception e) { log.error("exception during timer execution", e); throw new ActivitiException("exception during timer execution: " + e.getMessage(), e); } } }
@Override public Map<String, Long[]> getProcessDefinitions() { final List<ProcessDefinition> deployments = this.repositoryService.createProcessDefinitionQuery().list(); final Map<String, Long[]> results = new HashMap<>(deployments.size()); for (final ProcessDefinition deployment : deployments) { final Long[] values = new Long[4]; // Suspension state values[PROCESS_DEFINITION_INFO_ID_SUSPENSION_STATE] = deployment.isSuspended() ? 1l : 0l; // active process instances final List<ProcessInstance> activeProcessInstances = this.runtimeService.createProcessInstanceQuery() .processDefinitionKey(deployment.getKey()).active().list(); values[PROCESS_DEFINITION_INFO_ID_ACTIVE_INSTANCES_COUNTER] = Long.valueOf(activeProcessInstances.size()); // suspended process instances final List<ProcessInstance> suspendedProcessInstances = this.runtimeService.createProcessInstanceQuery() .processDefinitionKey(deployment.getKey()).suspended().list(); values[PROCESS_DEFINITION_INFO_ID_SUSPENDED_INSTANCES_COUNTER] = Long .valueOf(suspendedProcessInstances.size()); // ended process instances final List<HistoricProcessInstance> endedProcessInstances = historyService .createHistoricProcessInstanceQuery().processDefinitionKey(deployment.getKey()).finished().list(); values[PROCESS_DEFINITION_INFO_ID_ENDED_INSTANCES_COUNTER] = Long.valueOf(endedProcessInstances.size()); results.put(deployment.getKey(), values); } return results; }
@NamespacePermission(fields = "#request?.namespace", permissions = NamespacePermissionEnum.EXECUTE) @Override public Job createAndStartJob(JobCreateRequest request) throws Exception { // Perform the validation. validateJobCreateRequest(request); // Get the namespace and ensure it exists. NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(request.getNamespace()); // Get the job definition and ensure it exists. JobDefinitionEntity jobDefinitionEntity = jobDefinitionDao.getJobDefinitionByAltKey(request.getNamespace(), request.getJobName()); if (jobDefinitionEntity == null) { throw new ObjectNotFoundException( "Job definition with name \"" + request.getJobName() + "\" doesn't exist for namespace \"" + request.getNamespace() + "\"."); } // Build the parameters map Map<String, Object> mergedParameters = getParameters(jobDefinitionEntity, request); // Create a process instance holder to check for a handle to the process instance once it is created. String processDefinitionId = jobDefinitionEntity.getActivitiId(); ProcessDefinition processDefinition = activitiService.getProcessDefinitionById(processDefinitionId); Assert.notNull(processDefinition, "No process definition found for Id: " + processDefinitionId); Assert.isTrue(!processDefinition.isSuspended(), "Cannot start process instance for process definition Id: " + processDefinitionId + " because it is suspended."); ProcessInstance processInstance = activitiService.startProcessInstanceByProcessDefinitionId(processDefinitionId, mergedParameters); // If we get here, we have a newly created process instance. Log to know it was created successfully. LOGGER.info("Created process instance with Id: " + processInstance.getProcessInstanceId() + " for process definition Id: " + processDefinitionId + " with merged parameters: " + mergedParameters); // Create and return the job object. return createJobFromRequest(namespaceEntity.getCode(), jobDefinitionEntity.getName(), mergedParameters, processInstance.getProcessInstanceId()); }
private List<ProcessDef> convert(List<ProcessDefinition> defs) { List<ProcessDef> datas = new ArrayList<ProcessDef>(defs.size()); for (int i = 0; defs != null && i < defs.size(); i++) { ProcessDef def = new ProcessDef(); ProcessDefinition def_ = defs.get(i); def.setCATEGORY_(def_.getCategory()); def.setDEPLOYMENT_ID_(def_.getDeploymentId()); def.setDGRM_RESOURCE_NAME_(def_.getDiagramResourceName()); def.setHAS_START_FORM_KEY_(def_.hasStartFormKey() ? 1 : 0); def.setID_(def_.getId()); def.setKEY_(def_.getKey()); def.setNAME_(def_.getName()); def.setRESOURCE_NAME_(def_.getResourceName()); // def.setREV_(def_.) def.setSUSPENSION_STATE_(def_.isSuspended() ? 1 : 0); def.setVERSION_(def_.getVersion()); Deployment deployment = repositoryService.createDeploymentQuery() .deploymentId(def_.getDeploymentId()).singleResult(); def.setDEPLOYMENT_NAME_(deployment.getName()); def.setDEPLOYMENT_TIME_(deployment.getDeploymentTime()); datas.add(def); } return datas; }
@NamespacePermission(fields = "#request?.namespace", permissions = NamespacePermissionEnum.EXECUTE) @Override public Job createAndStartJob(JobCreateRequest request) throws Exception { // Perform the validation. validateJobCreateRequest(request); // Get the namespace and ensure it exists. NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(request.getNamespace()); // Get the job definition and ensure it exists. JobDefinitionEntity jobDefinitionEntity = jobDefinitionDao.getJobDefinitionByAltKey(request.getNamespace(), request.getJobName()); if (jobDefinitionEntity == null) { throw new ObjectNotFoundException( "Job definition with name \"" + request.getJobName() + "\" doesn't exist for namespace \"" + request.getNamespace() + "\"."); } // Build the parameters map Map<String, Object> mergedParameters = getParameters(jobDefinitionEntity, request); // Create a process instance holder to check for a handle to the process instance once it is created. String processDefinitionId = jobDefinitionEntity.getActivitiId(); ProcessDefinition processDefinition = activitiService.getProcessDefinitionById(processDefinitionId); Assert.notNull(processDefinition, "No process definition found for Id: " + processDefinitionId); Assert.isTrue(!processDefinition.isSuspended(), "Cannot start process instance for process definition Id: " + processDefinitionId + " because it is suspended."); ProcessInstance processInstance = activitiService.startProcessInstanceByProcessDefinitionId(processDefinitionId, mergedParameters); // If we get here, we have a newly created process instance. Log to know it was created successfully. LOGGER.info("Created process instance with Id: " + processInstance.getProcessInstanceId() + " for process definition Id: " + processDefinitionId + " with merged parameters: " + mergedParameters); // Create and return the job object. return createJobFromRequest(namespaceEntity.getCode(), jobDefinitionEntity.getName(), mergedParameters, processInstance.getProcessInstanceId()); }
.removeProcessDefinition(definitionToSuspend.getId()); if (!definitionToSuspend.isSuspended() && ((!delete) || !processDefinitionsForThisDeployment.contains(definitionToSuspend))) {
if (definitionToActivate.isSuspended()) { log.log( Level.INFO, "Activating process definition ''{0}[definitionId={1}, version={2}]",
if (processDefinition.isSuspended()) { throw new ActivitiException("Could not handle signal: process definition with id: " + processDefinitionId + " is suspended");
public ProcessDefinitionResponse createProcessDefinitionResponse(ProcessDefinition processDefinition, RestUrlBuilder urlBuilder) { ProcessDefinitionResponse response = new ProcessDefinitionResponse(); response.setUrl(urlBuilder.buildUrl(RestUrls.URL_PROCESS_DEFINITION, processDefinition.getId())); response.setId(processDefinition.getId()); response.setKey(processDefinition.getKey()); response.setVersion(processDefinition.getVersion()); response.setCategory(processDefinition.getCategory()); response.setName(processDefinition.getName()); response.setDescription(processDefinition.getDescription()); response.setSuspended(processDefinition.isSuspended()); response.setStartFormDefined(processDefinition.hasStartFormKey()); response.setGraphicalNotationDefined(processDefinition.hasGraphicalNotation()); response.setTenantId(processDefinition.getTenantId()); // Links to other resources response.setDeploymentId(processDefinition.getDeploymentId()); response.setDeploymentUrl(urlBuilder.buildUrl(RestUrls.URL_DEPLOYMENT, processDefinition.getDeploymentId())); response.setResource(urlBuilder.buildUrl(RestUrls.URL_DEPLOYMENT_RESOURCE, processDefinition.getDeploymentId(), processDefinition.getResourceName())); if (processDefinition.getDiagramResourceName() != null) { response.setDiagramResource(urlBuilder.buildUrl(RestUrls.URL_DEPLOYMENT_RESOURCE, processDefinition.getDeploymentId(), processDefinition.getDiagramResourceName())); } return response; }