预订演示
前页 后页

重叠规则

为命中策略为“ U ”(表示唯一)的决策决策表定义的规则必须是离散的且不重叠。这是一件容易被忽视的事情,即使对于有经验的决策建模者来说,尤其是当一个表变得复杂并且有大量的输入和规则时。使用具有不同含义的括号( round和方形)在 FEEL(足够友好的表达式语言)中使用范围表达式来引入重叠错误是很常见的。

决策表中允许与定义的其他命中策略重叠的规则,例如:

  • 具有A (Any)命中策略的A表可以有重叠规则,只要所有重叠规则具有相同的输出值
  • A表(优先级)命中策略的表格即使输出值不同也可以有重叠规则
  • 即使输出值不同,命中策略为 C(Collect) A表也可能有重叠规则
使用上一节中的插图,我们将展示一个简单的重叠示例,该示例由刚刚讨论过的 FEEL 表达式括号的使用错误引起。此屏幕截图显示了两个规则相互重叠的错误,其中问题有点难以识别。引入该错误是因为 Rule-#2 包括使用方括号,它可以有效地重写为 ' Sales Value >= 10,000 and Sales Value < = 50,000' 。出现问题是因为规则-#1 还涵盖了“销售价值= 50,000”的情况,因此规则-#1 和规则-#2 重叠。

我们可以再次使用Enterprise Architect的内置验证功能来帮助我们识别任何违规行为。以与完整性规则类似的方式,验证器可以找到错误,如果表更复杂,则很难找到。该图显示了向系统输出窗口生成的违规,用于识别违规的规则和值。