我在我的应用程序中使用camunda DMN(在angular,java,spring中)。
我想验证在向DMN表添加新规则时规则是否重叠。
例如以下是我的DMN表,
| < 9 | > 50 | " ABC" |
| < 20 | > 100 | " XYZ" |
考虑用户是如此愚蠢:D,并且可以创建如上所述的规则。
现在,如果上述DMN的i / p为x = 10且y = 99,则它满足两个规则。
如果我使用UNIQUE命中策略,它在添加新规则时不会显示错误,而是会在评估DMN表时显示给我。我不想那样:(
如何在使用camunda dmn js api或camunda dmn java api创建规则时避免规则重叠?
答案 0 :(得分:3)
目前这是不可能的,因为它需要有关所有可能的输入组合的知识。另外,推断所有规则的重叠值范围可能相当困难。
答案 1 :(得分:0)
正如塞巴斯蒂安指出的,没有内置的功能来实现这一目标。但是,我们在一个项目中讨论过,您可以创建一个参数化的JUnit测试用例,并自己运行所有输入可能性的排列。如果使用没有唯一结果的输入调用决策表,则会出现异常。
干杯 贝恩德
答案 2 :(得分:0)
看看https://arxiv.org/pdf/1603.07466v1.pdf,这可能有所帮助。文档中有一个链接到dith-js的github项目,其中添加了规则验证,也添加到在线版本中,您可以看到它是如何工作的。