Hi there,
I have checked existing posts and able to find problems which are similar to
mine but not exactly.
I have an Alert object as per below, several alert instances may have the
same caseNumber
I am trying to collect all the Alert instances that have the same
caseNumber, the rule is below, the rule below collects the items correctly
but the execution happens for each Alert object inserted into the knowledge
session. How can I get around this?
public class Alert {
int caseNumber;
short alertNo;
public int getCaseNumber() {
return caseNumber;
}
public void setCaseNumber(int caseNumber) {
this.caseNumber = caseNumber;
}
public short getAlertNo() {
return alertNo;
}
public void setAlertNo(short alertNo) {
this.alertNo = alertNo;
}
@Override
public String toString() {
return "Alert [caseNumber=" + caseNumber + ", alertNo=" + alertNo +
"]";
}
}
rule 'Collect Alerts for a specific case'
dialect 'java'
when
Alert( $caseNumber : caseNumber)
$list : List( ) from collect($alertalert : Alert( caseNumber ==
$caseNumber))
then
for(Object a : $list){
System.out.println(a);
}
end
I insert 5 alert objects as per below
Alert alert1 = new Alert();
alert1.setAlertNo((short)1);
alert1.setCaseNumber(830826);
Alert alert4 = new Alert();
alert4.setAlertNo((short)4);
alert4.setCaseNumber(830826);
Alert alert7 = new Alert();
alert7.setAlertNo((short)7);
alert7.setCaseNumber(830826);
Alert alert3 = new Alert();
alert3.setAlertNo((short)3);
alert3.setCaseNumber(820424);
Alert alert5 = new Alert();
alert5.setAlertNo((short)5);
alert5.setCaseNumber(820424);
I would like the output to be as follows
Alert [caseNumber=820424, alertNo=3]
Alert [caseNumber=820424, alertNo=5]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=1]
but instead the output is
Alert [caseNumber=820424, alertNo=5]
Alert [caseNumber=820424, alertNo=5]
Alert [caseNumber=820424, alertNo=3]
Alert [caseNumber=820424, alertNo=5]
Alert [caseNumber=820424, alertNo=3]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=1]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=1]
Alert [caseNumber=830826, alertNo=7]
Alert [caseNumber=830826, alertNo=4]
Alert [caseNumber=830826, alertNo=1]
--
View this message in context:
http://drools.46999.n3.nabble.com/Collecting-items-in-a-List-tp4021256.html
Sent from the Drools: User forum mailing list archive at
Nabble.com.