第 3 章 Red Hat Process Automation Manager 中的 DMN 支持
Red Hat Process Automation Manager 为 DMN 1.2 模型提供设计和运行时支持,具有符合级别 3 的 DMN 1.1 和 1.3 模型的运行时支持。您可以通过几种方法将 DMN 模型与 Red Hat Process Automation Manager 决策服务集成:
- 使用 DMN 设计程序直接在 Business Central 中设计您的 DMN 模型。
-
在 Business Central 中将 DMN 文件导入到项目中(Menu
Design Projects Import Asset)。Business Central 的 DMN 设计程序目前不支持 DMN 1.1 和 1.3 模型。 - 在没有 Business Central 的情况下,将 DMN 文件打包为您的项目知识 JAR (KJAR)文件的一部分。
除了所有 DMN 一致性级别 3 要求外,Red Hat Process Automation Manager 还包括对 FEEL 和 DMN 模型组件的增强和修复,以优化使用 Red Hat Process Automation Manager 实施 DMN 决策服务的体验。从平台的角度来看,DMN 模型类似于 Red Hat Process Automation Manager 中的任何其他业务资产,如 DRL 文件或电子表格决策表,您可以包含在 Red Hat Process Automation Manager 项目中,并部署到 KIE 服务器,以启动您的 DMN 决策服务。
有关使用 Red Hat Process Automation Manager 项目打包和部署方法包含外部 DMN 文件的更多信息,请参阅 打包和部署 Red Hat Process Automation Manager 项目。
3.1. Red Hat Process Automation Manager 中的可配置 DMN 属性 复制链接链接已复制到粘贴板!
Red Hat Process Automation Manager 提供以下 DMN 属性,您可以在 KIE Server 或客户端应用程序上执行 DMN 模型时进行配置。当您在 KIE 服务器上部署项目时,您可以使用 Red Hat Process Automation Manager 项目中的 kmodule.xml
文件配置其中一些属性。
- org.kie.dmn.strictConformance
启用后,此属性默认禁用除 DMN 标准外提供的任何扩展或配置集,如 DMN 1.2 的一些帮助程序功能,或者将 DMN 1.2 回移植到 DMN 1.1 的功能。您可以使用此属性配置决策引擎,使其只支持纯 DMN 功能,如运行 DMN 技术兼容性组件 (TCK)时。
默认值:
false
-Dorg.kie.dmn.strictConformance=true
-Dorg.kie.dmn.strictConformance=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - org.kie.dmn.runtime.typecheck
启用后,此属性启用实际值验证符合 DMN 模型中声明的类型,作为 DRD 元素的输入或输出。您可以使用此属性来验证提供给 DMN 模型的数据还是由 DMN 模型生成的数据是否符合模型中指定的内容。
默认值:
false
-Dorg.kie.dmn.runtime.typecheck=true
-Dorg.kie.dmn.runtime.typecheck=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - org.kie.dmn.decisionservice.coercesingleton
默认情况下,此属性使定义单个输出决定的决策服务的结果是输出决定值的单个值。禁用后,此属性使定义单个输出决定的决策结果成为该决定的单个条目
的上下文
。您可以根据项目要求,使用此属性来调整决策服务输出。默认值为:
true
-Dorg.kie.dmn.decisionservice.coercesingleton=false
-Dorg.kie.dmn.decisionservice.coercesingleton=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - org.kie.dmn.profiles.$PROFILE_NAME
当使用 Java 完全限定名称进行评估时,此属性在启动时将 DMN 配置集加载到决策引擎中。您可以使用此属性来实现预定义的 DMN 配置集,其支持的功能与 DMN 标准不同。例如,如果您使用 Signavio DMN modeller 创建 DMN 模型,请使用此属性将 Signavio DMN 配置集中的功能实施到 DMN 决策服务中。
-Dorg.kie.dmn.profiles.signavio=org.kie.dmn.signavio.KieDMNSignavioProfile
-Dorg.kie.dmn.profiles.signavio=org.kie.dmn.signavio.KieDMNSignavioProfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - org.kie.dmn.runtime.listeners.$LISTENER_NAME
当使用 Java 完全限定名称进行评估时,此属性会在启动时加载并将 DMN Runtime Listener 注册到决策引擎中。您可以使用此属性注册 DMN 侦听器,以便在 DMN 模型评估过程中通知多个事件。
要在 KIE 服务器上部署项目时配置此属性,请修改项目的
kmodule.xml
文件中的此属性。当监听程序特定于您的项目,且配置必须仅在 KIE 服务器中应用到您部署的项目时,此方法很有用。<kmodule xmlns="http://www.drools.org/xsd/kmodule"> <configuration> <property key="org.kie.dmn.runtime.listeners.mylistener" value="org.acme.MyDMNListener"/> </configuration> </kmodule>
<kmodule xmlns="http://www.drools.org/xsd/kmodule"> <configuration> <property key="org.kie.dmn.runtime.listeners.mylistener" value="org.acme.MyDMNListener"/> </configuration> </kmodule>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为 Red Hat Process Automation Manager 环境全局配置此属性,请使用命令终端或其他全局应用程序配置机制修改此属性。当决策引擎嵌入为 Java 应用程序的一部分时,这种方法非常有用。
-Dorg.kie.dmn.runtime.listeners.mylistener=org.acme.MyDMNListener
-Dorg.kie.dmn.runtime.listeners.mylistener=org.acme.MyDMNListener
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - org.kie.dmn.compiler.execmodel
启用后,此属性可让在运行时将 DMN 决策表逻辑编译到可执行规则模型中。您可以使用此属性更有效地评估 DMN 决策逻辑。当可执行模型编译最初在项目编译期间执行时,此属性很有用。启用此属性可能会导致决策引擎第一次评估期间添加编译时间,但后续的编译效率更高。
默认值:
false
-Dorg.kie.dmn.compiler.execmodel=true
-Dorg.kie.dmn.compiler.execmodel=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow