Please restate your problem, correcting (see below)... On 14/02/2013, DOLECEK Ales <[email protected]> wrote:
> rule "Remove unsued phones" > when > exists Customer() > not Customer(phone == $value) > $unused: Phone($value: value) > then > retract($unused); > end Provide the accurate code of your rule. This one isn't correct, since use of $value precedes its definition.... > > There might be multiple Customer and Phone facts in the working memory and > the purpose of the rule is to remove phones that do not belong to any of the > customers. The rule should not be activated while there are no Customers in > WM - hence the "exists Customer()". This is becaus there are other rules, > taht might use the phones to lookup customers. > > There Phone with value = "test" in working memory when Customer with phone = > "test" is inserted. BTW: Both facts are immutable. Please provide a more accurate description, preferably (correct & working) Java code. -W > > The behavior differs depending on order of the 3 patterns in the LHS of the > rule. > > 1) If the "exists Customer()" is first activation is created > - this is wrong since the "exists Customer()" shall be false > > 2) if I move the "exists Customer()" between the other patterns activation > is created and immediatelly canceled > - this is also wrong since, although in my case (where are no side > effects) > it works > > 3) Finally if the "exists Customer()" comes last the then activation is not > created at all > - this is correct > > Is this bug or am I missing something important about rule language? > Rewriting the LHS with expicit infix and does not help: > > (exists Customer()) and > (not Customer(phone == $value)) and > ($unused: Phone($value: value)) > > > Ales > > FYI: I'm using 5.5.0.Final > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
