Java 向DMN表添加新规则时验证DMN规则不重叠

Java 向DMN表添加新规则时验证DMN规则不重叠,java,angularjs,camunda,Java,Angularjs,Camunda,我正在我的应用程序中使用camunda DMN(在angular、java、spring中) 我想在向DMN表添加新规则时验证规则是否重叠 例如,下面是我的DMN表 |x | y | o/p| |50 |“ABC”| |100 |“XYZ”| 假设用户是如此愚蠢:D,并且可以创建如上所述的规则 现在,如果上面DMN的i/p是x=10和y=99,那么它满足这两个规则 如果我使用唯一命中策略,它不会在添加新规则时显示错误,而是在评估DMN表时显示错误。我不想这样:( 如何在使用camunda dm

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

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

例如,下面是我的DMN表


|x | y | o/p| |50 |“ABC”|

|100 |“XYZ”|

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

现在,如果上面DMN的i/p是x=10和y=99,那么它满足这两个规则

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


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

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

这是currentl不可能,因为它需要了解所有可能的输入组合。此外,推断所有规则的重叠值范围可能相当困难。

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

干杯
Bernd

正如Sebastian指出的那样,没有内置的功能来实现这一点。然而,我们在一个项目中讨论过,您可以创建一个参数化JUnit测试用例,并自己使用所有输入可能性的排列来运行它。如果您使用一个没有唯一结果的输入调用决策表,您将得到一个异常t

干杯 Bernd

看一看,这可能会有所帮助。文档中有一个链接,指向使用dmn js的github项目,其中添加了规则有效性,也有一个在线版本,您可以在其中查看它的工作原理。

看一看,这可能会有所帮助。文档中有一个链接,指向使用dmn js的github项目,其中添加了规则有效性,也有一个在线版本,您可以在其中查看它的工作原理。

谢谢您的回答:)。只有一个问题,是否有java函数,例如考虑到正在讨论的dmn表,该表返回x=10的所有规则(假设x输入将没有任何表达式。它将只有数字)否,也许您可以使用来实现这样一个函数。它是一个围绕DMN XML结构的包装,允许您访问不同的元素,例如参见.Danke:)链接非常有用。谢谢您的回答:)。只有一个问题,是否有java函数,例如考虑到正在讨论的dmn表,该表返回x=10的所有规则(假设x输入将没有任何表达式。它将只有数字)否,也许您可以使用来实现这样一个函数。它是一个围绕DMN XML结构的包装,允许您访问不同的元素,例如参见.Danke:)链接非常有用。