2017-02-08 2 views
0

У меня возникло ощущение, что на этот вопрос может быть нелегкий ответ.Drools таблица решений «нет»

Предположим, что это моя таблица решений, которая работает с экземпляром объекта, называемым «input».

CONDITION  CONDITION  ACTION 
a == $param b != $param input.setC($param) 

1    5    11 
1    6    11 

Мой случай является то, что если а не 1, и б не в (5,6), а затем установить с до 11. Однако, если Ь 6, первое правило все равно будет срабатывать, так как Ь не 5, установив таким образом c в 11.

Я хотел бы сохранить организацию столбцов без необходимости ставить несколько значений в столбце.

ВОПРОС: Есть ли какой-то заголовок, который я могу использовать, который в основном превращает таблицу решений в одно правило, где b не будет ни в одной из строк, где a равно 1? Или какой-то альтернативный метод?

Я соблазн пойти с отрицанием правила:

CONDITION  CONDITION  ACTION 
a == $param b == $param input.setC($param) 

1    1    11 
1    2    11 
1    3    11 
1    4    11 
1    7    11 
1    8    11 

Есть намного больше в этой таблице, и это делает его более трудно поддерживать.

ответ

0

Если вы используете таблицу решений XLS, то аналогичный этому должен работать.

Если вы знакомы с рулонами или рабочим столом jbpm, я могу предоставить вам также решение на основе таблиц с управляемыми решениями.

Надеюсь, что это поможет и дайте мне знать.