AFAIK, your understanding is correct.<br>What fireAllRules does is it executes rules on agenda(contains rules with all conditions matched) until the agenda is empty. A rule can get to agenda when you modify a fact or insert/retract a fact. If you call fireAllRules on an empty agenda no rule will be fired.<br>
The ruleflow groups just make the rules execute in specific order.<br><br><br><div class="gmail_quote">On Thu, Jan 15, 2009 at 11:22 PM, keithnielsen <span dir="ltr"><<a href="mailto:keithnielsen@discover.com">keithnielsen@discover.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
I have a fairly involved rule flow consisting of rule flow groups. I am<br>
trying to understand<br>
if the behavior I am seeing and my understanding of it are correct.<br>
<br>
The flow executes as exepected the first pass through, objects are inserted<br>
and the rules associated with the different nodes are executed. On the<br>
second pass through the flow various nodes are triggered but none of the<br>
ruleflow groups are activated/executed. My understanding of this is as<br>
follows:<br>
<br>
1) The only way to have these ruleflow groups fire/execute again is to<br>
insert objects that cause a match or to fire all rules on the session again.<br>
2) Constraints on split/join nodes are always evaluated and don't need to be<br>
activated which is different than the constraints on a given rule<br>
3) Rules that don't have any constraints, i.e. they are always true will<br>
only execute once and will only execute with a call to fire all rules<br>
<br>
Assuming my understanding of what is going on correct I have the following<br>
questions:<br>
<br>
Q. My particular use case is really screen flow/business process, and it<br>
would be nice if I came to a node, that the rule was always evaluated, i.e.<br>
currently rules that always evaluate to true aren't fired more than once.<br>
For instance I have a node that simply instantiates a dialog and waits for<br>
user input and I always want to instantiate that dialog when I come to that<br>
node, regardless of the facts. Is there a way to achieve this without firing<br>
all rules again?<br>
Q. Is firing all rules within a rule flow a legitimate way of achieving the<br>
desired affect?<br>
<br>
Shouldn't the ruleflow-group associated with a node always be evaluated if<br>
the node is triggered? As it happens now, the rule flow gets stuck in an<br>
infinite loop as the node contraints are conitniously evaluated but the<br>
actual rule contraints are not. Seems inconsistent too me especially in the<br>
context of a business process/rule flow.<br>
<br>
Thanks<br>
<font color="#888888"><br>
<br>
<br>
--<br>
View this message in context: <a href="http://www.nabble.com/Firing-Rules-in-Rule-Flows-tp21489239p21489239.html" target="_blank">http://www.nabble.com/Firing-Rules-in-Rule-Flows-tp21489239p21489239.html</a><br>
Sent from the drools - user mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>