Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Die Neuanlage (InsertRule, InsertFinalRule) eines neuen Datensatzes (z.B. einer Rechnung, etc.)
  • Die Änderung (UpdateRule, UpdateFinalRule) eines existierenden Datensatzes (z.B. eines Auftrages, etc.)
  • Das Löschen (DeleteRule, DeleteFinalRule) eines existierenden Datensatzes (z.B. eines nicht mehr benötigten Adressdatensatzes, etc.)
  • Der Statuswechsel (StateChangeRule, StateChangeFinalRule) in einem existierenden Datensatz (z.B. die Überführung einer Rechnung von "Offen" nach "Mahnung", etc.)
  • Die Durchführung eines Arbeitsschrittes  Objektgenerators (GenerateRule, GenerateFinalRule) (z.B. die Erstellung eines Lieferscheines aus einem Auftrag, etc.)
  • Das Betätigen einer Schaltfläche (CustomRule) durch den User (z.B. um bestimmte Aktionen auszulösen, etc.)
  • Automatische Jobs (JobRule), die regelmässig ausgeführt werden können (z.B. die nächtliche Aktualisierung eines Onlineshops, etc.)

...

  • Bei Neuanlage (InsertRule, InsertFinalRule) nur bei Objekten mit Statusmodell
  • Bei Änderung (UpdateRule, UpdateFinalRule) keine Regelausführung
  • Beim Löschen (DeleteRule, DeleteFinalRule) nur bei Objekten mit Statusmodell

Ändern, Hinzufügen und Löschen von Businessobjekten im Regelkontext

  • In Regeln die vor dem auslösenden Ereignis stattfinden (Generation-, Update-, Insert-, und Statechange-Rule) werden Änderungen am Kontextobjekt über Attribut-Setter automatisch übernommen
  • das Löschen von abhängigen Objekten aus einem Unterformular über die Methode delete()  gilt dabei als Änderung am Kontextobjekt
  • In Regeln die nach dem auslösenden Ereignis stattfinden (GenerationFinal-, UpdatFinale-, InsertFinal- und StateChangeFinal-Rule) gilt das nicht
  • In diesem Fall (und wenn abhängige Objekten aus einem Unterformular oder beliebige andere Objekte geändert werden sollen) ist ein Aufufen Metthode save() erforderlich
  •  Die Methode save() löst für das gespeicherte Objekt die zugehörigen Update- und UpdateFinaRules aus.
    • Achtung:  Ein save() auf das Kontextobjekt in einer UpdateFinalRule kann eine Endlosschleife auslösen, wenn es keine andere Mögllichkeit gibt empfiehlt es sich die Regelausführung selektiv auszuschalten
  • Das Einfügen von neu angelegten Businessobjekten über insert() ist in jedem Regelkontext möglich

Sieh auch: Beispiel für komplexe Kombinationen von Regeln

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.

...

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 Objektgenerator.

Anwendungsspezifische Objekte

...

  • QueryProviderDer QueryProvider bietet diverse Methoden, um nach Businessobjekten zu suchen.
  • BusinessObjectProvider. Der BusinessObjectProvider bietet diverse Methoden, um Businessobjekte anzulegen, zu modifizieren und zu löschen. (Ab 4.28 deprected- Es gibt ab dann Methoden direkt am Objekt wie .save() und .delete())
  • StatemodelProvider. Der QueryProvider bietet diverse Methoden, um Prozesse zu automatisieren bzw. Statuswechsel durchzuführen. (Deprected- Ab 4.28 gibt es Methoden direkt am Objekt wie .changeStatus(....))
  • DataSourceProvider. Der DataSourceProvider bietet diverse Methoden, um Datenquellen abzufragen bzw. auszuführen, um die Ergebnisse weiter zu verarbeiten.
  • GenerationProvider. Der GenerationProvider ist eine Hilfeklasse, die alle notwendigen Methoden zur Ausführung eines Arbeitsschrittes (Generation) beinhaltet.