Wie füge ich dem Arbeitsspeicher zur Laufzeit in Drools DRL Fakten hinzu und lade sie in den Ausführungsergebnissen einer zustandslosen Sitzung ab?

8

Hintergrund:

Ich arbeite an einer Anwendung, die ein Eingabeobjekt basierend auf einer Reihe von Drools-Regeln in eines von zwei Ausgabeobjekten transformiert. Das Ausgabeobjekt ist erst zur Laufzeit bekannt und wird in der ersten auszuführenden Regel erstellt.

Hier ist die Regel, die das Ausgabeobjekt und eine Beispieltransformationsregel erstellt:

%Vor%

Hier ist der Code, der die Regeln aufruft:

%Vor%

Problem:

Wenn ich die Regeln ausführe, erhalte ich das Ausgabeobjekt nicht in meinen zurückgegebenen Fakten. Ich erhalte das Handelsobjekt zurück, aber ich bekomme weder das Option- noch das Swap-Objekt zurück, je nachdem, was nach der ersten Regel zum Arbeitsspeicher hinzugefügt wurde.

Frage:

Wie füge ich dem Arbeitsspeicher zur Laufzeit in der drl Fakten hinzu und lade sie in den Ausführungsergebnissen einer zustandslosen Sitzung ab?

BEARBEITEN: Muss ich eine Drools-Abfrage verwenden?

    
gregwhitaker 03.05.2011, 15:54
quelle

1 Antwort

10

Ich ging weiter und benutzte eine Drools-Abfrage. Ich poste den Code für jeden anderen, der mitkommt.

Abfrage hinzugefügt zu den obigen Regeln (Die Objekte erweitern BaseTrade ):

%Vor%

Code zum Abrufen der Abfrageergebnisse aus den Ausführungsergebnissen:

%Vor%     
gregwhitaker 03.05.2011, 22:10
quelle

Tags und Links