public Case getCmmnCaseForCaseDefinition(CaseDefinitionEntity caseDefinition) { CmmnModel model = getCmmnModelForCaseDefinition(caseDefinition); return (model == null ? null : model.getCaseById(caseDefinition.getKey())); }
protected FormInfo getStartForm(CaseDefinition caseDefinition) { FormInfo formInfo = null; CmmnModel cmmnModel = repositoryService.getCmmnModel(caseDefinition.getId()); Case caze = cmmnModel.getCaseById(caseDefinition.getKey()); Stage stage = caze.getPlanModel(); if (StringUtils.isNotEmpty(stage.getFormKey())) { CmmnDeployment deployment = repositoryService.createDeploymentQuery().deploymentId(caseDefinition.getDeploymentId()).singleResult(); formInfo = formRepositoryService.getFormModelByKeyAndParentDeploymentId(stage.getFormKey(), deployment.getParentDeploymentId(), caseDefinition.getTenantId(), cmmnEngineConfiguration.isFallbackToDefaultTenant()); } if (formInfo == null) { // Definition found, but no form attached throw new FlowableObjectNotFoundException("Case definition does not have a start form defined: " + caseDefinition.getId()); } return formInfo; } }
CaseDefinition caseDefinition = CaseDefinitionUtil.getCaseDefinition(caseDefinitionId); CmmnModel cmmnModel = CaseDefinitionUtil.getCmmnModel(caseDefinitionId); Case caseModel = cmmnModel.getCaseById(caseDefinition.getKey()); Stage planModel = caseModel.getPlanModel();
Case caze = cmmnModel.getCaseById(caseDefinition.getKey()); Stage planModel = caze.getPlanModel(); if (planModel != null && StringUtils.isNotEmpty(planModel.getFormKey())) {
protected CaseInstanceEntity createCaseInstanceEntityFromDefinition(CommandContext commandContext, CaseDefinition caseDefinition) { CaseInstanceEntityManager caseInstanceEntityManager = CommandContextUtil.getCaseInstanceEntityManager(commandContext); CaseInstanceEntity caseInstanceEntity = caseInstanceEntityManager.create(); caseInstanceEntity.setCaseDefinitionId(caseDefinition.getId()); caseInstanceEntity.setStartTime(CommandContextUtil.getCmmnEngineConfiguration(commandContext).getClock().getCurrentTime()); caseInstanceEntity.setState(CaseInstanceState.ACTIVE); caseInstanceEntity.setTenantId(caseDefinition.getTenantId()); String authenticatedUserId = Authentication.getAuthenticatedUserId(); caseInstanceEntity.setStartUserId(authenticatedUserId); caseInstanceEntityManager.insert(caseInstanceEntity); if (authenticatedUserId != null) { IdentityLinkUtil.createCaseInstanceIdentityLink(caseInstanceEntity, authenticatedUserId, null, IdentityLinkType.STARTER); } caseInstanceEntity.setSatisfiedSentryPartInstances(new ArrayList<>(1)); CmmnDeploymentManager deploymentManager = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getDeploymentManager(); CmmnModel cmmnModel = deploymentManager.resolveCaseDefinition(caseDefinition).getCmmnModel(); Case caseModel = cmmnModel.getCaseById(caseDefinition.getKey()); if (caseModel.getInitiatorVariableName() != null) { caseInstanceEntity.setVariable(caseModel.getInitiatorVariableName(), Authentication.getAuthenticatedUserId()); } return caseInstanceEntity; }