16.2. 在 DRL 规则中添加 THEN 操作


规则的 然后 部分包含在满足规则条件部分时要执行的操作。例如,当 loan applicant 旧于 21 年时,"Underage" 规则的 then 操作会被 设置Approved (false),从而 取消了 loan,因为 applicant 处于年龄下。操作由一个或多个根据规则条件和软件包中可用数据对象执行结果的方法组成。规则操作的主要用途是在决策引擎工作内存中插入、删除或修改数据。

先决条件

  • 软件包在 DRL 文件的顶部定义。创建该文件时,应该已为您完成此操作。
  • 规则中使用的数据对象导入 列表在 DRL 文件的 package 行下定义。数据对象可以来自此软件包,也可以来自 Business Central 中的其他软件包。
  • 规则 名称采用 软件包导入 以及其他应用到整个 DRL 文件的格式 规则"name" 定义。同一软件包中不能多次使用相同的规则名称。定义规则行为的可选规则属性(如 salienceno-loop)在 when 部分之前位于规则名称下。

�程

  1. 在 DRL 设计程序中 在规则的 when 部分输入,以开始添加操作语句。
  2. 根据规则的条件,输入要针对事实模式执行的一个或多个操作。

    以下是定义 DRL 操作的一些关键字选项:

    • 设置 :使用它来设置字段的值。

      $application.setApproved ( false );
      $application.setExplanation( "has been bankrupt" );
      Copy to Clipboard Toggle word wrap
    • 修改 :使用此选项指定为事实修改的字段,并通知决策引擎的变化。这个方法提供了事实更新的结构化方法。它将 更新操作 与 setter 调用相结合,以更改对象字段。

      modify( LoanApplication ) {
              setAmount( 100 ),
              setApproved ( true )
      }
      Copy to Clipboard Toggle word wrap
    • 更新 :使用此选项指定要更新的字段和整个相关事实,并通知决策引擎更改。更改事实后,您必须调用 更新,然后才能更改可能受到更新的值影响的另一个事实。要避免此添加的步骤,请使用 modify 方法。

      LoanApplication.setAmount( 100 );
      update( LoanApplication );
      Copy to Clipboard Toggle word wrap
    • 插入 :使用此将新事实插入到决策引擎中。

      insert( new Applicant() );
      Copy to Clipboard Toggle word wrap
    • insertLogical :使用它来以逻辑方式 将新的 事实插入到决策引擎中。决策引擎负责对事实的插入和重包进行逻辑决策。常规或声明的插入后,必须明确回收事实。逻辑插入后,插入的事实会在插入事实的规则中的条件不再满足满足时自动响应。

      insertLogical( new Applicant() );
      Copy to Clipboard Toggle word wrap
    • 删除 :使用它来从决策引擎中删除对象。DRL 还支持关键字 retract 并执行相同的操作,但 删除 通常在 DRL 代码中首选,以便与关键字 插入 保持一致。

      delete( Applicant );
      Copy to Clipboard Toggle word wrap
    注意

    有关 DRL 规则操作的详情,请参考 第 14.9 节 “DRL 中的规则操作(THEN)”

  3. 在定义了规则的所有操作组件后,单击 DRL 设计器右上角的 Validate 以验证 DRL 文件。如果文件验证失败,请解决错误消息中描述的任何问题,检查 DRL 文件中的所有语法和组件,然后重试验证该文件直到文件通过为止。
  4. 在 DRL Designer 中点 Save 来保存您的工作。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat