میتوانید اول روی status گروه بندی کنید و تعدادشان را بشمارید. سپس ببنید آیا گروهی با تعداد بیش از 1 دارید و در آن صورت خطا بدهید. مثال زیر را ملاحظه کنید:
rule "insert PurchaseSum"
when
Customer( $pd : purchaseDate, $cn : custNo )
not( PurchaseSum( purchaseDate == $pd, custNo == $cn ) )
then
insert( new PurchaseSum( $cn, $pd );
end
rule "accumulate amounts"
when
$cu : Customer( $pd : purchaseDate, $cn : custNo, $am : amount )
$ps : PurchaseSum( purchaseDate == $pd, custNo == $cn, customers not
contains $cu )
then
modify( $ps ){
setSum( $ps.getSum() + amount ),
setCustomers( $ps.getCustomers().add( $cu )
}
end
rule "show amounts > X"
salience -100
when
$ps : PurchaseSum( amount > X )
thne
System.out.println( $ps... );
retract( $ps );
end
rule "clean up"
salience -101
when
$ps : PurchaseSum()
thne
retract( $ps );
end
توضیحات مثال را اینجا می توانید ملاحظه کنید.