<br>&nbsp;&nbsp; Hmm, now that you mentioned, I see that our parser is limiting the forall() CE, not allowing nested &quot;from&quot; CEs. This is something we should fix, since the limitation is purely a parser limitation.<br><br>&nbsp;&nbsp; Anyway, for your case, the workaround is simply to use the &quot;raw&quot; forall-equivalence: not( A() and not( B() ) ). So try this:<br>
<br>
rule &quot;Do Not Process TAX&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;when<br>

 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$report: ExpenseReport($expenseDetails: expenseDetails) <br>

 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; not ( $ed : ExpenseDetails() from $expenseDetails and <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not ( ExpenseDetails( this == $ed, expenseType == ExpenseType.TAX ) from $expenseDetails )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br><div>&nbsp;then<br>

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; System.out.println(&quot;################ It works ##################&quot;);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; insertLogical(&quot;Bypass Process&quot;);<br>
end<br>

</div><br>&nbsp;&nbsp; This is just more verbose than the forall, but it is exactly the same. Once the parser is fixed, you will be able to simply write:<br><br>
rule &quot;Do Not Process TAX&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;when<br>


 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$report: ExpenseReport($expenseDetails: expenseDetails) <br>


 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; forall ( ExpenseDetails( expenseType == ExpenseType.TAX ) from $expenseDetails )<br><div>&nbsp;then<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; System.out.println(&quot;################ It works ##################&quot;);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; insertLogical(&quot;Bypass Process&quot;);<br>
end<br>

</div>
<br>&nbsp;&nbsp;&nbsp; BTW, may I ask you please to open a JIRA so we don&#39;t forget to fix this for 5.0?<br><br>&nbsp;&nbsp;&nbsp; Thanks,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Edson<br><br><br><br><div class="gmail_quote">2008/5/18 Alessandro Di Bella &lt;<a href="mailto:aldibella@gmail.com">aldibella@gmail.com</a>&gt;:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br>
<br>
I have these two classes:<br>
<br>
ExpenseReport{<br>
 &nbsp;Collection&lt;ExpenseDetails&gt; expenseDetails<br>
} <br>
ExpenseDetails{ &nbsp;  &nbsp;ExpenseReport document<br>
 &nbsp;ExpenseType expenseType<br>
}<br>
<br>
I am trying to create a rule that fires when all the ExpenseDetails in a<br>
ExpenseReport &nbsp;are of the same type:<br>
<br>
rule &quot;Do Not Process TAX&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;when<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$report: ExpenseReport($expenseDetails: expenseDetails) <br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;forall ( &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExpenseDetails(document==$report, expenseType == ExpenseType.TAX)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;################ It works ##################&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;insertLogical(&quot;Bypass Process&quot;);<br>
end<br>
<br>
For some reasons, it fires regardless that value of<br>
ExpenseDetails.expenseType.<br>
<br>
I just started with drools and any help i more than welcome.<br>
<br>
Thanks<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
</blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>