ilog jrules和数据库连接 - 详细说明

时间:2012-09-04 12:17:15

标签: database-connection ilog jrules

我正在使用IBM ILOG JRules进行POC,而我是JRules的新手。 我有一个业务要求:

  1. 我将把文档类及其属性放在数据库中。
  2. 在Rule Studio中,我将为每个角色创建一个具有以下条件的决策表:

    If Document Class is <abc> and User Role is <xyz> Then Return Properties <P1, P2,…> as editable.

  3. 我必须找到一种方法来集成数据库和决策表,以便决策表可以识别属性值。
  4. 有谁可以请我帮助我如何使用IRL代码以简单的方式实现它?

2 个答案:

答案 0 :(得分:1)


如果您是JRules的新手,请记住您在JRules中定义的任何内容和“语言化”中编写业务规则工件(业务规则,决策表,决策树)。

从BR​​MS的角度来看,你要做的事情是错的。

在决策表(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。