Предварительные условия для выполнения правил в Drools Workbench (7.15) - PullRequest
0 голосов
/ 25 декабря 2018

У нас есть таблица решений, которая не должна выполняться, если значение поля одного из наших объектов фактов не совпадает с одним из (потенциально длинного) списка значений поиска.Содержимое таблицы решений управляется нетехническими пользователями, и мы ищем способ, позволяющий тем же нетехническим пользователям управлять списком значений поиска.

Вот оценка различных подходов, которые мы определили с помощью Drools Workbench и внешних интеграций (при необходимости) с плюсами и минусами.Нам интересно, есть ли более элегантный подход.

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

  1. Список жестких кодов htsкоды для сопоставления в каждой строке в таблице решений в столбце условий

    • Плюсы:
      • Одно место для управления справочными данными для правила
    • Минусы:
      • Избыточная информация в каждой строке таблицы
      • Беспорядок в управлении длинным разделенным запятыми списком значений совпадений в ячейке таблицы
  2. Управляемое перечисление кодов HTS в рабочей среде drools, используемой в столбце условий электронной таблицы правил

    • Плюсы:
      • Управление списком HTS в рабочей среде Drools, перечисления просты дляуправление
    • Минусы:
      • Другой механизм (менее удобный?) для управления списком HTS, чем для управления другими условиями правил (все остальное в загруженной электронной таблице, список HTS управляетсяпрямо в верстаке)
  3. Связанные таблицы решений: 1 таблица решений содержит список кодов hts для правила и устанавливает флаг tat, вызывающий срабатывание таблицы правил

    • Плюсы:
      • Управление списком HTS в электронной таблице так же, как и остальные правила - согласованное управление
    • Минусы:
      • Две таблицыдля каждого правила с фильтром HTS / категории продукта
  4. Список кодов HTS, которые хранятся в базе данных и управляются в ней, загружаются динамически как перечисление или через объект данных,правила в электронной таблице

    • Плюсы:
      • В соответствии с текущим пользовательским подходом - загрузить электронную таблицу hts в пользовательский интерфейс, который загружен в перечисление, на которое ссылается электронная таблица правил drools
    • Минусы:
      • Отдельный интерфейс для загрузки таблицы перечисления по сравнению с основным листом правил
      • Пользовательский интерфейс за пределами рабочей среды
  5. Шаблон правила, а нетаблица решений со всеми данными правил, хранящимися в базе данных

    • Плюсы:
      • Подход к ссылочным данным в соответствии с существующим механизмом правил, загрузка листов, управление листами в пользовательский интерфейс
      • Все справочные данные обрабатываются одинаково (хранятся в базе данных, загружаются через пользовательский интерфейс)
    • Минусы:
      • Правила управляются в отдельном интерфейсе от справочных данных (второстепенные?)
      • Правило логики, отображающее входные данные для бинов или коэффициентов, отделенных от фактических данных бина и коэффициентов (младший?)
...