On 11/06/2014, brachi <brach...@sapiens.com> wrote:
> example of rule that doesn't work without eval:
>
> /*    rule "1"
>     salience -1
>     agenda-group "agenda1"
>     when
>         $conclusion: supportFT()

Where's the eval?


>     then
>               if($conclusion.getValue()==null){
>                       modify($conclusion) { setValue(new ArrayList())};
>               }
>               $conclusion.getValue().add("supportedValue");
>                 modify($conclusion) { setValue($conclusion.getValue()) };

You might use a simple update() here.

>      end
>
>
>     rule "2"
>     salience -2
>     agenda-group "agenda2"
>     when
>         supportFT(Operators.containsAny(value,new
> String[]{"supportedValue","otherValue"}))

This can be written using the clearer and cleaner syntax

          supportFT( value in ("supportedValue","otherValue") )

>               $conclusion: ConclusionFt()

Moreover, this should contain the constraint

               $conclusion: ConclusionFt( value != "success" )

>     then
>               modify($conclusion){setValue("success")};

Here, ConclusionFt's attribute value is a simple String, but in that
other rule it is set to an ArrayList.

-W

>     end*/
>
> rule "2" doesn't hit, works only with eval in rule "2".
> in this example I can add eval, because the Fact Types model is different,
> so the rule doesn't reevaluated.
> because I had this case, I decided to add eval for all constraints, but
> unfortunately I had an infinite loop.
>
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029984.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to