Правило таблицы решений 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, то пустое входное условие представляется символом -. В противном случае выражение остаётся пустым.

Пустое выходное условие

Если выходное условие пустое, то выход игнорируется и не входит в результат таблицы решений.

<outputEntry id="outputEntry4">
  <text/>
</outputEntry>

Оба условия пустые

Если у правила пустые входное и выходное условия, результат вычисления определяется с приоритетом результата пустого входа.

Описание

Описание

Правило можно снабдить описанием, которое предоставляет дополнительную информацию. Текст описания задаётся внутри 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