[rules-users] Rules with from always loops (Drools 4.0.7)
Przemysław Różycki
P.Rozycki at amg.net.pl
Fri Feb 13 09:11:28 EST 2009
Edson, Michal,
thank you for your answers. If I understand well, Drools can't recognize
if the $fact2 has been changed by the current rule or not.
Anyway, I found such a behaviur as a bit confusing, so my second
question is, is it a desirable behaviour? And is it going to be changed
or left as is?
Best regards
Przemyslaw
Edson Tirelli pisze:
>
> Michal is correct. Every time a "from" expression is executed,
> Drools does not know if a result for the expression is new or not and it
> creates a new fact handle, bypassing the no-loop.
>
> []s
> Edson
>
> 2009/2/13 Michal Bali <michalbali at gmail.com <mailto:michalbali at gmail.com>>
>
> This is what I think is going on:
> when you call update($fact1) it will first retract $fact1 which in
> turn retracts $fact2, the $fact1 is then inserted again which cause
> another 'from' evaluation and a NEW $fact2 is pulled -> no-loop
> doesn't work because Drools sees it as different data
> I am just guessing here ...
>
>
> On Fri, Feb 13, 2009 at 9:12 AM, Przemysław Różycki
> <P.Rozycki at amg.net.pl <mailto:P.Rozycki at amg.net.pl>> wrote:
>
> Hello,
>
> Doesn't really anyone have any logical explanation of why such a
> rule loops?
>
> To remind the rule:
>
>
> rule "Hello World"
> no-loop
> when
> $fact1 : MyFactBean1( )
> $fact2 : MyFactBean2( ) from $fact1
> then
> System.out.println("Fired!!!");
> update($fact1);
> end
>
> If I don't use 'from' everything is fine.
> I really didn't find in a documentation, that 'from' causes any
> special behaviour of the rule looping.
>
>
> Best regards,
> --
> Przemysław Różycki
> AMG.net, A Bull Group Company
> ul. Łąkowa 29
> 90-554 Łódź
> www.amg.net.pl <http://www.amg.net.pl>
>
>
>
> Przemysław Różycki pisze:
>
> Thanks for answer, Vikrant, but I don't think so. I have
> always used no-loop without any additions and it worked
> (when I didn't use from). BTW, if you comment a condition
> with from, then the rule does not loop. I also checked with
> "no-loop true" and result is the same.
>
> Best regards,
> Przemek
>
> Vikrant Yagnick pisze:
>
> I have to quickly recheck the documentation by I think
> you have to write "no-loop true". Just writing no-loop
> defaults to false I guess.
>
> -----Original Message-----
> From: rules-users-bounces at lists.jboss.org
> <mailto:rules-users-bounces at lists.jboss.org>
> [mailto:rules-users-bounces at lists.jboss.org
> <mailto:rules-users-bounces at lists.jboss.org>] On Behalf
> Of Przemyslaw Rózycki
> Sent: Tuesday, February 10, 2009 3:24 PM
> To: Rules Users List
> Subject: [rules-users] Rules with from always loops
> (Drools 4.0.7)
>
> Hello,
>
> why does such a rule always loop? Even if no-loop is used?
>
> rule "Hello World"
> no-loop
> when
> $fact1 : MyFactBean1( )
> $fact2 : MyFactBean2( ) from $fact1
> then
> System.out.println("Fired!!!");
> update($fact1);
> end
>
> The full code of my test application and drl is attached.
>
> Best regards,
> --
> Przemysław Różycki
> AMG.net, A Bull Group Company
> ul. Łąkowa 29
> 90-554 Łódź
> www.amg.net.pl <http://www.amg.net.pl>
>
>
> MASTEK LTD.
> Mastek is in NASSCOM's 'India Top 20' Software Service
> Exporters List.
> In the US, we're called MAJESCOMASTEK
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Opinions expressed in this e-mail are those of the
> individual and not that of Mastek Limited, unless
> specifically indicated to that effect. Mastek Limited
> does not accept any responsibility or liability for it.
> This e-mail and attachments (if any) transmitted with it
> are confidential and/or privileged and solely for the
> use of the intended person or entity to which it is
> addressed. Any review, re-transmission, dissemination or
> other use of or taking of any action in reliance upon
> this information by persons or entities other than the
> intended recipient is prohibited. This e-mail and its
> attachments have been scanned for the presence of
> computer viruses. It is the responsibility of the
> recipient to run the virus check on e-mails and
> attachments before opening them. If you have received
> this e-mail in error, kindly delete this e-mail from
> desktop and server.
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> <mailto:rules-users at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss, a division of Red Hat @ www.jboss.com <http://www.jboss.com>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
More information about the rules-users
mailing list