第 33 章 指导决策表的实时验证和验证
Business Central 为指导决策表提供了一个实时验证和验证功能,以确保您的表已完成并可用错误。指导决策表在每次单元更改后都会验证。如果检测到逻辑出现问题,则会出现错误通知并描述问题。
33.1. 指导决策表中的问题类型 复制链接链接已复制到粘贴板!
验证和验证功能检测到以下类型的问题:
- 冗余
- 当决策表中的两行对同一组事实执行同样的结果时,会发生冗余。例如,检查客户端的生日行,并提供一个周五的发票可能会导致双引号。
- Subsumption
Subsumption 与冗余类似,当两个规则执行同样的结果时,会发生,但对另一个事实的一部分执行。例如,考虑这两个规则:
- 当 Person age > 10 时,增加计数器
- 当 Person age > 20 时,增加计数器
在这种情况下,如果人是 15 年,则只会触发一条规则,如果人为 20 年,则这两个规则都会触发。这种情况会在运行时出现类似的问题,因为冗余。
- Conflicts
当两个类似条件具有不同的结果时,会发生冲突的情况。在决策表中的两行(rules)或两个单元之间可能会发生冲突。
以下示例演示了决策表中的两行之间冲突:
- when Deposit > 20000 then Approve Loan
- when Deposit > 20000 then Refuse Loan
在这种情况下,无法知道是否批准 loan。
以下示例演示了决策表中的两个单元之间冲突:
- when Age > 25
- 当 Age < 25
不执行冲突单元的行。
- 有问题 的唯一 Hit 策略
当将 唯一 Hit 策略应用到一个路由表时,一次只能执行一行,每行必须是唯一的,且不满足条件重叠。如果执行多个行,则验证报告标识了有问题的点击策略。例如,在表中考虑以下条件决定了价格领导的资格:
- when Is\":\" = true
- when Is Military = true
如果客户同时是 192.168.1.0/24 和在站中,则应用这两个条件并破坏 唯一 Hit 策略。因此,这种表中的行必须以不允许一次触发多个规则的方式创建。有关点击策略的详情,请参考 第 26 章 按指导决策表的策略。
- deficiency
deficiency 与冲突类似,并在决策表中发生规则的逻辑不完整。例如,请考虑以下两个适当的规则:
- 当 Age > 20 then Approve Loan
- 当 Deposit < 20000 then Refuse Loan 时
这两个规则可能会对超过 20 年的人造成混淆,并且被认为少于 20000。您可以添加更多限制以避免冲突。
- 缺少 Columns
- 当删除的列会导致逻辑不完整或不正确的逻辑时,规则无法正确触发。这会检测到它,以便您可以处理缺少的列,或者调整逻辑使其不依赖于意外删除的条件或操作。
- 不完整的范围
- 如果表包含可能字段值的限制,但没有定义所有可能的值,则字段值的范围不完整。验证报告标识了提供的任何不完整的范围。例如,如果您的表是否有应用程序被批准的检查,验证报告将提醒您处理未批准应用程序的情况。