将新规则添加到DMN表

时间:2016-02-08 07:51:38

标签: java angularjs camunda

我在我的应用程序中使用camunda DMN(在angular,java,spring中)。

我想验证在向DMN表添加新规则时规则是否重叠。

例如以下是我的DMN表,

| x | y | o / p |

| < 9 | > 50 | " ABC" |

| < 20 | > 100 | " XYZ" |

考虑用户是如此愚蠢:D,并且可以创建如上所述的规则。

现在,如果上述DMN的i / p为x = 10且y = 99,则它满足两个规则。

如果我使用UNIQUE命中策略,它在添加新规则时不会显示错误,而是会在评估DMN表时显示给我。我不想那样:(

如何在使用camunda dmn js api或camunda dmn java api创建规则时避免规则重叠?

3 个答案:

答案 0 :(得分:3)

目前这是不可能的,因为它需要有关所有可能的输入组合的知识。另外,推断所有规则的重叠值范围可能相当困难。

答案 1 :(得分:0)

正如塞巴斯蒂安指出的,没有内置的功能来实现这一目标。但是,我们在一个项目中讨论过,您可以创建一个参数化的JUnit测试用例,并自己运行所有输入可能性的排列。如果使用没有唯一结果的输入调用决策表,则会出现异常。

干杯 贝恩德

答案 2 :(得分:0)

看看https://arxiv.org/pdf/1603.07466v1.pdf,这可能有所帮助。文档中有一个链接到dith-js的github项目,其中添加了规则验证,也添加到在线版本中,您可以看到它是如何工作的。