在向 DMN 添加新规则时验证 DMN 规则不重叠 table
Validate DMN rule not overlap while adding new rule to DMN table
我在我的应用程序中使用 camunda DMN(在 angular、java、spring)。
我想在向 DMN 添加新规则时验证规则是否不重叠 table。
例如以下是我的 DMN table,
| × |是 | o/p |
| <9 | >50 | "ABC" |
| <20 | >100 | "XYZ" |
考虑到用户很笨:D,可以像上面那样创建规则。
现在如果 i/p 以上 DMN 是 x = 10 和 y = 99 那么它满足这两个规则。
如果我使用 UNIQUE 命中策略,它不会在添加新规则时显示错误,而是在评估 DMN table 时显示错误。我不想要那个:(
如何在使用 camunda dmn js api 或 camunda dmn java api 创建规则时避免规则重叠?
这目前是不可能的,因为它需要了解所有可能的输入组合。此外,推断所有规则的重叠值范围可能非常困难。
正如塞巴斯蒂安指出的那样,没有内置功能可以实现这一点。但是,我们在一个项目中讨论过,您可以创建一个参数化的 JUnit 测试用例,并 运行 它自己使用输入可能性的所有排列。如果您使用没有唯一结果的输入调用决策 table,您将得到一个异常。
干杯
伯恩德
看看 https://arxiv.org/pdf/1603.07466v1.pdf,这可能会有所帮助。文档中有一个 link 到一个带有 dmn-js 的 github 项目,其中添加了规则验证,还有一个在线版本,您可以在其中查看它是如何工作的。
我在我的应用程序中使用 camunda DMN(在 angular、java、spring)。
我想在向 DMN 添加新规则时验证规则是否不重叠 table。
例如以下是我的 DMN table,
| × |是 | o/p |
| <9 | >50 | "ABC" |
| <20 | >100 | "XYZ" |
考虑到用户很笨:D,可以像上面那样创建规则。
现在如果 i/p 以上 DMN 是 x = 10 和 y = 99 那么它满足这两个规则。
如果我使用 UNIQUE 命中策略,它不会在添加新规则时显示错误,而是在评估 DMN table 时显示错误。我不想要那个:(
如何在使用 camunda dmn js api 或 camunda dmn java api 创建规则时避免规则重叠?
这目前是不可能的,因为它需要了解所有可能的输入组合。此外,推断所有规则的重叠值范围可能非常困难。
正如塞巴斯蒂安指出的那样,没有内置功能可以实现这一点。但是,我们在一个项目中讨论过,您可以创建一个参数化的 JUnit 测试用例,并 运行 它自己使用输入可能性的所有排列。如果您使用没有唯一结果的输入调用决策 table,您将得到一个异常。
干杯 伯恩德
看看 https://arxiv.org/pdf/1603.07466v1.pdf,这可能会有所帮助。文档中有一个 link 到一个带有 dmn-js 的 github 项目,其中添加了规则验证,还有一个在线版本,您可以在其中查看它是如何工作的。