【问题标题】:ILOG variable set equivalent in DroolsDrools 中的 ILOG 变量集等效
【发布时间】:2013-02-27 15:20:14
【问题描述】:

我正在尝试将现有的基于 ILOG JRules 的应用程序迁移到基于 Drools 的项目中。在 ILOG 中,我们有 local variables(和变量集),可用于在规则(公式)中计算和存储中间值。

Drools 中是否有等效的局部变量?我知道我们有Globals in Drools,但文档建议仅将 Globals 用作只读常量,并将 Java 调用类之间的数据传递给规则:

强烈建议不要从内部设置或更改全局值 你的规则。我们建议您始终从您的 使用工作记忆接口的应用程序。

一种方法是编写一个自定义 java 类Variable 并在其中声明所有变量并在drools 规则中使用它。但是每次我们想要添加一个新变量时,都需要更改 Java 代码。

是否有任何可行的方法来定义和使用 Drools 中可以在规则内定义和更改的变量?

【问题讨论】:

    标签: drools ilog jrules


    【解决方案1】:

    我认为使用全局变量在规则之间保持某种计算或状态没有任何问题。我认为 Drools 的文档试图表达的意思(以一种非常复杂和不清楚的方式)是你永远不应该在规则的 RHS 中使用全局变量,因为 Drools 不知道全局变量的值何时发生变化。如果您确实在约束中使用了全局变量,那么请确保您永远不会更改它们的值。话虽如此,我认为在规则的 RHS 中使用全局变量是无害的。 如果您对这个想法不满意,那么您也可以在会话中插入“计算”对象作为事实。规则可以匹配这个事实,将一个变量绑定到它,然后在 RHS 中与之交互。

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2014-02-14
      • 2017-04-16
      • 2013-03-13
      • 1970-01-01
      • 2010-12-21
      • 2014-02-24
      • 1970-01-01
      • 2016-07-01
      相关资源
      最近更新 更多