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

Таблица решений может иметь одно или несколько правил. Каждое правило содержит входные и выходные условия. Входные условия — это условие, а выходные условия — это заключение правила. Если каждое входное условие (условие) удовлетворено, то правило удовлетворено, и результат решения содержит выходные условия (заключение) этого правила.
Правило представляется элементом rule внутри XML-элемента decisionTable.
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!-- ... -->
<rule id="rule2-950612891-2">
<inputEntry id="inputEntry21">
<text>"Winter"</text>
</inputEntry>
<inputEntry id="inputEntry22">
<text><![CDATA[<= 8]]></text>
</inputEntry>
<outputEntry id="outputEntry2">
<text>"Roastbeef"</text>
</outputEntry>
</rule>
<!-- ... -->
</decisionTable>
</decision>
</definitions>
Входное условие (Condition)

Правило может иметь одно или несколько входных условий, которые являются условиями правила.
Каждое входное условие содержит выражение в элементе text, который является дочерним для
XML-элемента inputEntry.
Входное условие удовлетворено, когда вычисленное выражение возвращает true.
<inputEntry id="inputEntry41">
<text>"Spring"</text>
</inputEntry>
Язык выражений входного условия
Язык выражений входного условия можно указать в
атрибуте expressionLanguage XML-элемента inputEntry. Поддерживаемые
языки выражений перечислены в Руководстве пользователя.
<inputEntry id="inputEntry41"
expressionLanguage="juel">
<text>cellInput == "Spring"</text>
</inputEntry>
Если язык выражений не задан, используется глобальный язык
выражений, заданный в 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. Подробнее о языках выражений см. в Руководстве пользователя.
Выходное условие (Conclusion)

Правило может иметь одно или несколько выходных условий, которые являются заключениями
правила. Каждое выходное условие содержит выражение в элементе text, который является дочерним для
XML-элемента outputEntry.
<outputEntry id="outputEntry4">
<text>"Steak"</text>
</outputEntry>
Язык выражений выходного условия
Язык выражений выражения можно указать в
атрибуте expressionLanguage XML-элемента outputEntry. Поддерживаемые
языки выражений перечислены в Руководстве пользователя.
<outputEntry id="outputEntry4"
expressionLanguage="groovy">
<text>"Steak"</text>
</outputEntry>
Если язык выражений не задан, используется глобальный язык
выражений, заданный в 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. Подробнее о языках выражений см. в Руководстве пользователя.
Пустые условия
Пустое входное условие
Если входное условие неактуально для правила, выражение оставляется пустым, что всегда считается удовлетворённым.
<inputEntry id="inputEntry41">
<text/>
</inputEntry>
Если в качестве языка выражений используется FEEL, то пустое входное условие представляется
символом -. В противном случае выражение остаётся пустым.
Описание

Правило можно снабдить описанием, которое предоставляет дополнительную
информацию. Текст описания задаётся внутри XML-элемента description.
<rule id="rule4">
<description>Save money</description>
<!-- ... -->
</rule>
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org