I think it would be like this:

rule "Test"       
        when       
                $ca: CoApplicant()
                $co: Contract()
                eval ( $c1.getRelationship().equals("S") ||
                         $co.getState().equals("CO") ||
                         $co.getState().equals("IL") ))
        then
        ...
I am no expert but you also might be able to achieve what you want a little more efficiently with a global that ensures the consequence only executes once:

global boolean flag = true;
rule "Test"       
        when       
                (CoApplicant( relationship == "S" ) or (Contract ( state in ("CO", "IL"))))
                eval( flag )
        then
               flag = false;
        ...

kfs2@chryslerfinancial.com [1/16/2009 11:35 AM] wrote:

I understand that as this rule is written below it will be compiled into 2 subrules which both fire.  I searched the archives and found a post where Mark Proctor suggested "Bind each pattern, and do the || field constraints in an eval.". I'm new to Drools, can someone elaborate on how I would do that with the rule below?

rule "Test"        
        when        
                (CoApplicant( relationship == "S" ) or (Contract ( state in ("CO", "IL"))))
        then
        ...

Thanks

Kent    

_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users