2012-02-01 10 views
8

मैं इस ढांचे में शुरुआत कर रहा हूं और मैं जावा क्लास के बजाय मानचित्र का उपयोग करने की कोशिश कर रहा हूं।ड्रोल और मानचित्र

मेरे उदाहरण है कि तरह लग रहा है:

मुख्य विधि:

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 

मैं नियम पूर्व शर्त के अंदर बीएमआई के मूल्य की तुलना करना चाहते हैं, यह अगर हालत सच है, इसलिए मैं नीचे दिया गया संदेश दिखाना चाहता हूं।

यह क्या गलत है?

उत्तर

12

आप की तरह कुछ लिखना चाहिए:

when 
    $map: Map(this["BMI"] < 18) 
then 

यह :)

+0

+1 काम करना चाहिए, यहां तक ​​कि मैं गुण है जिसके लिए गुण अच्छी तरह से काम न के साथ मदद की जरूरत है। – aitchnyu

+0

5.8.3.3.8 पर सूचीबद्ध और मानचित्र (यहां [5.8.3] (http://docs.jboss.org/drools/release/5.4.0.Beta2/drools-expert-docs/html/ch05.html # d0e4051)) – aitchnyu

संबंधित मुद्दे