2013-05-21 62 views
0

对于我来说,它足以查看是否执行规则。然后我使用WorkingMemoryConsoleLogger来查看哪个规则已被激活。规则中不需要有then块。但是,当我删除该块时,它会返回一个错误。我该如何解决这个问题?运行drools规则没有“然后”块

+0

规则都是关于条件然后行动。如果你不想要这个语义,那么规则可能是不合适的。我想替代方法是你可以有一个然后调用一个方法,只是做某种日志记录。一种noop。 – cmbaxter

+0

我正在使用'then'进行日志记录,但所有规则都有相同的动作。我的想法是将这种逻辑添加到'WorkingMemoryConsoleLogger'中,而不是为每个规则写出相同的动作... – aphex

+1

@cmbaxter我认为您的评论有点误导。通常,业务规则可以是通常称为“评估类型规则”和“执行类型规则”的两种类型。评估类型规则回答一个问题:对或错。这种类型的规则可能如下所示:“确认ZIP是30040”。执行类型规则可以设置值和/或调用动作。如果任何规则的条件评估为True,或者它们根本不返回任何内容,则它们返回True。现在,Drools是否支持这两种规则类型 - 这是一个完全不同的问题。 – Kizz

回答

0

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

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