Both should fire when there is no message.
This said, the two are not equivalent.
The negation of
Message( sent == true, status != INITIALIZED )
Message( sent == false *||* status == INITIALIZED )
That is, by deMorgan's laws, you need to negate
the operators AND flip the and/or connectives.
In case something still seems weird, could you
please specify the drools version you're using,
as well as which facts you are inserting exactly?
On 05/29/2014 09:33 PM, rogerL wrote:
Are the two following statements not equivalent?
Message(this==$msg, sent==true, status!=State._INITIALIZED)
not( Message(sent==false, status==State._INITIALIZED) )
My understanding is that they both ensure that there are no Message objects
in WM with property 'sent' set to false and property 'status' set to
In my situation, the 'forall' approach is working as expected, the 'not'
approach fires once (when there are no Message objects in WM) and never
Appreciate if anyone could shed light on this.
View this message in context:
Sent from the Drools: User forum mailing list archive at Nabble.com
rules-users mailing list