Дерево принятия решений или бизнес-правила

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

empty

Рассмотрим на примере дерева принятия решений "правило ruleCheckAge". Простой вариант: в бизнес-процессе можно инициализировать вызов правила "max" - в таком случае сначала вызовутся два зависимых-дочерних правила, будет произведено вычисление и только потом выполнится "max". А можно инициализировать вызов правила "Итоговое решение" и тогда будут вызваны всего его зависимости, начиная с самых нижних правил-узлов: проверка на VIP, Возраст с учетом срока кредита -> max, Минимальный возраст клиента, Пол клиента.


У диаграммы дерева принятия решений один основной элемент "решение/decision", который имеет два типа:

empty

  1. Literal expression / решение язык выражений - элемент нотации DMN, в котором с помощью скриптового языка можно запрограммировать логику и/или описать функцию по обработке данных.
    Поддерживается несколько языков:

empty

  1. Table / решение в виде таблицы - элемент нотации DMN в форме таблицы. Входных параметров может быть несколько, тип входного параметра является простым, допускается использование списков.
    Выходных параметров также может быть несколько. Формат выходных параметров может иметь:

    • 1 столбец, имеющий одно значение - на выходе один параметр имеющий простой тип;
    • 2+ столбцов - по умолчанию выходные параметры определяются в список "карта" = ключ-значение. Требуемый формат можно задать на элементе "Задача" в диаграмме процесса. Доступны следующие решения для результата:
      • singleEntry - используется когда в выходных параметрах указан один столбец;
      • singleResult - используется когда в выходных параметрах указано 2+ столбца. Используется для всех политик правила кроме: unique, first, всех видов collect;
      • colectEntries - используется когда в выходных параметрах указан один столбец, но по политике правила возможно несколько результирующих значений (выполнений условий правила);
      • resultList - используется когда в выходных параметрах указано 2+ столбца, при этом по политике правила возможно несколько результирующих значений (выполнений условий правила).

Проектирование элемента нотации BPMN для вызова бизнес-правила

empty

Для того, чтобы в ходе исполнения бизнес-процесса было вызвано бизнес-правило, необходимо спроектировать элемент диаграммы "Задача" нотации BPMN как на примере выше. Для того, чтобы корректно спроектировать элемент понадобится:

  • указать способ имплементации - DMN;
  • заполнить поле "Ссылка на Decision (правило) - указать системное наименование правила (идентификатор) из DMN диаграммы";
  • указать способ связывания - версия бизнес-правила, которая будет использоваться. Можно указать последнюю или номер версии;
  • нить "Переменная результата" - наименование параметра, в который будет записан результат;
  • указать "Карта Результата решения" - формат выходных параметров;

Входные параметры в бизнес-правило передаются из контекста бизнес-процесса. Если в результате исполнения бизнес-правила входных переменных в контексте бизнес-процесса не окажется, то будет инициирована ошибка, и произойдет откат транзакции к последней точке сохранения.

Политика применения правил / Hit Policy

Политика определяет сколько правил таблицы решений может быть удовлетворено, и какие из удовлетворенных правил включаются в результат решения.

empty

Политики Unique,AnyиFirst всегда будут возвращать не более одного удовлетворяемого правила. Политики попаданий Rule Order и Collect могут возвращать несколько удовлетворенных правил.

Поддерживаются следующие политики:

  • Unique - может быть выполнено 0-1 правил. Если выполняется более 1 правила, то происходит нарушение политики;
  • Any - можно удовлетворить несколько правил. Однако все удовлетворяемые правила должны генерировать один и тот же результат. Если выполняются несколько правил, которые генерируют разные выходные данные, политика попаданий нарушается;
  • First - можно удовлетворить несколько правил. Результат таблицы решений содержит только вывод первого выполненного правила;
  • Rule order - можно удовлетворить несколько правил. Результат таблицы решений содержит выходные данные всех удовлетворяемых правил в порядке следования правил в таблице решений;
  • Collect - можно удовлетворить несколько правил. Результат таблицы решений содержит вывод всех удовлетворяемых правил в произвольном порядке в виде списка. Для коллекции можно указать агрегатор. Если указан агрегатор, то результат будет содержать только одну выходную запись, а функция агрегатора будет применена ко всем удовлетворенным правилам;
  • Priority;
  • Output order

Примеры диаграмм дерева принятия решений

Скачать DMN ruleCheckAge Скачать DMN скоринговая карта клиента