Случайная Повестка дня группы сосредоточиться - PullRequest
0 голосов
/ 06 ноября 2019

Я создал два разных правила, которые принадлежат двум разным группам повестки дня. Первый:

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

Другое правило в другой группе повестки дня:

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

После этого я установил фокус на группу "47-37",

kieSession.getAgenda().getAgendaGroup("47-37").setFocus();

Все правила в группе "32-30" также оцениваются. Я использую Drools 7.0.0. Как я могу контролировать выполнение правил только внутри целевой группы?

...