Drools Rule depending on Knowledge from JDK Map (not within non-JDK Class)
15,711
You should write something like:
when
$map: Map(this["BMI"] < 18)
then
It should work :)
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Author by
Admin
Updated on June 04, 2022Comments
-
Admin about 2 years
I'm trying to write the below Rule, which depends on Knowledge provided in the below
main
that uses just a JDK [library] Map (instead of a Map within a non-library Class). But it doesn't seem to be working...Main method:
Map<String, Float> mapa = new HashMap<String, Float>(); mapa.put("Height", (float)1.73); mapa.put("Weight", (float)79.0); mapa.put("BMI", mapa.get("Weight") / (mapa.get("Height") * mapa.get("Height"))); ksession.insert(mapa);
rule.drl:
rule "Low BMI" when $map : (Map(values("BMI")) < 18.0) then System.out.println("You have a low BMI"); end
I want to compare the value of BMI inside of rule precondition, if this condition is true, so I want to show the message below.
What is wrong?
-
Jesvin Jose over 12 years+1, even I needed help with attributes for which properties dont work well.
-
Jesvin Jose over 12 yearsLists and maps at 5.8.3.3.8 (here is 5.8.3 )