public static void writeCase(Case caseModel, XMLStreamWriter xtw) throws Exception { xtw.writeStartElement(ELEMENT_CASE); xtw.writeAttribute(ATTRIBUTE_ID, caseModel.getId()); if (StringUtils.isNotEmpty(caseModel.getName())) { xtw.writeAttribute(ATTRIBUTE_NAME, caseModel.getName()); } if (StringUtils.isNotEmpty(caseModel.getInitiatorVariableName())) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_INITIATOR_VARIABLE_NAME, caseModel.getInitiatorVariableName()); } if (!caseModel.getCandidateStarterUsers().isEmpty()) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_CASE_CANDIDATE_USERS, CmmnXmlUtil.convertToDelimitedString(caseModel.getCandidateStarterUsers())); } if (!caseModel.getCandidateStarterGroups().isEmpty()) { xtw.writeAttribute(FLOWABLE_EXTENSIONS_PREFIX, FLOWABLE_EXTENSIONS_NAMESPACE, ATTRIBUTE_CASE_CANDIDATE_GROUPS, CmmnXmlUtil.convertToDelimitedString(caseModel.getCandidateStarterGroups())); } if (StringUtils.isNotEmpty(caseModel.getDocumentation())) { xtw.writeStartElement(ELEMENT_DOCUMENTATION); xtw.writeCharacters(caseModel.getDocumentation()); xtw.writeEndElement(); } } }
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; }