Comment définir un global dans Drools 4 à partir d'une règle? Je veux définir un booléen si une règle se déclenche afin qu'elle puisse le lire à partir d'une autre règle avec une saillance inférieure.Définition des globales dans Drools
2
A
Répondre
1
En supposant que vous utilisez 5.x Drools, vous pouvez le faire dans votre conséquence de la règle.
kcontext.getKnowledgeRuntime() setGlobal (nom, valeur);
0
Vous pourriez être en mesure de faire quelque chose comme:.
drools.getWorkingMemory() setGlobal ... (similaire ci-dessus, ce kris dit).
0
Je n'utiliserais pas de global ici. Vous déduisez un nouveau fait à partir d'autres faits, vous pouvez simplement «insérer» le nouveau fait et faire en sorte que l'autre règle s'enflamme.
rule "some rule"
when
//…
then
insert(new MyNewFact())
end
Il n'y a aucune garantie que Drools réévaluera vos règles en réponse à l'insertion d'un (nouveau) global et votre autre règle pourrait ne pas tirer. Il sera cependant réévalué en réponse aux faits qui sont insérés (ou retirés ou modifiés).
Désolé j'ai oublié de mentionner c'est Drools 4 – Tarski