【发布时间】: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