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

Литеральное выражение решения представляет логику решения, которая может быть изображена как выражение в DMN 1.3. Оно состоит из литерального выражения и переменной.
Литеральное выражение решения представлено элементом literalExpression внутри XML-элемента decision.
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" id="definitions" name="definitions" namespace="http://camunda.org/schema/1.0/dmn">
<decision id="season" name="Season">
<variable name="season" typeRef="string" />
<literalExpression>
<text>calendar.getSeason(date)</text>
</literalExpression>
</decision>
</definitions>
Имя решения

Имя описывает решение, для которого литеральное выражение предоставляет
логику решения. Оно задаётся в атрибуте name элемента decision.
<decision id="season" name="Season">
<!-- ... -->
</decision>
Идентификатор решения

Идентификатор — это технический идентификатор решения. Он задаётся в атрибуте id
элемента decision.
Каждое решение должно иметь уникальный идентификатор при развёртывании в Camunda 7.
Движок использует этот идентификатор в качестве ключа решения развёрнутого
DecisionDefinition.
<decision id="season" name="Season">
<!-- ... -->
</decision>
Литеральное выражение
Литеральное выражение определяет, как генерируется значение решения. Это выражение, которое будет вычислено движком DMN. Оно может использоваться для выполнения сложного вычисления, для вызова bean-компонента, предоставляющего логику решения, или для объединения выходных значений требуемых решений.
Выражение задаётся внутри элемента text, который является дочерним по отношению к XML-элементу literalExpression.
<literalExpression>
<text>calendar.getSeason(date)</text>
</literalExpression>
Язык литерального выражения
Язык выражения для литерального выражения можно указать с помощью
атрибута expressionLanguage XML-элемента literalExpression.
Поддерживаемые языки выражений перечислены в руководстве пользователя.
<literalExpression expressionLanguage="groovy">
<text>calendar.getSeason(date)</text>
</literalExpression>
Если язык выражения не задан, используется глобальный язык выражения,
который задаётся в XML-элементе definitions.
<definitions id="definitions"
name="definitions"
xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/"
expressionLanguage="groovy"
namespace="http://camunda.org/schema/1.0/dmn">
<!-- ... -->
</definitions>
Если глобальный язык выражения не задан, вместо него используется язык выражения по умолчанию. Язык выражения по умолчанию для литеральных выражений — JUEL. Обратитесь к руководству пользователя, чтобы узнать больше о языках выражений.
Переменная
Литеральное выражение решения должно иметь переменную, которая задаёт имя и тип результата решения.
Переменная представлена элементом variable внутри XML-элемента decision.
<decision id="season" name="Season">
<variable name="season" />
</decision>
Имя переменной
Имя переменной используется для ссылки на значение литерального выражения в результате решения.
Оно задаётся в атрибуте name XML-элемента variable.
<variable name="season" />
Определение типа переменной
Тип результата решения можно указать с помощью атрибута typeRef XML-элемента
variable. После того как выражение вычислено
движком DMN, он преобразует результат к указанному типу. Поддерживаемые типы
перечислены в руководстве пользователя.
<variable name="season" typeRef="string" />
Обратите внимание, что тип не является обязательным, но рекомендуется, поскольку он обеспечивает типобезопасность результата выражения.
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org