Ich habe eine einfache Regel, in der ich zwei String-Typ der Variable in Sitzung einfügen. Jetzt muss ich Variablen holen.Drools holen die gleiche Art von Objekt aus der Sitzung
Code für gleiche:
rule "Header Account Null Check"
dialect "java"
ruleflow-group "TB:Header Account Null Check"
when
cAccount : AccountPair(headerAccount == null)
then
String error=new String();
String validateMsg=new String();
error="2528";
validationMsg="Header Account must not be null"
modify(cAccount) {
setErrorCode("2528")
}
insert(error);
insert(validateMsg);
System.out.println("Header Account null check called");
end
query "fetch validation variables"
#conditions
s:String();
end
Java-Code:
Collection<Object> myfacts = kSession.getObjects(new ClassObjectFilter(String.class));
Nachdem in myfacts Kontrolle bekam ich zwei Werte.
Jetzt ist das Problem gibt es zwei Variablen mit String.class Typ sind, muss ich für Fehler, welcher Wert wissen ist, und welcher Wert für validationMsg so, dass wir nächste Aufgabe durchführen wird.
Gleich mit Input auch wenn wir jetzt zwei String-Variablen aus Session hinzufügen, muss ich Bedingung für diese Variable hinzufügen. Das gleiche Problem tritt auch bei same auf. Bis jetzt haben wir das Problem der Eingabevariablen gelöst, indem wir die Variable als Globale Variable deklariert haben. Ich muss diese Strategie auch ändern, weil es keine gute Entscheidung ist, globale Variable zu deklarieren.
Bitte helfen Sie mir.
Danke, ich kenne diesen Ansatz, Szenario ist ein großes System mit JRule, wir konvertieren in Drools, JRule hat eine Möglichkeit, Eingabe-und Ausgabeparameter zu setzen. Ich brauche über die Möglichkeit, weil wir nicht wollen, den Code von Java prospektiv zu ändern. – Viral
Nun, wenn Sie das alles wissen: Was bringt es, diese Frage zu stellen? – laune
weil ich wissen möchte, ob es einen Weg gibt, keine Wrapperklasse zu erstellen, aber Variablenwerte abrufen kann und in der Lage bin, den Wert dieser Variablen zu identifizieren. – Viral