我正在使用 IBM ilog jrules 7.1 试用版进行 POC。我正在使用决策表来检查客户注册数据。
我的 ilog 决策表规则是——如果客户的状态是 CA、IL、AL 中的任何一个,则将状态设置为“合格”,否则将客户设置为“不合格”。
在一个愉快的路径中,我可以将状态代码添加为域文字,并且该规则可以正常工作。但是我需要使用一些 IRL 代码从数据库( mysql )动态加载这个域值。有没有人像我一样做过类似的要求,如果有人能指出我正确的方向,那将非常有帮助。
我正在使用 IBM ilog jrules 7.1 试用版进行 POC。我正在使用决策表来检查客户注册数据。
我的 ilog 决策表规则是——如果客户的状态是 CA、IL、AL 中的任何一个,则将状态设置为“合格”,否则将客户设置为“不合格”。
在一个愉快的路径中,我可以将状态代码添加为域文字,并且该规则可以正常工作。但是我需要使用一些 IRL 代码从数据库( mysql )动态加载这个域值。有没有人像我一样做过类似的要求,如果有人能指出我正确的方向,那将非常有帮助。
JRules 的一般原则之一是,如果可能,您应该使用所有必要的信息调用规则引擎。从性能的角度来看,在规则执行期间访问数据库并不是一个好主意。您还可能无法在集群环境中使用您的规则应用程序。此外,决策的可追溯性和可重复性较差,因为在任何给定时刻都更难知道数据库中的内容。
根据数据更改的频率,我建议您将这些值添加为第二个输入参数,并在调用规则引擎之前检索数据。第二种可能性是在部署之前使用动态域插件从数据库中加载这些值。但是每次数据更改时,您都必须重新部署 ruleApp。使用动态域插件,您可以指定数据提供者(例如 Excel、MySQL 等)并使用数据库中包含的属性填充您的 BOM。这些动态域值显示为属性,可以从规则工作室的 BOM 视图以及团队服务器同步:
在 WODM(JRules 7.1 的后续版本)中,此功能是内置的,此插件可能不是演示的一部分,必须单独添加到 7.1。