Создание модели

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Чтобы создать новую DMN-модель с нуля, вам необходимо создать экземпляр пустой DMN-модели, используя следующий метод:

DmnModelInstance modelInstance = Dmn.createEmptyModel();

Следующий шаг — создать элемент определений по стандарту DMN. Установите на нем целевое пространство имен и добавьте его к только что созданному экземпляру пустой модели.

 Definitions definitions = modelInstance.newInstance(Definitions.class);
 definitions.setNamespace("http://camunda.org/schema/1.0/dmn");
 definitions.setName("definitions");
 definitions.setId("definitions");
 modelInstance.setDefinitions(definitions);

Обычно вам требуется добавить решение к вашей модели. Для этого следует пройти те же три шага, что и при создании элемента определений стандарта DMN:

  1. создать новый экземпляр DMN-элемента

  2. Установить атрибуты и дочерние элементы на экземпляр элемента

  3. Добавить только что созданный экземпляр элемента к соответствующему родительскому элементу

Decision decision = modelInstance.newInstance(Decision.class);
decision.setId("testGenerated");
decision.setName("generationtest");
definitions.addChildElement(decision);

Чтобы упростить эту часто повторяемую процедуру, вы можете использовать вспомогательный метод подобный приведенному ниже.

protected <T extends DmnModelElementInstance> T createElement(DmnModelElementInstance parentElement, String id, Class<T> elementClass) {
  T element = modelInstance.newInstance(elementClass);
  element.setAttributeValue("id", id, true);
  parentElement.addChildElement(element);
  return element;
}

Валидируем модель согласно спецификации DMN 1.3 и конвертируем ее в XML строку либо сохраняем ее в файл или в стрим.

ДИАГРАМА DMN 1.3:

Получившаяся XML-строка будет ссылаться на спецификацию DMN 1.3.

// validate the model
Dmn.validateModel(modelInstance);

// convert to string
String xmlString = Dmn.convertToString(modelInstance);

// write to output stream
OutputStream outputStream = new OutputStream(...);
Dmn.writeModelToStream(outputStream, modelInstance);

// write to file
File file = new File(...);
Dmn.writeModelToFile(file, modelInstance);

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org