All,<br><br>I have the following rule which uses the collect function:<br><br>rule "Invalid RR Line"<br> salience 100<br> <br> when<br> rrDetailLine : DetailLine(detailKeyRecNo:keyRecNo != null, lineNumber != null )
<br> rrHeader : ArrayList( size == 0 ) from collect(RrHeader( keyRecNo != detailKeyRecNo ))<br> then<br> // logger.debug("Invalid RR Line: " + rrHeader.size());<br> logger.debug("Invalid RR Line: " +
rrDetailLine.getKeyRecNo());<br> logger.debug("Invalid RR Line: " + rrDetailLine.getLineNumber());<br> drools.halt();<br>end<br><br>What I am seeing is that if I only have 1 RrHeader in working memory this rule fails. Th reason I know that there is an RrHeader object is that I change the rule to the following:
<br><br>rule "Invalid RR Line"<br> salience 100<br> <br> when<br> rrDetailLine : DetailLine(detailKeyRecNo:keyRecNo != null, lineNumber != null ) <br> rrHeader : RrHeader( keyRecNo != detailKeyRecNo )
<br> then<br> // logger.debug("Invalid RR Line: " + rrHeader.size());<br> logger.debug("Invalid RR Line: " + rrDetailLine.getKeyRecNo());<br> logger.debug("Invalid RR Line: " +
rrDetailLine.getLineNumber());<br> drools.halt();<br><br>end<br><br>And it worked just fine.<br><br>Thoughts?<br><br>Ron<br>