Hier soll ein Überblick über die Reihenfolge der Ausführung der einem BO zugeordneten API-Regeln in Abhängigkeit der ausgeführten Aktion gegeben werden.
Bearbeitung eines Businessobjekts
Anlegen
- StateChangeRule für Statuswechsel zu initialem Status (nur bei Statusmodell)
- Insert Rule für übergeordnetes BO
- Prüfung der Pflichtfelder (Nuclos) übergeordnetes BO
- Insert Rule für Unterformular-BOs (nur wenn das betreffende BO ein Statusmodell besitzt)
- Prüfung der Pflichtfelder Unterformular-BOs (Nuclos)
- StateChangeFinalRule für Statuswechsel zu initialem Status (nur bei Statusmodell)
- Insert Final ("im Anschluss") für Unterformular-BOs (nur wenn das betreffende BO ein Statusmodell besitzt)
- Insert Final ("im Anschluss") für übergeordnetes BO
Bearbeiten
- Update Rule für übergeordnetes BO
- Prüfung der Pflichtfelder (Nuclos) übergeordnetes BO
- Prüfung der Pflichtfelder Unterformular-BOs (Nuclos)
- Update Final ("im Anschluss") für übergeordnetes BO
Löschen
- derzeit werden Datensätze in Unterformularen beim Löschen des übergeordneten BO ebenfalls gelöscht
- ab Nuclos 4.38 nur noch wenn delete cascade für Referenzattribut gesetzt ist
- nur in diesem Fall und wenn das Subform-BO ein Statusmodell besitzt werden Delete Rules auch für dieses ausgeführt
- offen: Was wenn UF mit Statusmodell existieren und gelöscht UND bearbeitet wird?
Statuswechsel
Haupt-BO
UF-BO
Beim Klonen
Generate -> Generate Final -> Maske öffnet sich -> speichern -> Insert -> Insert Final
Achtung: Beim Verwenden eines Objektgenerators für das Klonen greift die Ausführungsreihenfolge von Objektgeneratoren
Benutzeraktion
CustomRule -> (UpdateRule -> UpdatFinalRule)
- Im Kontext von Benutzerregeln existiert die Methode
context.setUpdateAfterExecution()
- Ist updateAfterExecution true, wird im Anschluss an die Benutzerregel gespeichert
- Sollen aus der Benutzerregel Statuswechsel oder Regeln, die das Businessobjekt ändern (mit der save()-Methode) ausgeführt werden, muss updateAfterExecution auf false gesetzt werden
- Was passiert wenn vor der Ausführung der CustomRule gespeichert werden muss?
- Lösung: Aufruf von save() und anschließend ggf. neu laden des Datensatzes mit refresh()
Objektgenerierung
GenerateRule -> InsertRule -> InsertFinalRule -> GenerateFinalRule
- Was passiert wenn "Quellobjekt aktualisieren" aktiv ist?
- Werden Regel für UF-BOs ausgeführt?
PrintRule -> PrintFinalRule
Jobausführung
JobRule
Über REST-Service
CustomRestRule
Überblick
Inhalte