我正在使用IBM ILOG JRules进行POC,而我是JRules的新手。 我有一个业务要求:
在Rule Studio中,我将为每个角色创建一个具有以下条件的决策表:
If Document Class is <abc> and User Role is <xyz>
Then Return Properties <P1, P2,…> as editable.
有谁可以请我帮助我如何使用IRL代码以简单的方式实现它?
答案 0 :(得分:1)
如果您是JRules的新手,请记住您在JRules中定义的任何内容和“语言化”中编写业务规则工件(业务规则,决策表,决策树)。
从BRMS的角度来看,你要做的事情是错的。
在决策表(DT)中,您可能有数百行,这意味着数百个人的规则。每一行都被翻译成一条规则
因此,如果你这样做,你会拨打数百次数据库,这不是你想要的
有人可能会说你可以在你的规则任务中使用fastPath算法,但你是JRules的新手,我只想提醒你这一点。
你想要的是:
1 /用Java创建对象模型
2 /基于对象模型(Java库)在JRules中创建BOM
3 /表示您的BOM(可以在JRules导入期间的设计时自动化)
4 /写你的DT
5 /在Java中的业务流程层中创建对DB的调用
6 /从业务流程层填充对象实例和属性
7 /使用正确的输入/输出(规则集参数)从规则项目中导出规则集
8 /使用您的规则集打电话给引擎
9 /检索结果
工作完成了
请记住,在执行时从规则引擎调用DB很可能是一个错误的想法,因为您的规则可以多次测试,因此调用数据库n次,这是无效的。
答案 1 :(得分:0)
尝试预先从数据库加载数据。应该使用加载的数据调用JRules,并将结果返回给调用系统,然后调用系统将数据存储回DB。我不建议直接与数据库集成。
如果来自数据库的数据不经常更改,并且您可以在发生更改时重新部署,则可以将数据加载到BOM本身。如果是这种情况,您可以使用动态域插件加载数据,该插件将数据插入BOM中,但正如我所说,这需要重新部署RuleApp。