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