【问题标题】:Run drools rule without "then" block在没有“then”块的情况下运行 drools 规则
【发布时间】:2013-05-21 15:53:07
【问题描述】:

对于我来说,看看规则是否被执行就足够了。然后我使用WorkingMemoryConsoleLogger 查看激活了哪个规则。我不需要在规则中有thenblock。但是,当我删除该块时,它会返回一个错误。我该如何解决?

【问题讨论】:

  • 规则都是关于条件然后是行动。如果您不想要这种语义,那么规则可能不合适。我想另一种选择是你可以有一个 then 来调用一个只执行某种日志记录的方法。有点无聊。
  • 我使用then 完全用于日志记录,但所有规则都具有相同的操作。我的想法是将此逻辑添加到WorkingMemoryConsoleLogger,而不是为每个规则编写相同的操作...
  • @cmbaxter 我认为您的评论有点误导。一般来说,业务规则可以有两种类型,通常称为“评估型规则”和“执行型规则”。评估类型规则回答一个问题:对或错。这种类型的规则可能如下所示:“验证 ZIP 为 30040”。执行类型规则可以设置值和/或调用动作。如果任何规则的条件评估为 True,它们要么返回 True,要么根本不返回任何内容。现在,Drools 是否支持这两种规则类型 - 这是一个完全不同的问题。
  • 对不起,我想我的评论更多是指规则引擎。我对 Drools 和 iLog 的 JRules 进行了相当广泛的工作,我们对这些引擎所做的每条规则都与 condition -> action 有关。如果我误导了任何人,我深表歉意......

标签: java drools rules rule-engine


【解决方案1】:

我得到了用户组的一些支持。所以then 块可以是空的。

rule "rule name"
    when
        .......
    then
end

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2020-09-28
    • 2022-11-16
    • 2022-11-30
    • 2018-12-21
    相关资源
    最近更新 更多