[rules-users] Adding eval on rule cause it to run in infinite loop
Wolfgang Laun
wolfgang.laun at gmail.com
Wed Jun 11 09:08:55 EDT 2014
On 11/06/2014, brachi <brachi.w at 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 at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
More information about the rules-users
mailing list