[rules-users] Collect Function

Ronald R. DiFrango ron.difrango at gmail.com
Fri Jan 11 13:39:09 EST 2008


All,

I have the following rule which uses the collect function:

rule "Invalid RR Line"
    salience 100

    when
        rrDetailLine : DetailLine(detailKeyRecNo:keyRecNo != null,
lineNumber != null )
        rrHeader : ArrayList( size == 0 ) from collect(RrHeader( keyRecNo !=
detailKeyRecNo ))
    then
        // logger.debug("Invalid RR Line: " + rrHeader.size());
        logger.debug("Invalid RR Line: " + rrDetailLine.getKeyRecNo());
        logger.debug("Invalid RR Line: " + rrDetailLine.getLineNumber());
        drools.halt();
end

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:

rule "Invalid RR Line"
    salience 100

    when
        rrDetailLine : DetailLine(detailKeyRecNo:keyRecNo != null,
lineNumber != null )
        rrHeader : RrHeader( keyRecNo != detailKeyRecNo )
    then
        // logger.debug("Invalid RR Line: " + rrHeader.size());
        logger.debug("Invalid RR Line: " + rrDetailLine.getKeyRecNo());
        logger.debug("Invalid RR Line: " + rrDetailLine.getLineNumber());
        drools.halt();

end

And it worked just fine.

Thoughts?

Ron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080111/6acb5218/attachment.html 


More information about the rules-users mailing list