搜索

第 36 章 实时验证和指导决策表验证

download PDF

Business Central 为指导决策表提供实时验证和验证功能,以确保您的表格可以自由完成并出错。每个单元更改后都会验证引导的决策表。如果检测到逻辑中的问题,会出现一个错误通知并描述问题。

36.1. 指导决策表中的问题类型

验证和验证功能检测到以下类型的问题:

冗余
当决策表中的两个行执行同一组事实时,冗余就会发生。例如,在两天检查客户端的生日,并提供生日折扣可享受八五折优惠。
Subsumption

Subsumption 类似于冗余,并在两个规则执行同样结果时发生,但一个在另一事实子集中执行。例如,请考虑以下规则:

  • 当 Person age > 10 then increase Counter
  • 当 Person age > 20 然后增加 Counter

在这种情况下,如果某个人旧有 15 年,则只有一个规则触发,如果一个人是 20 年,则这两个规则都触发。这样的情况在运行时作为冗余造成类似问题。

Conflicts

当两个类似条件有不同的后果时,会出现冲突情况。在下表中的两个行(规则)或两个单元格之间可能会出现冲突。

以下示例演示了在决定表中两个行之间的冲突:

  • 当 Deposit > 20000 then Approve Loan
  • 当 Deposit > 20000 then Refuse Loan

在这种情况下,无法知道 loan款将获得批准或非批准。

以下示例演示了在决定表中的两个单元间的冲突:

  • 当 Age > 25
  • Age < 25 年时

含有冲突单元的行从不执行。

唯一唯一策略 划分

当将 unique Hit 策略应用到决策表中时,一次只能执行一行,并且每行必须是唯一的,且未满足条件重叠。如果执行多个行,则验证报告将标识 broken hit 策略。例如,请在表中考虑以下条件,以确定价格折扣:

  • 当为 Student 用户 = true 时
  • Is Military = true

如果客户既是学员还是军事区,则适用这两个条件并打破 唯一的 Hit 策略。因此,在这种表中创建的行必须采用一种方式创建,不允许多个规则同时触发。有关点击策略的详情,请参考 第 28 章 指导决策表的点击策略

deficiy

认为与冲突类似,因此决定表中的规则逻辑不完整。例如,请考虑以下规则:

  • 当 Age > 20 然后 Approve Loan
  • 当 Deposit < 20000 then Refuse Loan

对于超过 20 年以上的人,这两个规则可能会引起混淆,并且存款不足 20000。您可以添加更多约束以避免冲突。

缺少 Columns
当删除的列会导致不完整或不正确的逻辑时,规则无法正确触发。这会检测到,以便您可以处理缺少的列,或者调整逻辑使其不依赖于意外删除的条件或操作。
不完整的范围
如果表包含与可能字段值的限制,但没有定义所有可能的值,则字段值的范围不完整。验证报告标识所提供的任何不完整范围。例如,如果您的表检查某个应用程序是否已批准,验证报告会提醒您确保同时处理没有批准应用程序的情况。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.