18.2. 使用 Java 创建并执行 DRL 规则
您可以使用 Java 对象创建带有规则的 DRL 文件,并将对象与 Red Hat Process Automation Manager 决策服务集成。如果您已将外部 Java 对象用于决定服务并希望继续相同的工作流,则创建 DRL 规则的方法非常有用。如果您还没有使用这个方法,则建议创建 DRL 文件和其他规则资产,建议使用 Red Hat Process Automation Manager 的 Business Central 接口。
�程
创建一个 Java 对象,该规则或规则将在其上操作。
在本例中,在
my-project
目录中创建Person.java
文件。Person
类包含 getter 和 setter 方法,用于设置和检索名字、姓氏、每小时率以及人的 wage:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
my-project
目录下,以.drl
格式创建一个规则文件。DRL 文件必须至少包含软件包规格(如果适用),规则或规则要使用的数据对象导入列表,以及一个或多个带有when
条件的规则。以下
Wage.drl
文件包含Wage
规则,该规则计算 wage 和每小时速率值,并根据结果显示一条消息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建主类并将其保存到与您创建的 Java 对象相同的目录中。主类将加载 KIE 基础并执行规则。
在主类中,添加所需的
导入
语句来导入 KIE 服务、KIE 容器和 KIE 会话。然后,加载 KIE 基础、插入事实,并从main ()
方法执行规则,将事实模型传递给规则。在本例中,使用所需的导入和
main ()
方法在my-project
中创建RulesTest.java
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
从红帽客户门户下载 Red Hat Process Automation Manager 7.9.1 Source Distribution ZIP 文件,并将它提取到
my-project/pam-engine-jars/
下。 在
my-project/META-INF
目录中,创建一个包含以下内容的kmodule.xml
元数据文件:<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"> </kmodule>
<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"> </kmodule>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此
kmodule.xml
文件是一个 KIE 模块描述符,用于选择 KIE 基础并配置会话的资源。此文件允许您定义和配置一个或多个 KIE 基础,并在特定 KIE 基础中包含特定软件包
中的 DRL 文件。您还可以从每个 KIE 基础创建一个或多个 KIE 会话。以下示例显示了更高级的
kmodule.xml
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个示例定义了两个 KIE 基础。两个 KIE 会话是从
KBase1
KIE 基础实例化的,来自KBase2
的 KIE 会话。KBase2
中的 KIE 会话是一个无状态
KIE 会话,这意味着之前调用 KIE 会话(之前会话状态)的数据在会话调用之间被丢弃。KIE 基础中包含特定规则资产软件包
。当以这种方式指定软件包时,您必须将 DRL 文件组织为反映指定软件包的文件夹结构。在 Java 对象中创建并保存所有 DRL 资产后,在命令行中导航到
my-project
目录,并运行以下命令来构建您的 Java 文件。将RulesTest.java
替换为 Java 主类的名称。javac -classpath "./pam-engine-jars/*:." RulesTest.java
javac -classpath "./pam-engine-jars/*:." RulesTest.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果构建失败,请解决命令行错误消息中描述的任何问题,并尝试验证 Java 对象,直到对象通过为止。
在 Java 文件构建成功后,运行以下命令在本地执行规则。将
RulesTest
替换为 Java 主类的前缀。java -classpath "./pam-engine-jars/*:." RulesTest
java -classpath "./pam-engine-jars/*:." RulesTest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查规则以确保它们正确执行,并解决 Java 文件中所需的更改。
要将新规则资产与 Red Hat Process Automation Manager 中的现有项目集成,您可以将新的 Java 项目编译为 知识 JAR (KJAR),并将它作为依赖项添加到 Business Central 中项目的 pom.xml
文件中。要访问 Business Central 中的项目 pom.xml
文件,您可以在屏幕左侧的 Project Explorer 菜单中选择任何现有资产,然后点击 Customize View gear 图标并选择 Repository View