0

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

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

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

  3. 我必须找到一种方法来整合数据库和决策表,以便决策表可以识别属性值。

谁能帮助我如何使用 IRL 代码以简单的方式实现它?

4

2 回答 2

1


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

从 BRMS 的角度来看,您尝试做的只是错误的。

在决策表 (DT) 中,您可能有数百行,这意味着数百个个人规则。每一行都被翻译成一条规则。
因此,如果您这样做,您将调用数百次 DB,这不是您想要的。
有人可能会争辩说您可以在规则任务中使用 fastPath 算法,但您是 JRules 的新手,我只想提醒您这一点。

您想要的是:
1/ 在 Java 中创建一个对象模型。
2/ 基于对象模型(Java 库)在 JRules 中创建 BOM。
3/ 详细说明您的 BOM(可以在 JRules 中导入期间在设计时自动执行)。
4/ 编写您的 DT
5/ 在 Java 中的编排层中创建对数据库的调用。
6/ 从编排层填充对象实例和属性。
7/ 使用正确的输入/输出(规则集参数)从规则项目中导出规则集。
8/ 使用您的规则集调用引擎
9/ 检索结果

作业已完成

请记住,在执行时从规则引擎调用数据库很可能是一个错误的想法,因为您的规则可以被多次测试,因此调用 DB n 次,效率不高。

于 2012-09-07T11:33:36.993 回答
0

Try loading the data from the data base beforehand. JRules should be called with the loaded data and should return the result to the calling system which then stores the data back to the DB. A direct integration with the DB is not something I would recommend.

If the data from the DB doesn't change often and you can redeploy whenever a change happen, you can load the data into the BOM itself. If this is the case, you can load the data using the dynamic domain plug-in which inserts the data into your BOM, but as I said, this requires a redeployment of your RuleApp.

于 2012-09-06T11:28:47.033 回答