Zum Inhalt springen

Microsoft Dynamics 365 for Finance and Operations, Enterprise Edition: Extensions von Tabellen.

Erfahren Sie, wie Sie in Microsoft Dynamics 365 for Finance and Operations mit Code-Extensions von Tabellen umgehen.

           

In diesem Blogbeitrag gehe ich auf die Extensions von Tabellen von Microsoft Dynamics 365 for Finance and Operations (kurz: Operations, ehemals AX) ein. In Operations können die Entwicklungsanforderungen besser mit einem Erweiterungsansatz (Extensions) für Standardanwendungsobjekte erreicht werden. Im Gegensatz zum klassischen Overlayering werden bei den Extensions die Base-Modellelemente nicht überlagert. Stattdessen werden sie in separaten Assemblies kompiliert, die uns gestatten, an den Standardobjekten und zugehörige Geschäftslogik mithilfe von Event Handler anzupassen.

Ein grosser Vorteil von Extensions ist, dass der Aufwand bei einem Code-Upgrade minimal ausfällt. 

Beispiel

Anhand eines Beispiels zeige ich Ihnen, wie eine Tabelle erweitert werden kann und wie neue Felder hinzugefügt werden.

1.    Erzeugen Sie ein neues `Unified Operations` Projekt in Visual Studio.

2.   Im Application Explorer finden Sie die Tabellen. Für die Tabelle `SalesLine` erstellen wir eine Erweiterung (Extension).

3.    Nachdem die Tabellenerweiterung dem Projekt hinzugefügt wurde, kann die Tabelle im Hauptfenster erweitert werden.

4.    Erstellen Sie ein neues Feld mit folgenden Eigenschaften:

Eigenschaft        Wert
Name                   BISAvailableQty
Label                    Verfügbare Menge
EDT                      Qty

Dazu wählen Sie `New` und dann den Datentyp `Real`.

5.    Das neue Feld soll wie folgt aussehen:

6.    Kopieren Sie Event-Handler für die Methode `onModifiedField` auf der Tabelle `SalesLine`:

7.    Erzeugen Sie eine neue Klasse `BISSalesLineEventHandler`:

8.    In der neuen Klasse fügen Sie den Event-Handler `onModifiedField` ein. Der Default mässige Code wird eingefügt und wir erweitern den Code wie folgt:

Das Argument `ModifyFieldEventArgs` wird verwendet um das geänderte Feld zu finden. Der DataEventHandler gibt uns die Quelle des Events und der DataEventType ist eine Enumeration für den Typ des unterstützten Events. Wenn die Event Argumente aufgenommen werden, erhalten wir die Feld ID, um unsere Logik basierend auf einem Switch-Case aufzurufen. Der Code soll wie folgt aussehen:

9.    Im Application Explorer finden Sie das Form `SalesTable`, wo wir eine Extension wie bei der Tabelle `SalesLine` erstellen. Erweitern Sie die Data Sources und fügen Sie das neue Feld `BISAvailableQty` zu dem Grid auf dem Register `LineViewLine`(Tab Page) ein.

10.    Die Eigenschaften vom neuen Control sollen wie folgt aussehen:

11.    Speichern Sie das Projekt und erstellen den Build mit dem Parameter
`Synchronize Database on Build`, damit das neue Feld in der SQL-Datenbank erstellt wird.

12.    Sie navigieren zu den Debitorenkonten > Aufträge > Alle Aufträge und erstellen einen neuen Auftrag mit einer Position. Wählen Sie einen Artikel und unsere Extension die `Verfügbare Menge` wird angezeigt.

In diesem Blog-Artikel habe ich Ihnen ein Beispiel über die Tabellen-Extensions in Operations gezeigt. Der Vorteil von Extensions ist, dass sich der Aufwand bei einem Upgrade reduziert.

Ich hoffe, ich konnte Ihnen einen Einblick in die Erweiterbarkeit von Tabellen geben. Viel Spass beim Coding in Operations!