Formulardatenobjekt geaendert
Auslöser - Kurzfassung
Dieser Auslöser ist nur auf der Formular-Ebene verfügbar und wird ausgelöst, wenn sich das Formulardatenobjekt und nicht nur dessen Inhalt geändert hat.
z.B. zuvor geladener Datensatz mit ID 523 geändert zu Datensatz mit ID 560
Im Gegensatz zum Auslöser Formulardaten geladen, wird dieses Ereignis nicht ausgelöst, wenn das gleiche Objekt mit geänderten Werten geladen wurde, sondern nur dann, wenn es sich bei den geladenen Formulardaten tatsächlich um ein anderes Objekt handelt.
Von einem anderen Datenobjekt ist die Rede wenn:
ein anderer Datensatz in die Maske geladen wird (z.B. Sendung 51 und dann Sendung 52)
der aktuelle Datensatz gespeichert und somit neu in die Maske geladen wurde
ein neuer, noch ungespeicherter Datensatz in die Maske geladen wurde (z.B. Benutzer drückt auf "Neu" Ribbon)
Als Wert wird folgendes Client Objekt an den Verhaltensbaustein übergeben:
{
from: oldFormData,
//zuvor geladene Formdaten
to: currentFormData,
//aktuell geladene Formdaten
}
Tipp: Das Ereignis wird noch vor den "geändert" Ereignissen ausgelöst, sodass z.B. Flags und Variablen zurückgesetzt werden können.
Tipp: Wenn zwischen "Speichern" und einem gänzlich anderen Datensatz unterschieden werden soll, kann in Geschäftsobjektmasken das "id" Feld der beiden Objekte "from" und "to" verglichen werden. Ist "from.id" leer, wurde die Maske neu geöffnet und zum ersten Mal ein Objekt geladen.
Für neu erstellte Objekte gilt "from.id < 1".
Beispielfälle
Mit Hilfe des Berechnen Verhaltens können Vergleiche und Auswertungen der übergebenen "from" und "to" Objekte durchgeführt werden.
Nachfolgende Szenarien können mit Geschäftsobjekten abgedeckt werden (unabhängig davon, welche Aktionen danach ausgeführt werden).
Vergleich |
Prüfungsausdruck |
Aussage bei "wahr" |
from.id ist gleich to.id |
$cmp({from.id},==,{to.id}) |
Das Geschäftsobjekt wurde gespeichert und wieder in die Maske geladen (z.B. Eigenes Aktionsevent mit Speichernaktion, oder Benutzer drückt auf "Speichern") |
from.id ist leer |
$isEmpty({from.id}) |
Es wurde zum ersten Mal ein Objekt in die Maske geladen, seit sie geöffnet wurde (Tipp: Um leere Daten auszuschließen, kann auch noch to.id auf nicht leer geprüft werden) |
from.id ungleich to.id |
$cmp({from.id,!=,{to.id}) |
Ein anderes, bereits gespeichertes, Geschäftsobjekt wurde geladen (z.B. Sendung 5121 und dann Sendung 5118) |
from.id ist kleiner 1 |
$cmp({from.id},<,1) |
Das Geschäftsobjekt war neu und wurde jetzt entweder gespeichert oder ein anderes Geschäftsobjekt wurde geladen (hier kann nur schwer unterschieden werden) |
to.id ist kleiner 1 |
$cmp({to.id},<,1) |
Ein neues Geschäftsobjekt, welches noch nie gespeichert wurde, wurde in das Formular geladen (i.d.R. durch Klicken auf das "Neu" Ribbon) |