Ereignisse
In den folgenden Metadatenobjekten können Makrobefehle in Ereignissen ausgeführt werden.
- Datensatz
- Vor Änderung (BeforeUpdate)
- Vor Löschung (BeforeDelete)
- Nach Einfügung (AfterInsert)
- Nach Änderung (AfterUpdate)
- Nach Löschung (AfterDelete)
- Datensatz-Feld
- Nach Aktualisierung (AfterChange)
- Datenstruktur
- Beim Laden (OnLoad)
- Vor Änderung (BeforeUpdate)
- Vor Löschung (BeforeDelete)
- Nach Einfügung (AfterInsert)
- Nach Änderung (AfterUpdate)
- Nach Löschung (AfterDelete)
- Daten-Edit-Element
- Beim Anzeigen (OnCurrent)
- Nach Abbruch (AfterCancel)
- Beim Schließen (OnClosePart)
- Daten-Edit-Element-Feld
- Nach Aktualisierung (AfterChange)
- Nach Setzen (AfterSet)
- Vor Suche (BeforeSearch)
- Nach Suche (AfterSearch)
- Multi-Daten-Edit-Element
- Beim Anzeigen (OnCurrent)
- Nach Einfügen (AfterPaste)
- Multi-Daten-Edit-Element-Feld
- Nach Aktualisierung (AfterChange)
- Nach Setzen (AfterSet)
- Vor Suche (BeforeSearch)
- Nach Suche (AfterSearch)
- Beim Betreten (OnEnter)
- Selektions-Element
- Beim Anzeigen (OnCurrent)
- Bei Ausführung (OnExecute)
- Selektions-Element-Feld
- Nach Aktualisierung (AfterChange)
- Nach Setzen (AfterSet)
- Vor Suche (BeforeSearch)
- Nach Suche (AfterSearch)
In den folgenden Metadatenobjekten können Makrobefehle durch Funktionsaufrufe ausgeführt werden.
- Kontextmenüeintrag
- MakroStarten.Sage.System
Makrobefehle können clientseitig, serverseitig und client- und serverseitig ausgeführt werden. Die Nachfolgende Tabelle zeigt den Ort der Ausführung an.
Metadaten | Ereignis | Clientseite | Serverseite |
---|---|---|---|
Datensatz | Vor Änderung | Ja | Ja |
Vor Löschung | Ja | Ja | |
Nach Einfügung | Ja | Ja | |
Nach Änderung | Ja | Ja | |
Nach Löschung | Ja | Ja | |
Datensatzfeld | Nach Aktualisierung | Ja | Ja |
Datenstruktur | Vor Änderung Serverseitig wird validiert, ob ein Speichern möglich ist. Dabei können Warnungen und/oder Fehler an den Client zurückgegeben werden. Werden nur Warnungen an den Client gesendet, dann werden diese in einer Dialogbox angezeigt. Der Anwender kann entscheiden, ob er speichern möchte oder nicht. Entscheidet sich der Anwender zu speichern, wird dieses Ereignis erneut ausgeführt. Die Clientseite wird beim zweiten Durchlauf nicht ausgeführt (Hotfix nötig, bitte Wartungstexte prüfen). | Ja | Ja |
Beim Laden | Nein | Ja | |
Vor Löschung | Ja | Ja | |
Nach Einfügung | Ja | Ja | |
Nach Änderung | Ja | Ja | |
Nach Löschung | Ja | Ja | |
Daten-Edit-Element | Beim Anzeigen | Ja | Nein |
Nach Abbruch | Ja | Nein | |
Beim Schließen | Ja | Nein | |
Daten-Edit-Element-Feld | Nach Aktualisierung | Ja | Nein |
Nach Setzen | Ja | Nein | |
Vor Suche | Ja | Nein | |
Nach Suche | Ja | Nein | |
Multi-Daten-Edit-Element | Beim Anzeigen | Ja | Nein |
Nach Einfügen | Ja | Nein | |
Multi-Daten-Edit-Element-Feld | Nach Aktualisierung | Ja | Nein |
Nach Setzen | Ja | Nein | |
Vor Suche | Ja | Nein | |
Nach Suche | Ja | Nein | |
Beim Betreten | Ja | Nein | |
Selektions-Element | Beim Anzeigen | Ja | Nein |
Bei Ausführung | Ja | Nein | |
Selektions-Element-Feld | Nach Aktualisierung | Ja | Nein |
Nach Setzen | Ja | Nein | |
Vor Suche | Ja | Nein | |
Nach Suche | Ja | Nein |
Optimaler Umgang mit Makros im Daten-Edit-Element
Verwendungzweck „Stammdatendialog für einen Datensatz“
Daten-Edit-Element-Feld: Makro „Nach Aktualisierung“ (AfterChange)
- Zum Ausführen von Aktionen nach einer Feldänderung
- Nicht für Validierungen
- Die Ausführung erfolgt clientseitig
- Beispiel: ediArtikelstamm/ Grundlagen/ Artikelgruppe
Daten-Edit-Element-Feld: Makro „Nach Setzen“ (AfterSet)
- Zum Setzen eines UI-Status wenn ein Datensatz geladen oder ein Feld geändert wurde (wird nach „Nach Aktualisierung“ und vor „Beim Anzeigen“ ausgelöst)
- (in)aktiv, (nicht) schreibgeschützt, (un)sichtbar
- Nicht für Validierungen und nicht für Wertänderungen
- Die Ausführung erfolgt clientseitig
- Beispiel: ediArtikelstamm/ Beschaffung/ IstBestellartikel
Daten-Edit-Element: Makro „Beim Anzeigen“ (OnCurrent)
- Setzen von Defaultwerten, logische Abhängigkeiten für den ganzen Datensatz behandeln
- Die Ausführung erfolgt clientseitig, einmalig wenn ein neuer oder vorhandener Datensatz aufgerufen wurde
- Beispiel: ediArtikelstamm
Datensatz-Feld: Makro „Nach Aktualisierung“ (AfterChange)
- Für Validierungen
- Die Ausführung erfolgt client- und serverseitig (kann mit der Funktion IsRunningOnServer() abgefragt werden)
- Beispiel: recArtikelstamm/ Besteuerungsart
Datensatz: Makro „Vor Änderung“ (BeforeUpdate)
- Für komplexere Validierungen
- Die Ausführung erfolgt client- und serverseitig vor dem Speichern des Datensatzes (serverseitig innerhalb der Transaktion)
- Beispiel: recArtikelstamm