ODM -Geschäftsregeln mit einem JavaCompute -Knoten ausführen

Sie können einen JavaCompute -Knoten verwenden, um IBM Operational Decision Manager -Geschäftsregeln (ODM) auszuführen.

Vorbereitungen

Informationen zu dieser Task

Sie können einen JavaCompute -Knoten verwenden, um Regeln, die in einem Regelsatz enthalten sind, mithilfe einer eingebetteten Regelengine auszuführen.

Vorgehensweise

Führen Sie die folgenden Schritte aus, um einen JavaCompute -Knoten für die Ausführung von Regeln in einem Regelsatz zu verwenden:

  1. Verbindung zu einem ODM -Server herstellen
  2. Regelsatz abrufen
  3. Regelsatz ausführen

Verbindung zu einem ODM-Server erhalten

Informationen zu dieser Task

Rufen Sie während der Methode onSetup eines JavaCompute -Knotens eine Verbindung zu einem ODM Rule Execution Server ab, indem Sie die Methode getODMServer aufrufen und den Namen einer ODMServer-Richtlinie angeben:

String odmServerPolicyName = "{myPolicyProject}:myODMServerPolicy";
MbODMServer odmServer = getODMServer(odmServerPolicyName);

Diese Methode initialisiert eine Verbindung zum ODM Rule Execution Server, der aktiv sein muss, wenn der Nachrichtenfluss, der auf den JavaCompute -Knoten verweist, implementiert oder gestartet wird. Die Methode getODMServer kann nur innerhalb der Methode onSetup aufgerufen werden. MbODMServer -Objekte dürfen nicht von JavaCompute -Knoten gemeinsam genutzt werden und dürfen nicht länger als die Lebensdauer des aktuellen Knotens zwischengespeichert werden. MbODMServer-Objekte, die innerhalb der Methode onSetup abgerufen werden, können in der Methode evaluate zum Suchen von Regelsätzen verwendet werden.

Regelsatz abrufen

Informationen zu dieser Task

Nach dem Abrufen eines MbODMServer-Objekts kann das Objekt zum Abrufen eines Regelsatzes beim ODM-Server verwendet werden, der bei der Ausführung des Nachrichtenflusses ausgeführt werden soll. Rufen Sie zum Abrufen eines Regelsatzes die Methode getRuleset für das MbODMServer-Objekt auf und geben Sie den vollständig qualifizierten Pfad zu dem Regelsatz in der Form '/RuleAppName/RuleAppVersion/rulesetName/rulesetVersion' an. Sie können eine bestimmte Version oder den Wert latest angeben, um die neueste Version zu verwenden. Zum Beispiel:

MbODMRuleset odmRuleset = odmServer.getRuleset("/myRuleApp/1.0/my_ruleset/1.0");
MbODMRuleset odmRuleset = odmServer.getRuleset("/myRuleApp/Latest/my_ruleset/latest");
MbODMRuleset odmRuleset = odmServer.getRuleset("/myRuleApp/1.0/my_ruleset/latest");

Beim ersten entsprechenden Verweis wird die neueste Version (Latest) eines Regelsatzes oder einer Regel-App (RuleApp) geladen und auf Anwendungsebene zwischengespeichert. Dies führt dazu, dass für alle Nachrichtenflüsse und Knoten innerhalb der Anwendung dieselbe neueste Version (Latest) verwendet wird, unabhängig davon, wann sie zum ersten Mal referenziert werden. Nach dem Stoppen und Starten der Anwendung wird erneut ausgewertet, welche Version die neueste Version ist.

Über die Methode getRuleset wird der Regelsatz vom ODM-Server abgerufen und in der eingebetteten Regelengine einsatzbereit zur Verfügung gestellt.

Regelsätze definieren Regelsatzparameter, die verwendet werden, um Daten in beiden Richtungen zwischen dem Regelsatz und der aufrufenden Anwendung zu übergeben. Der Regelsatz kann Parameter des Typs Java oder XMLhaben und Regelsätze, die beide Parametertypen unterstützen, können über einen JavaCompute -Knoten aufgerufen werden. Wenn der Regelsatz Parameter des Typs Javahat, müssen die Klassen, die die Java-Objekte für diese Parameter definieren, dem JavaCompute -Knoten zur Entwicklungszeit und zur Laufzeit zur Verfügung gestellt werden. Wenn Sie den Assistenten für den JavaCompute -Knoten verwenden, um den ODM -Server abzufragen und Schablonen-Java-Code zu generieren, können Sie auch die Klassendateien herunterladen, die die Parameter definieren, und für das Java-Projekt verfügbar machen, das den JavaCompute -Knoten enthält.

Die Methode getRuleset kann während der Methoden onSetup oder evaluate des JavaCompute -Knotens aufgerufen werden. Wenn dieselbe Regel mehrmals angefordert wird, geben alle Aufrufe nach dem ersten Aufruf die Version zurück, die heruntergeladen und zwischengespeichert wurde. MbODMRuleset -Objekte dürfen von JavaCompute -Knoten nicht gemeinsam genutzt werden und dürfen nicht länger als die Lebensdauer des aktuellen Knotens zwischengespeichert werden. MbODMRulesets können während der Methode onSetup eines JavaCompute -Knotens abgerufen und anschließend von seiner Methode evaluate verwendet werden, um eine Verzögerung der Ausführung der ersten Nachricht zu vermeiden.

Regelsatz ausführen

Informationen zu dieser Task

Bei der Ausführung eines Regelsatzes müssen Sie eine Parameterzuordnung erstellen, die der Methode execute des MbODMRuleset-Objekts übergeben werden soll. Die Zuordnung muss einen Eintrag für jeden Parameter in der Regelsatzdefinition enthalten, der als Parameter des Typs IN oder des Typs INOUT definiert ist. Bei Parametern des Typs XML müssen Sie eine Java-Zeichenfolge übergeben, die eine XML-Darstellung des xsd-Typs (einfach oder komplex) enthält, der für die jeweiligen Parameter definiert ist. Bei Parametern des Typs Java müssen Sie eine Instanz der für die jeweiligen Parameter definierten Java-Klasse übergeben. Rufen Sie zum Ausführen des Regelsatzes die Methode execute des MbODMRuleset-Objekts auf und übergeben Sie dabei die Parameterzuordnung:


Map<String, Object> ruleInParameters = new HashMap<String, Object>();
MyObject myObj1 = new MyObject();
ruleInParameters.put("ruleParameter_Java_1", myObj1);
ruleInParameters.put("ruleParameter_XML_2", "<Customer><name>John Doe</name><age>33</age></Customer>");
MbODMRulesetExecutionResponse ruleResponse = odmRuleset.execute(ruleInParameters);

Der Aufruf der Methode execute hat eine MbODMRulesetExecutionResponse-Instanz als Ergebnis. Dieses Objekt ermöglicht über die Methode getOutputParameters den Zugriff auf die Zuordnung für Parameter des Typs OUT und INOUT des Regelsatzes sowie auf verschiedene Ausführungsstatistiken:


Map<String, Object> ruleOutParameters = ruleResponse.getOutputParameters();
MyResultObject myResult1 = (MyResultObject)ruleOutParameters.get("ruleResponseParameter1");
long rulesFired = ruleResponse.getTotalRulesFired();

Für das Abrufen von Daten aus der eingehenden Nachrichtenbaumstruktur können Sie reguläre Zugriffs- und Änderungstechniken verwenden und so die an die Methode execute des Regelsatzes übergebenen Parameter erstellen sowie die ausgehende Nachrichtenbaumstruktur mit Details der Ergebnisparameter erstellen bzw. ändern. Die Methode execute des MbODMRuleset-Objekts kann mit mehreren Threads aufgerufen werden und muss nicht für jede Nachrichtenflussinstanz gesucht werden.

Regelgruppen mit JavaCompute-Knoten ausführen

Informationen zu dieser Task

Wenn Sie einen JavaCompute -Knoten erstellen, wird eine Reihe von Vorlagen angezeigt, von denen eine Process via Operational Decision Manager rulesetist. Wählen Sie diese Option aus, um die verfügbaren Regelgruppen in ODM Rule Execution Server abzufragen. Sie werden vom Assistenten durch die Auswahl eines Regelsatzes geführt und anschließend wird ein Java-Vorlagencode mit Details zu der Regel und zum Aufrufen der Regel generiert. Weitere Informationen finden Sie unter ODM -Klassen mithilfe des Regelsatzassistenten 'Process via Operational Decision Manager ' erstellen.