搜索

18.2. 在 DRL 规则中添加存储操作

download PDF

规则的 then 部分包含满足规则条件部分时要执行的操作。例如,当 loan Applicationlicant 超过 21 年时,将设置 "Underage" 规则的操作,因为申请者不足,因为申请者正处于年龄之内。操作由一个或多个方法组成,它们根据规则条件和软件包中的可用数据对象执行结果。规则操作的主要目的是在决策引擎的工作内存中插入、删除或修改数据。

先决条件

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

流程

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

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

    • 设置 :使用此项设置字段的值。

      $application.setApproved ( false );
      $application.setExplanation( "has been bankrupt" );
    • 修改 :使用此命令指定要修改的字段,并通知更改的决策引擎。此方法提供了一种结构化方法来事实更新。它将 更新操作与 设置者调用合并,以更改对象字段。

      modify( LoanApplication ) {
              setAmount( 100 ),
              setApproved ( true )
      }
    • 更新 :使用它来指定字段以及要更新整个相关事实,并通知更改的决策引擎。事实更改后,您必须在更改可能受更新的值影响的其他事实之前调用 更新。要避免添加的步骤,请改为使用 修改 方法。

      LoanApplication.setAmount( 100 );
      update( LoanApplication );
    • 插入 :使用这个方法在决策引擎中插入 新事实

      insert( new Applicant() );
    • 插入逻辑 :使用这个方法在决策引擎中以逻辑方式插入新事实。决策引擎负责对插入和检索事实的逻辑决策。在常规或声明插入后,必须明确调整事实。逻辑插入后,当插入事实的条件不再为 true 时,插入的事实会自动清空。

      insertLogical( new Applicant() );
    • 删除 :使用它来从决策引擎删除对象。DRL 中还支持关键字 retract,并执行同样的操作,但 删除 通常优先于 DRL 代码,以便通过关键字 插入

      delete( Applicant );
    注意

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

  3. 在定义了规则的所有操作组件后,在 DRL 设计器的右上角点击 Validate 来验证 DRL 文件。如果文件验证失败,解决错误消息中描述的任何问题,查看 DRL 文件中的所有语法和组件,并尝试验证文件,直到文件通过为止。
  4. 点 DRL 设计器中的 Save 保存您的更改。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.