Drools 随机议程组获得关注

Drools 随机议程组获得关注,drools,drools-flow,Drools,Drools Flow,我创建了两个不同的规则,它们属于两个不同的议程组。 第一个: rule "32-30-33.32" dialect "java" salience 0 agenda-group "32-30" when map : Map((this["Product Name"].toUpperCase().contains("PREMIUM ADPRODUCT")) && ((this["Size Length"] != 5) || (this["Size"].toUpperCase

我创建了两个不同的规则,它们属于两个不同的议程组。 第一个:

rule "32-30-33.32"
dialect "java"
salience 0
agenda-group "32-30"
when
    map : Map((this["Product Name"].toUpperCase().contains("PREMIUM ADPRODUCT")) && ((this["Size Length"] != 5) || (this["Size"].toUpperCase() not contains "300X600") || (this["Size"].toUpperCase() not contains "280X130") || (this["Size"].toUpperCase() not contains "300X250") || (this["Size"].toUpperCase() not contains "970X250") || (this["Size"].toUpperCase() not contains "320X50")));
then
    JSONObject jObject = new JSONObject("{\"error34\":\"Premium Adproduct doesn't contain required Creative size!\"}");
    Iterator<?> keys = jObject.keys();
     while(keys.hasNext()) {
          String key = (String)keys.next();
          Object value = jObject.get(key);
          map.put(key, value);
     }
    debug(drools);
end

“32-30”组中的所有规则也将得到评估。我用的是Drools 7.0.0。我如何才能仅在重点小组内控制规则的执行?

这是否回答了您的问题?重复的问题。你可以在这里找到解释[1][1]。@Prog\g它没有回答。如何不让另一个组中的另一个规则得到评估,除非它是集中的?您可以使用单独的会话或入口点。请参阅entry pointAFAIK,您不能在会话级别上分离规则,它会从您的数据库中获取所有规则
rule "47-37-1.0"
dialect "java"
salience 0
agenda-group "47-37"
when
    map : Map((this["OrderName"] == null));
then
    JSONObject jObject = new JSONObject("{\"error1\":\"OrderName should not be null \"}");
    Iterator<?> keys = jObject.keys();
     while(keys.hasNext()) {
          String key = (String)keys.next();
          Object value = jObject.get(key);
          map.put(key, value);
     }
    debug(drools);
end
kieSession.getAgenda().getAgendaGroup("47-37").setFocus();