第 14 章 DRL (Drools Rule Language)规则


DRL (Drools Rule Language)规则是在 .drl 文本文件中直接定义的警报规则。这些 DRL 文件是最终呈现 Business Central 中所有其他规则资产的源。您可以在 Business Central 界面中创建和管理 DRL 文件,或使用 Red Hat CodeReady Studio 或其他集成开发环境(IDE)在外部创建它们。DRL 文件可以包含一个或多个规则,这些规则至少定义规则条件(when)和操作(then)。Business Central 中的 DRL 设计程序提供了 Java、DRL 和 XML 的语法突出显示。

DRL 文件由以下组件组成:

DRL 文件中的组件

package

import

function  // Optional

query  // Optional

declare   // Optional

global   // Optional

rule "rule name"
    // Attributes
    when
        // Conditions
    then
        // Actions
end

rule "rule2 name"

...

以下示例 DRL 规则决定 loan 应用程序决策服务的年龄限制:

loan 应用程序年龄限制的规则示例

rule "Underage"
  salience 15
  agenda-group "applicationGroup"
  when
    $application : LoanApplication()
    Applicant( age < 21 )
  then
    $application.setApproved( false );
    $application.setExplanation( "Underage" );
end

DRL 文件可以包含单个或多个规则、查询和功能,并可定义资源声明,如导入、全局和属性,这些属性由您的规则和查询分配和使用。DRL 软件包必须在 DRL 文件的顶部列出,规则通常最后列出。所有其他 DRL 组件都可以遵循任何顺序。

每个规则都必须在 rule 软件包中具有唯一名称。如果您在软件包中的任何 DRL 文件中使用相同的规则名称多次,则规则无法编译。始终使用双引号括起规则名称(规则"规则名称"),以防止可能编译错误,特别是在规则名称中使用空格时。

与 DRL 规则相关的所有数据对象都必须与 Business Central 中的 DRL 文件位于同一个项目中。默认情况下导入同一软件包中的资产。其他软件包中的现有资产可以使用 DRL 规则导入。

14.1. DRL 中的软件包

软件包是 Red Hat Process Automation Manager 中相关资产的文件夹,如数据对象、DRL 文件、决策表和其他资产类型。软件包也充当每个组规则的唯一命名空间。单个规则基础可以包含多个软件包。您通常将软件包的所有规则存储在与 package 声明相同的文件中,以便软件包自我包含。但是,您可以从要在规则中使用的其他软件包导入对象。

以下示例是 mortgage 应用程序决策服务中 DRL 文件的软件包名称和命名空间:

DRL 文件中的软件包定义示例

package org.mortgages;

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部