Mit Microsoft Dynamics NAV 2016 kam eine wichtige Neuerung die in anderen Bereichen wie DotNet bereits seit Langem vorhanden ist und sich größter Beliebtheit erfreut. Die Rede ist vom sogenannten Eventing. Dahinter verbirgt sich die Möglichkeit Code in den Custom-Bereich wie neue Codeunits zu verslagern und dabei doch Zugriff auf alle Trigger zu haben.
Ein Beispiel hierfür sind "OnValidate" Trigger in einer Tabelle. Nehmen wir die Tabelle 18 - "Customer" und daraus das Feld 2 "Name". Wenn wir bei der Änderung des Namens eine Aktion, wie zum Beispiel das zeigen einer Message, durchführen wollen müssen wir nicht mehr zwangsläufig den Code in den "OnValidate" Trigger des Feldes "Name" der Tabelle "Customer" schreiben.
Stattdessen können wir diesen Event in einer Codeunit benutzen um unseren Code ausführen zu lassen.
Dazu legt man zum Beispiel in einer Codeunit eine neue Funktion an. In unserem Fall "OnCustomerNamceChange" genannt. Die Properties der Funktion müssen nun bearbeitet werden. Hier sind in Micrososft Dynamics NAV 2016 Folgende Eigenschaften Hinzugekommen
"Event" | Gibt an ob ein Event genutzt oder zur Verfügung gestellt werden soll |
"EventPublisherObject" | Definiert aus welchem Objekt der Event genutzt werden soll |
"EventFunction" | Wählt die Art des Events zum Beispiel "OnBeforeValidateEvent" |
"EventPublisherElement" | Hier wählt man das Feld |
Nun kann man den Code in die Funktion schreiben der in einer älteren Version als Micrososft Dynamics NAV 2016 noch im "OnValidate" Trigger der Tabelle geschrieben werden müsste
Die Funktion Stellt ebenfalls automatisch "Rec" und "xRec" zur Verfügung und ist als "EventSubscriber" gekennzeichnet.
Wenn nun der Name eines Kunden im CLient geändert wird kommt automatisch die programmeirte Meldung.
Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema. Kontaktieren Sie mich einfach über unser Kontaktformular oder per E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!/gs
Marc Wadepohl Managing Consultant
|