Hi,
I have a simple rule as following:
import java.util.HashMap;
rule "first"
when
a : CrestelRuleModel( $hmap : singleHashMap!=null);
then
System.out.println("Old Map: " + $hmap);
HashMap mapp = new HashMap();
mapp.put("hello", "world");
a.setSingleHashMap(mapp);
System.out.println("New Map: " + a.getSingleHashMap());
update(a);
end;
When I invoke the rule from my client, the rule is executed infinitely.
So, I have placed a "drools.halt()" before "end" statement of above
rule.
So, it stopped executing infinitely as I wanted. But is it a good practice?
Now, I want my input to be filtered by two rules, so I have placed rules
like following:
import java.util.HashMap;
rule "first"
when
a : CrestelRuleModel( $hmap : singleHashMap!=null);
then
System.out.println("Old Map: " + $hmap);
HashMap mapp = new HashMap();
mapp.put("hello", "world");
a.setSingleHashMap(mapp);
System.out.println("New Map: " + a.getSingleHashMap());
update(a);
drools.halt();
end;
rule "second"
when
b : CrestelRuleModel( $hmap2 : singleHashMap!=null);
then
System.out.println("Old Map2: " + $hmap2);
HashMap mapp2 = new HashMap();
mapp2.put("hello2", "world2");
b.setSingleHashMap(mapp2);
System.out.println("New Map2: " + b.getSingleHashMap());
update(b);
drools.halt();
end;
But in above case, only the "second" rule executes. What to do in order to
execute both the rules without any infinite loop?
Kindly share some pointers on this. Thanks.
PS: CrestelRuleModel is my POJO model having following fields,
public class CrestelRuleModel {
private ArrayList arrayListOfHashMap;
private HashMap singleHashMap;
private Object object;
private String remarks;
//Getters and Setters
}
Best Regards
Hushen Savani | Crestel Billing
ecTag
Show replies by date