【问题标题】:ilog jrules and database connection - Detailed explanationilog jrules与数据库连接-详解
【发布时间】:2012-09-04 12:17:14
【问题描述】:

我正在使用 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. 我必须想办法整合数据库和决策表,以便决策表能够识别属性值。

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

【问题讨论】:

    标签: database-connection ilog jrules


    【解决方案1】:


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

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

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

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

    任务完成

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

    【讨论】:

      【解决方案2】:

      尝试预先从数据库加载数据。 JRules 应该使用加载的数据调用,并将结果返回给调用系统,然后调用系统将数据存储回数据库。我不建议直接与数据库集成。

      如果数据库中的数据不经常更改并且您可以在发生更改时重新部署,您可以将数据加载到 BOM 本身。如果是这种情况,您可以使用将数据插入 BOM 的动态域插件加载数据,但正如我所说,这需要重新部署 RuleApp。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多