J'ai une exigence pour obtenir le nom de la règle dans ma fonction personnalisée où je l'utilise pour un traitement, Ci-dessous le code est la façon dont je suis en train de faire. Si ce n'est pas possible directement, existe-t-il une alternative. BTW Actuellement, nous utilisons Drools 5.6Drools Comment obtenir ruleContext quand et quand?
import org.drools.spi.KnowledgeHelper;
function boolean printRuleName(KnowledgeHelper context) {
System.out.println(context.getRule().getName());
return true;
}
// rule values at C15, header at C10
rule "MY_RULE_15"
salience 65521
when
k:StatefulKnowledgeSession(true == "true")
//context: KnowledgeHelper(true=="true")
m:Map(true == "true")
Map((printRuleName(kcontext) == "true")
then
System.out.println(kcontext.getRule().getName());
//this works in action
end
//Map((printRuleName(kcontext) == "true") this is causing null pointer exception, kcontext is not getting injected
Merci pour la réponse !! Pouvez-vous élaborer sur «vous devrez écrire un littéral de chaîne contenant le nom de la règle en tant que paramètre». Comment pouvons-nous faire cela s'il vous plait? – Praneeth
Un appel de méthode comme ceci: 'x (" y ")' – laune