@Override protected void writePlanItemDefinitionSpecificAttributes(Stage stage, XMLStreamWriter xtw) throws Exception { super.writePlanItemDefinitionSpecificAttributes(stage, xtw); if (StringUtils.isNotEmpty(stage.getFormKey())) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_FORM_KEY, stage.getFormKey()); } if (stage.isAutoComplete()) { xtw.writeAttribute(ATTRIBUTE_IS_AUTO_COMPLETE, Boolean.toString(stage.isAutoComplete())); } if (StringUtils.isNotEmpty(stage.getAutoCompleteCondition())) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_AUTO_COMPLETE_CONDITION, stage.getAutoCompleteCondition()); } if (stage.getDisplayOrder() != null) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_DISPLAY_ORDER, String.valueOf(stage.getDisplayOrder())); } if (!stage.isIncludeInStageOverview()) { // if it's missing, it's true by default xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_INCLUDE_IN_STAGE_OVERVIEW, "false"); } }
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; } }
protected void setCaseDefinitionVersionsAndIds(CmmnParseResult parseResult, Map<CaseDefinitionEntity, CaseDefinitionEntity> mapNewToOldCaseDefinitions) { for (CaseDefinitionEntity caseDefinition : parseResult.getAllCaseDefinitions()) { int version = 1; CaseDefinitionEntity latest = mapNewToOldCaseDefinitions.get(caseDefinition); if (latest != null) { version = latest.getVersion() + 1; } caseDefinition.setVersion(version); if (usePrefixId) { caseDefinition.setId(caseDefinition.getIdPrefix() + idGenerator.getNextId()); } else { caseDefinition.setId(idGenerator.getNextId()); } Case caseObject = parseResult.getCmmnCaseForCaseDefinition(caseDefinition); if (caseObject.getPlanModel().getFormKey() != null) { caseDefinition.setHasStartFormKey(true); } } }
Stage planModel = caseModel.getPlanModel(); if (StringUtils.isNotEmpty(planModel.getFormKey())) { CmmnDeployment deployment = CommandContextUtil.getCmmnDeploymentEntityManager(commandContext).findById(caseDefinition.getDeploymentId()); formInfo = formService.getFormInstanceModelByKeyAndParentDeploymentIdAndScopeId(planModel.getFormKey(), deployment.getParentDeploymentId(), caseInstanceId, ScopeTypes.CMMN, null, caseDefinition.getTenantId(), cmmnEngineConfiguration.isFallbackToDefaultTenant());
Case caze = cmmnModel.getCaseById(caseDefinition.getKey()); Stage planModel = caze.getPlanModel(); if (planModel != null && StringUtils.isNotEmpty(planModel.getFormKey())) { FormRepositoryService formRepositoryService = CommandContextUtil.getFormRepositoryService(commandContext); if (formRepositoryService != null) { formInfo = formRepositoryService.getFormModelByKey(planModel.getFormKey()); } else { CmmnEngineConfiguration cmmnEngineConfiguration = CommandContextUtil.getCmmnEngineConfiguration(commandContext); formInfo = formRepositoryService.getFormModelByKey(planModel.getFormKey(), caseInstanceEntity.getTenantId(), cmmnEngineConfiguration.isFallbackToDefaultTenant()); LOGGER.warn("Requesting form model {} without configured formRepositoryService", planModel.getFormKey());