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

Таблица решений может иметь один или несколько входов, также называемых входными клаузами. Входная клауза определяет идентификатор, метку, выражение и тип входа таблицы решений.
Вход можно отредактировать двойным щелчком по соответствующему заголовку столбца в таблице решений.
Входная клауза представляется элементом input внутри XML-элемента
decisionTable.
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" id="definitions" name="definitions" namespace="http://camunda.org/schema/1.0/dmn">
<decision id="dish" name="Dish">
<decisionTable id="decisionTable">
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string">
<text>season</text>
</inputExpression>
</input>
<!-- ... -->
</decisionTable>
</decision>
</definitions>
Идентификатор входа
Идентификатор входа — это уникальный идентификатор входа таблицы решений. Он используется
Camunda 7 для ссылки на вход в истории вычисленных
решений. Поэтому он является обязательным для движка DMN OpenBPM. Он задаётся в
атрибуте id XML-элемента input.
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string">
<text>season</text>
</inputExpression>
</input>
Метка входа

Метка входа — это краткое описание входа. Она задаётся в XML-элементе input
в атрибуте label. Обратите внимание, что метка не является обязательной, но
рекомендуется, так как она помогает понять решение.
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string">
<text>season</text>
</inputExpression>
</input>
Входное выражение

Входное выражение определяет, как формируется значение входной клаузы.
Это выражение, которое будет вычислено движком DMN. Обычно оно
простое и ссылается на переменную, доступную во время вычисления.
Выражение задаётся внутри элемента text, который является дочерним для
XML-элемента inputExpression.
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string">
<text>season</text>
</inputExpression>
</input>
Определение типа входа

Тип входной клаузы можно указать в атрибуте typeRef XML-элемента
inputExpression. После того как входное выражение вычислено
движком DMN, он преобразует результат к указанному типу. Поддерживаемые типы
перечислены в Руководстве пользователя.
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string">
<text>season</text>
</inputExpression>
</input>
Обратите внимание, что тип не является обязательным, но рекомендуется, так как он помогает понять возможные входные значения и обеспечивает типобезопасность, позволяя выявлять неожиданные входные значения.
Язык выражений входа
Язык выражений входного выражения можно указать в
атрибуте expressionLanguage XML-элемента inputExpression.
Поддерживаемые языки выражений перечислены в Руководстве пользователя.
<input id="input1" label="Season">
<inputExpression id="inputExpression1" typeRef="string" expressionLanguage="groovy">
<text>season</text>
</inputExpression>
</input>
Если язык выражений не задан, используется глобальный язык
выражений, заданный в 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>
Если глобальный язык выражений не задан, вместо него используется язык выражений по умолчанию. Языком выражений по умолчанию для входных выражений является FEEL. Подробнее о языках выражений см. в Руководстве пользователя.
Имя переменной входа
Когда входное выражение вычисляется, возвращаемое значение сохраняется в переменной.
Имя переменной можно указать с помощью атрибута расширения
camunda:inputVariable элемента input. По умолчанию
имя — cellInput.
Чтобы использовать этот атрибут, необходимо определить пространство имён DMN OpenBPM
xmlns:camunda="http://camunda.org/schema/1.0/dmn в XML.
<definitions id="definitions"
name="definitions"
xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/"
xmlns:camunda="http://camunda.org/schema/1.0/dmn"
namespace="http://camunda.org/schema/1.0/dmn">
<decision id="dish" name="Dish">
<decisionTable id="decisionTable">
<input id="input1"
label="Season"
camunda:inputVariable="currentSeason">
<!-- ... -->
</input>
<!-- ... -->
</decisionTable>
</decision>
</definitions>
Переменную можно использовать в выражении входного условия. Например,
FEEL-выражение currentSeason != "Fall" проверяет, что вход season не равен
"Fall".
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org