Как я могу использовать группу активации при вызове контейнера kie api? - PullRequest
0 голосов
/ 17 мая 2018

Я пытался использовать группу активации, но понятия не имею, как вызвать группу активации из остальных Api? Пожалуйста, помогите мне, как добавить группу активации внутри запроса ниже.


package com.myteam.arduinodevre2;

//from row number: 1
rule "Row 1 Rulduino"
activation-group "gold"
    dialect "mvel"
    when
        f1 : ArduinoEntity( switchOn == true , voltaj >= 1000 , voltaj < 2000 )
    then
        modify( f1 ) {
                setLightOn( true )
        }
end

//from row number: 2
rule "Row 2 Rulduino"
activation-group "gold"
    dialect "mvel"
    when
        f1 : ArduinoEntity( switchOn == true , voltaj >= 5000.0 , voltaj < 10000.0 )
    then
        modify( f1 ) {
                setLightOn( false )
        }
end

//from row number: 3
rule "Row 3 Rulduino"
activation-group "gold"
    dialect "mvel"
    when
        f1 : ArduinoEntity( switchOn == false )
    then
        modify( f1 ) {
                setLightOn( false )
        }
end

//from row number: 4
rule "Row 4 Rulduino"
activation-group "silver"
    dialect "mvel"
    when
        f1 : ArduinoEntity( switchOn == true , voltaj >= 1.0 , voltaj < 3.0 )
    then
        modify( f1 ) {
                setLightOn( false )
        }
end


{

  "commands": [
    {
      "insert": {
        "object": {
          "com.myteam.arduinodevre2.ArduinoEntity": {
            "switchOn": true,
            "voltaj": 1100

          }
        },
        "out-identifier": "ArduinoEntity",
        "return-object": true
      }
    },
    {
      "fire-all-rules": "" ,
            "fire-targetgroup": "silver"
    }
  ]
}

Как я могу запустить свою целевую группу активации с помощью этого вида вещей -> "огонь-все-правила": "серебро" Но я не могу найти ценный ответ, прибегая к помощи.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Вы не вызываете группу активации. То, что вы, возможно, имеете в виду, это группа по повестке дня. Вы можете сосредоточиться на группе повестки дня, и все правила этой группы будут иметь право на увольнение.

Вы можете пойти дальше и добавить группу активации в свои правила, что приведет к срабатыванию только одного правила в этой группе.

Чтобы «вызвать» группу повестки дня из REST API, вам нужно установить фокус следующим образом:

{
  "commands": [
    {
      "set-focus": "myAgendaGroup"
    },
    {
      "insert": {
        "object": {
          "com.myteam.arduinodevre2.ArduinoEntity": {
            "switchOn": true,
            "voltaj": 1100
          }
        }
      }
    },
    {
      "fire-all-rules": {}
    }
  ]
}
0 голосов
/ 21 мая 2018

Вы можете получить ActivationGroup из KieSession, а не из KieContainer. Вам нужно создать KieSession из KieContainer и затем использовать метод kieSession.getAgenda (). GetActivationGroup (""). Setfocus () , чтобы получить ActivationGroup. Вы можете проверить эту ссылку , чтобы проверить тип возвращаемого метода и другие методы, связанные с ним.

...