Allgemein

Die Nuclos API ermöglicht die Erstellung von (java-basierenden) Geschäftsregeln, die lesend und schreibend bei bestimmten Ereignissen auf Inhalte in Nuclos zugreifen können. Dazu bietet die Nuclos API verschiedene Klassen und Objekte an, um mit Nuclos zu interagieren.

Die vollständige Dokumentation der Nuclos API findet sich unter http://api.nuclos.de/

Ereignisse

Ereignisse (org.nuclos.api.rule), an die Geschäftsregeln geknüpft werden können, sind:

Regelausführung und Unterformulare

Die Regelausführung bei Änderung von BOs in Unterformularen bedarf derzeit noch der Systematisierung in Nuclos .

Derzeitigs Verhalten ist wie folgt:

Regeleditor

Der Regeleditor (Menüpunkt "Server-Regeln (api-basiert)") ist das zentrale Werkzeug in Nuclos, um Regeln zu bearbeiten. Aktuell befindet sich ergänzend ein Eclipse-Plugin für die erleichterte Entwicklung und das erleichterte Debugging von Regel in Entwicklung.

Um voneinander abhängige Regeln, die nicht kompilierbar sind, korrigieren zu können, steht der Schalter "Automatische Kompilierung" (in der Toolbar des Regeleditors) zur Verfügung. Darüber lässt sich die automatische Kompilierung beim Speichern vorübergehend deaktivieren. Sobald man sie dort wieder aktiviert, wird beim nächsten Speichern wieder alles durchkompiliert.

Achtung: Solange Regeln nicht kompiliert sind, sind sie im Regelmanager (siehe folgender Abschnitt) auch nicht sichtbar.

Regelmanager

Der Regelmanager (Menüpunkt "Regel Management") ist das zentrale Werkzeug in Nuclos, um die Zuordnung zwischen Geschäftsregeln und Ereignissen zu verwalten. Die Zuweisung von Geschäftsregeln aus der Regelbibliothek (linker Baum) zu den Ereignissen (rechter Baum) geschieht mittels Drag&Drop.

Ereigniskontexte

Jedes Ereignis stellt den Regel, die diesem Ereignis zugewiesen werden, einen gewissen Ausführungskontext (org.nuclos.api.context) zur Verfügung. Diese Kontexte stellen den auszuführenden Regeln die für den jeweiligen Kontext relevanten Inhalte bereit, z.B. das gerade geänderte Objekt beim Ereignis Ändern oder das Quell- und das Zielobjekt beim Ereignis Arbeitsschritt.

Anwendungsspezifische Objekte

Nuclos kümmert sich automatisch um die Generierung aller nötigen anwendungsspezifischen Objekte. Dazu zählen

Werden Businessobjekte, Statusmodelle, Datenquellen, Reports und Formulare geändert, sind die Regeln, die diese anwendungsspezifischen Objekte verwenden, nicht mehr kompilierbar. Das hilft bei der unmittelbaren Erkennung der in Geschäftsregeln ggf. anzupassenden Stellen, die vorübergehend nicht mehr zu den geänderten anwendungsspezifischen Objekten passen.

Attribute vom Datentyp "Kommazahl" werden in Businessobjekten grundsätzlich über java.math.BigDecimal abgebildet. Mehr Informationen zu BigDecimal siehe http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html.

Zwei zeitsparende Hinweise zu BigDecimal:

  • Statt BigDecimal(double) immer BigDecimal.valueOf(Double) oder BigDecimal(String) verwenden.
  • Bei Divisionen immer .divide(BigDecimal, RoundingMode) statt .divide(BigDecimal) verwenden, um eine ArithmeticException zu vermeiden.

Unterstützende Provider

Provider (org.nuclos.api.provider) bieten unterstützende Funktionen, um Inhalte in Nuclos über Geschäftsregeln zu verändern. Aktuell sind folgende Provider implementiert, weitere werden folgen.