In diesem Beitrag möchte ich zeigen, wie man mit Hilfe von Chain of command Pre- oder Post-Events ablösen kann.
Nachdem man sich das gewünschte Projekt erstellt/geöffnet hat kann man über das Kontextmeü des Projektes unter Add > New item eines neues Objekt vom Typ Class erstellen. Dieser Klasse gibt man noch einen Namen, wichtig dabei ist die Endung _Extension.
Danach steht eine einfache Klasse zur Verfügung, die sich wie folgt darstellt
class FMCustomer_DMO_Table_Extension
{
}
Nun ändern wir über das Attribut ExtensionOf die Klasse, ergänzen sie um den Modifier final. Solcherart gekennzeichnete Klassen werden auch als Augmentation-Klassen bezeichnet.
[ExtensionOf(tableStr(FMCustomer))]
final class FMCustomer_DMO_Table_Extension
{
}
Nun wechseln wir wieder in den Application Explorer, suchen uns dort jene Tabelle die wir erweitern wollen und erweitern des Methods-Knoten. Nun stellen wir uns auf die jeweilige Methode, im Beispiel die insert(), und wählen über das Kontextmenü die Option View Code aus.
Dadurch öffnet sich die Methode im Arbeitsbereich aus dem wir die Definition der Methode in die Zwischenablage kopieren.
public void insert()
{
}
Diesen Code fügen wir in der Extension-Klasse ein.
Danach fügen wir den Aufruf der Original-Methode in unseren Code ein
[ExtensionOf(tableStr(FMCustomer))]
final class FMCustomer_DMO_Table_Extension
{
public void insert()
{
next insert();
}
}
Anschließend kann man vor dem Aufruf von next() bzw. nach diesem Aufruf entsprechenden Code einfügen. Je nach Position dieses Codes haben wir sozusagen eine Pre- oder Post-Eventhandler abgebildet.
Im konkreten Beispiel wird vor dem Aufruf der Original insert()-Methode ein Feld ggf. mit einem Standardwert befüllt.
[ExtensionOf(tableStr(FMCustomer))]
final class FMCustomer_DMO_Table_Extension
{
public void insert()
{
if ( !this.Email)
{
this.Email = "someone@somewhere.com";
}
next insert();
}
}
Dieser Beitrag wurde basierend auf der Version 7.3 mit Platform-Update 12 und installiertem Fleet Management Sample Application erstellt.
Dieser Beitrag bezieht sich auf die Version: Dynamics 365 for Finance and Operations
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
In diesem Beitrag möchte ich zeigen, wie man mit Hilfe von Chain of command Pre- oder Post-Events ablösen kann.
Nachdem man sich das gewünschte Projekt erstellt/geöffnet hat kann man über das Kontextmeü des Projektes unter Add > New item eines neues Objekt vom Typ Class erstellen. Dieser Klasse gibt man noch einen Namen, wichtig dabei ist die Endung _Extension.
Danach steht eine einfache Klasse zur Verfügung, die sich wie folgt darstellt
Nun ändern wir über das Attribut ExtensionOf die Klasse, ergänzen sie um den Modifier final. Solcherart gekennzeichnete Klassen werden auch als Augmentation-Klassen bezeichnet.
Nun wechseln wir wieder in den Application Explorer, suchen uns dort jene Tabelle die wir erweitern wollen und erweitern des Methods-Knoten. Nun stellen wir uns auf die jeweilige Methode, im Beispiel die insert(), und wählen über das Kontextmenü die Option View Code aus.
Dadurch öffnet sich die Methode im Arbeitsbereich aus dem wir die Definition der Methode in die Zwischenablage kopieren.
Diesen Code fügen wir in der Extension-Klasse ein.
Danach fügen wir den Aufruf der Original-Methode in unseren Code ein
Anschließend kann man vor dem Aufruf von next() bzw. nach diesem Aufruf entsprechenden Code einfügen. Je nach Position dieses Codes haben wir sozusagen eine Pre- oder Post-Eventhandler abgebildet.
Im konkreten Beispiel wird vor dem Aufruf der Original insert()-Methode ein Feld ggf. mit einem Standardwert befüllt.
Dieser Beitrag wurde basierend auf der Version 7.3 mit Platform-Update 12 und installiertem Fleet Management Sample Application erstellt.