Drools决策表“不”声明

时间:2017-02-08 00:12:21

标签: drools

我觉得这个问题可能没有一个简单的答案。

让我们假设这是我的决策表,它在一个名为“input”的对象实例上运行。

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

1             5              11
1             6              11

我的情况是,如果a不是1,而b不在(5,6)中,则将c设置为11。 但是,如果b为6,则第一个规则仍将触发,因为b不是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

此表中还有更多内容,这使得维护起来更加困难。

1 个答案:

答案 0 :(得分:0)

如果您正在使用XLS决策表,那么类似于此决策表应该有效。 enter image description here

如果您熟悉drools或jbpm工作台,我还可以为您提供基于指导决策表的解决方案。

希望这有帮助,让我知道。