protected Stage getPlanModel(CaseInstanceEntity caseInstanceEntity) { return CaseDefinitionUtil.getCase(caseInstanceEntity.getCaseDefinitionId()).getPlanModel(); }
protected List<FormDefinition> getFormDefinitionsFromModel(Case caseModel, CaseDefinition caseDefinition) { Set<String> formKeys = new HashSet<>(); List<FormDefinition> formDefinitions = new ArrayList<>(); // for all user tasks List<HumanTask> humanTasks = caseModel.getPlanModel().findPlanItemDefinitionsOfType(HumanTask.class, true); for (HumanTask humanTask : humanTasks) { if (StringUtils.isNotEmpty(humanTask.getFormKey())) { formKeys.add(humanTask.getFormKey()); } } for (String formKey : formKeys) { addFormDefinitionToCollection(formDefinitions, formKey, caseDefinition); } return formDefinitions; }
if (caseModel.getPlanModel().getPlanItems().isEmpty()) { Stage planModel = caseModel.getPlanModel();
protected List<DmnDecisionTable> getDecisionTablesFromModel(Case caseModel, CaseDefinition caseDefinition) { Set<String> decisionTableKeys = new HashSet<>(); List<DmnDecisionTable> decisionTables = new ArrayList<>(); List<DecisionTask> decisionTasks = caseModel.getPlanModel().findPlanItemDefinitionsOfType(DecisionTask.class, true); for (DecisionTask decisionTask : decisionTasks) { if (decisionTask.getFieldExtensions() != null && decisionTask.getFieldExtensions().size() > 0) { for (FieldExtension fieldExtension : decisionTask.getFieldExtensions()) { if ("decisionTableReferenceKey".equals(fieldExtension.getFieldName())) { String decisionTableReferenceKey = fieldExtension.getStringValue(); if (!decisionTableKeys.contains(decisionTableReferenceKey)) { addDecisionTableToCollection(decisionTables, decisionTableReferenceKey, caseDefinition); decisionTableKeys.add(decisionTableReferenceKey); } break; } } } } return decisionTables; }
public void addExitCriteriaToCurrentElement(Criterion exitCriterion) { addExitCriterion(exitCriterion); ListIterator<CmmnElement> iterator = currentCmmnElements.listIterator(currentCmmnElements.size()); HasExitCriteria hasExitCriteria = null; while (hasExitCriteria == null && iterator.hasPrevious()) { CmmnElement cmmnElement = iterator.previous(); if (cmmnElement instanceof HasExitCriteria) { hasExitCriteria = (HasExitCriteria) cmmnElement; } } if (hasExitCriteria == null) { hasExitCriteria = getCurrentCase().getPlanModel(); } if (StringUtils.isEmpty(exitCriterion.getId())) { // An id is expected by the evaluation algorithm, so setting an internal one if there isn't one exitCriterion.setId("exitCriterion_" + (hasExitCriteria.getExitCriteria().size() + 1)); } exitCriterion.setAttachedToRefId(hasExitCriteria.getId()); hasExitCriteria.getExitCriteria().add(exitCriterion); }
public void processDI(CmmnModel cmmnModel, List<CaseDefinitionEntity> caseDefinitions) { if (caseDefinitions.isEmpty()) { return; } if (!cmmnModel.getLocationMap().isEmpty()) { List<String> planModelIds = new ArrayList<>(); for (Case caseObject : cmmnModel.getCases()) { planModelIds.add(caseObject.getPlanModel().getId()); } // Verify if all referenced elements exist for (String cmmnReference : cmmnModel.getLocationMap().keySet()) { if (planModelIds.contains(cmmnReference)) { continue; } if (cmmnModel.findPlanItem(cmmnReference) == null && cmmnModel.getCriterion(cmmnReference) == null) { logger.warn("Invalid reference in diagram interchange definition: could not find {}", cmmnReference); } } for (Case caseObject : cmmnModel.getCases()) { CaseDefinitionEntity caseDefinition = getCaseDefinition(caseObject.getId(), caseDefinitions); if (caseDefinition != null) { caseDefinition.setHasGraphicalNotation(true); } } } }
if (elementId.equals(model.getPrimaryCase().getPlanModel().getId())) { writePlanModel(model.getPrimaryCase().getPlanModel(), model, xtw);
elementNode.put("id", caseObject.getPlanModel().getId()); elementNode.put("name", caseObject.getPlanModel().getName()); GraphicInfo graphicInfo = pojoModel.getGraphicInfo(caseObject.getPlanModel().getId()); if (graphicInfo != null) { fillGraphicInfo(elementNode, graphicInfo, true); elementArray.add(elementNode); processCriteria(caseObject.getPlanModel().getExitCriteria(), "ExitCriterion", pojoModel, elementArray); processElements(caseObject.getPlanModel().getPlanItems(), pojoModel, elementArray, associationArray, completedElements, activeElements, availableElements, diagramInfo);
elementNode.put("id", caseObject.getPlanModel().getId()); elementNode.put("name", caseObject.getPlanModel().getName()); GraphicInfo graphicInfo = pojoModel.getGraphicInfo(caseObject.getPlanModel().getId()); if (graphicInfo != null) { fillGraphicInfo(elementNode, graphicInfo, true); elementArray.add(elementNode); processCriteria(caseObject.getPlanModel().getExitCriteria(), "ExitCriterion", pojoModel, elementArray); processElements(caseObject.getPlanModel().getPlanItems(), pojoModel, elementArray, flowArray, diagramInfo);
List<Stage> stages = cmmnModel.getPrimaryCase().getPlanModel().findPlanItemDefinitionsOfType(Stage.class, true);
protected boolean isPlanModelComplete() { boolean allRequiredChildrenInEndState = isEndStateReachedForAllRequiredChildPlanItems(caseInstanceEntity); if (allRequiredChildrenInEndState) { caseInstanceEntity.setCompleteable(true); } boolean isAutoComplete = CaseDefinitionUtil.getCase(caseInstanceEntity.getCaseDefinitionId()).getPlanModel().isAutoComplete(); if (caseInstanceEntity.isCompleteable()) { if (isAutoComplete) { return true; } else { return isAvailableChildPlanCompletionNeutralOrNotActive(caseInstanceEntity); } } else { return false; } }
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); } } }
@Override public void run() { super.run(); Stage stage = CaseDefinitionUtil.getCase(caseInstanceEntity.getCaseDefinitionId()).getPlanModel(); createPlanItemInstances(commandContext, stage.getPlanItems(), caseInstanceEntity.getCaseDefinitionId(), caseInstanceEntity.getId(), null, caseInstanceEntity.getTenantId()); CommandContextUtil.getAgenda(commandContext).planEvaluateCriteriaOperation(caseInstanceEntity.getId()); }
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 processCmmnElements(ConversionHelper conversionHelper) { CmmnModel cmmnModel = conversionHelper.getCmmnModel(); for (Case caze : cmmnModel.getCases()) { processPlanFragment(cmmnModel, caze.getPlanModel()); processSentries(caze.getPlanModel(), caze.getPlanModel()); for (CaseElement caseElement : conversionHelper.getCaseElements().get(caze)) { caze.getAllCaseElements().put(caseElement.getId(), caseElement);
CmmnModel cmmnModel = CaseDefinitionUtil.getCmmnModel(caseDefinitionId); Case caseModel = cmmnModel.getCaseById(caseDefinition.getKey()); Stage planModel = caseModel.getPlanModel();
@Override protected void executeParse(CmmnParserImpl cmmnParser, CmmnParseResult cmmnParseResult, Case caze) { CaseDefinitionEntity caseDefinitionEntity = CommandContextUtil.getCaseDefinitionEntityManager().create(); caseDefinitionEntity.setKey(caze.getId()); caseDefinitionEntity.setName(caze.getName()); caseDefinitionEntity.setDescription(caze.getDocumentation()); caseDefinitionEntity.setCategory(cmmnParseResult.getCmmnModel().getTargetNamespace()); caseDefinitionEntity.setDeploymentId(cmmnParseResult.getResourceEntity().getDeploymentId()); cmmnParseResult.addCaseDefinition(caseDefinitionEntity, cmmnParseResult.getResourceEntity(), cmmnParseResult.getCmmnModel()); processPlanFragment(cmmnParser, cmmnParseResult, caze.getPlanModel()); }
Stage planModel = caze.getPlanModel(); if (planModel != null && StringUtils.isNotEmpty(planModel.getFormKey())) { FormRepositoryService formRepositoryService = CommandContextUtil.getFormRepositoryService(commandContext);