Drools7 rule engine Map uses

Service code:

@Service
public class DroolsService {
    public String fireRule() {
        KieServices ks = KieServices.Factory.get();
        KieContainer kContainer = ks.getKieClasspathContainer();
        KieSession kSession = kContainer.newKieSession("ksession-rules");
        Map<String,String> map=new HashMap<>();
        map.put("message","Hello World");
        map.put("status","0");
        kSession.insert(map);//插入
        kSession.fireAllRules();//执行规则
        kSession.dispose();
   	 }
}

Rule file:

1. Use [] to get the value

	import java.util.Map;
	dialect  "java
	rule "Hello World"
    when
        $map:Map()
        $o : Object($map["status"]=="0");
    then
        System.out.println( $map.get("message"));
	end

2. Use the get() method to get the value

	import java.util.Map;
	dialect  "java"

	rule "Hello World"
	    when
	        $map:Map()
	        $o : Object($map.get("status")=="0");
	    then
	        System.out.println( $map.get("message"));
	
	end

Guess you like

Origin blog.csdn.net/u012893747/article/details/90513824