Создание модели
|
Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine |
Чтобы создать новую CMMN-модель с нуля, необходимо создать пустой экземпляр CMMN-модели с помощью следующего метода:
CmmnModelInstance modelInstance = Cmmn.createEmptyModel();
Следующий шаг — создание определения CMMN-элемента. Установите на нем целевое пространство имен и затем добавьте его к только что созданному экземпляру пустой модели.
Definitions definitions = modelInstance.newInstance(Definitions.class);
definitions.setTargetNamespace("http://camunda.org/examples");
modelInstance.setDefinitions(definitions);
Обычно вам бывает необходимо добавить сценарий к вашей модели. Для этого требуется выполнить те же три шага, что и при создании элемента CMMN определений:
-
Создать новый экземпляр CMMN-элемента
-
Установить атрибуты и дочерние элементы на экземпляр элемента
-
Добавить только что созданный экземпляр элемента к соответствующему родительскому элементу
Case caseElement = modelInstance.newInstance(Case.class);
caseElement.setId("a-case");
definitions.addChildElement(caseElement);
Чтобы упростить эту часто повторяемую процедуру, вы можете использовать вспомогательный метод подобный приведенному ниже.
protected <T extends CmmnModelElementInstance> T createElement(CmmnModelElementInstance parentElement, String id, Class<T> elementClass) {
T element = modelInstance.newInstance(elementClass);
element.setAttributeValue("id", id, true);
parentElement.addChildElement(element);
return element;
}
Валидируем модель согласно спецификации CMMN 1.1 и конвертируем ее в XML строку либо сохраняем ее в файл или в стрим.
// validate the model
Cmmn.validateModel(modelInstance);
// convert to string
String xmlString = Cmmn.convertToString(modelInstance);
// write to output stream
OutputStream outputStream = new OutputStream(...);
Cmmn.writeModelToStream(outputStream, modelInstance);
// write to file
File file = new File(...);
Cmmn.writeModelToFile(file, modelInstance);
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org