Perfect! This is exactly what I needed - for me the key was understanding
that CodesList must extend java.util.ArrayList object... it all fell into
place from there... Thanks very much Michael for all your help - here's my
sample rule definition which I've successfully tested in a test harness:
rule "This rule works!"
no-loop
when
$MILT_CUSTNO : LookupListDOM ( name == "MILT_CUSTNO" ) // extends
ArrayList
$MILT_SHPRNO : LookupListDOM ( name == "MILT_SHPRNO" ) // extends
ArrayList
$gateIN : GATE_IN(
CUSTOMER_REFERENCE_NUMBER matches "^HX.*",
ACTIVITY_LOCATION matches "^US.*",
$sh_code : SH_CODE,
$fo_code : FO_CODE,
( ( $MILT_CUSTNO.contains($sh_code) ) || (
$MILT_SHPRNO.contains($fo_code) ) )
)
then
System.out.println("Matched Customer Rule! About to inovke Service...");
//myService.sendNotification($event, Constants.CUSTOMER_MATCH);
end
Thanks again for helping me resolve this important issue.
Regards,
James
Anstis, Michael (M.) wrote:
Something like this?
...
rule "doing something"
when
Customer( $custCode : customer_code )
$codes1 : Codes1List()
$codes2 : Codes2List()
$codes3 : Codes3List()
SHIPMENT_MOVE(
customer_code == $custCode,
$sc : ship_code,
$dc : deliver_code,
$pc : port_code,
( $codes1.containts($sc) || $codes2.containts($dc) ||
$codes3.containts($pc) )
)
then
// do something
End
--
View this message in context:
http://www.nabble.com/Struggling-with-Rule-syntax---please-help...-tf3408...
Sent from the drools - user mailing list archive at
Nabble.com.