Schlagwörter

, ,

Innerhalb dieses Beitrags möchte ich Ihnen aufzeigen, wie das Excel add-in für den Import von Hauptbuchjournalen dafür verwendet werden kann projekt- und anlagenbezogene Buchungen nach Dynamics AX zu importieren.

Im Gegensatz zu den im vorherigen Beitrag aufgezeigten Importen muss der Import von projekt- und anlagenbezogenen Buchungen sicherstellen, dass neben der LederJournalTrans Tabelle gleichzeitig auch die zugehörigen LederJournalTrans_Asset bzw. LederJournalTrans_Project Tabellen mit den im Excel-Vorlagendokument aufbereiteten Daten gefüllt werden.
EN_36_0010

Um dies zu realisieren bin ich zunächst wie im vorherigen Beitrag aufgezeigt vorgegangen und habe zunächst alle für die Buchung notwendigen Felder aus der LedgerJournalTrans_Project Tabelle in die LedgerJournalTrans Tabelle per drag & drop übernommen.
EN_36_0015
Das gleiche habe ich im Anschluss für die notwendigen Felder der LedgerJournalTrans_Asset Tabelle gemacht.
EN_36_0020
Im Anschluss hieran habe ich die Pflichtfeld- und Bearbeitungs-Feldeigenschaften der neu hinzugefügten Felder der LedgerJournalTrans Tabelle sowie – zur besseren Identifikation der Felder – das zugehörige Label geändert.
EN_36_0025
Schließlich habe ich die neu der LedgerJournalTrans Tabelle hinzugefügten Felder per drag & drop in die AxdLedgerGeneralJournal Query übernommen.
EN_36_0030
Nach Durchführung einer vollständigen CIL Generierung, der Aktualisierung der AIF Services in der AIF Service Form im AOT sowie der Deaktivierung und erneuten Aktivierung des eingehenden LedgerServices Ports, konnten die neu hinzugefügten Felder im Excel-Vorlagendokument identifiziert werden. Der folgende Screenshot zeigt dies exemplarisch auf.
EN_36_0035
Wie im vorherigen Blogbeitrag aufgezeigt habe ich schließlich die neuen Felder in das Excel-Vorlagendokument eingebunden, eine Test-Projektbuchung erfasst und nach Dynamics AX hochgeladen.
EN_36_0040 EN_36_0045
Im Ergebnis schien alles soweit in Ordnung. D.h. nach dem Import in das Hauptbuchjournal konnte ich im Gegenkontenbereich das entsprechend angesprochene Projekt „TM1“ identifizieren.
EN_36_0050
Nachdem ich mir allerdings Details der Projektbuchung im Projektreiter betrachten wollte, musste ich feststellen, dass kein Import der projektbezogenen Felder stattgefunden hat.
EN_36_0060

Nachdem ich mir nochmals die Beziehungen der drei eingangs erwähnten Tabellen angeschaut habe, musste ich feststellen, dass der Excelimport von projekt- und anlagenbezogene Buchungen ohne eine entsprechende Erweiterung nicht funktionieren kann.

Dies liegt darin begründet, dass die LedgerJournalTrans_Asset bzw. LedgerJournalTrans_Project Tabellen über die RecId mit der LedgerJournalTrans Tabelle verbunden sind und die RecId erst nach dem Import der Werte in die LedgerJournalTrans Tabelle feststeht. Mit anderen Worten, nach dem Import der Werte in das Hauptbuchjournal müsste eine Aktualisierungsfunktionalität sicherstellen, dass die entsprechenden Werte in den zugehörigen LedgerJournalTrans_Asset bzw. LedgerJournalTrans_Project Tabellen gefüllt werden.
EN_36_0065

 

Lösungsansatz
Nach einigem hin und her habe ich schließlich meine Kollegin Ewa Watkins um Rat gefragt. Das Ergebnis unserer Diskussionen war die Integration eines sog. event handlers in der insert Methode der LedgerJournalTrans Tabelle. Der angesprochene event handler stellt sicher, dass mit dem Import der Daten aus dem Excel-Vorlagendokument eine entsprechende Aktualisierung der LedgerJournalTrans_Asset/ LedgerJournalTrans_Project Tabellen erfolgt.

In den folgenden Unterkapiteln möchte ich Ihnen die angesprochene Erweiterung rund um den angesprochenen event handler aufzeigen. Bitte beachten Sie in diesem Zusammenhang, dass der nachfolgend bereitgestellte Beispielcode nicht ohne weiteres in einer Liveumgebung implementiert werden sollte, da er lediglich zu Demonstrationszwecken verwendet wurde. Es empfiehlt sich daher die nachfolgend dargestellten Schritte in einer Entwicklungs-/Testumgebung nachzuvollziehen.

Schritt 1: Import des beigefügten xpo-Dokuments
Bitte beachten Sie, dass ich aufgrund von Sicherheitseinschränkungen auf dieser Webseite lediglich ein Dokument mit dem Typ “.docx” beifügen konnte. Um den Beispielcode nutzen zu können ist es daher erforderlich das Dokument zunächst herunterzuladen und anschließend den Dokumententyp von „.docx“ in „.xpo“ zu ändern. SharedProject_EWA_Ludwig
EN_36_0070 EN_36_0075
Nach dem Import können Sie das folgende Projekt identifizieren, in dem Anpassungen in den blau hervorgehobenen Methoden vorgenommen werden müssen.
EN_36_0080

Schritt 2: Mapping der Tabellenfelder
Nach dem Import des xpo Dokuments ist eine Zuordnung der Felder der LedgerJournalTrans Tabelle zu den entsprechenden Feldern der LedgerJournalTrans_Asset und LedgerJournalTrans_Project Tabelle erforderlich. Diese Zuordnung ist beispielhaft in den folgenden beiden Screenshots dargestellt.
EN_36_0085 EN_36_0090

Schritt 3: Angabe der zusätzlich zu importierenden Felder
In der createExtendedJournals Methode sind schließlich die projekt- und anlagenbezogenen Felder anzugeben, die zusätzlich zu importieren sind. Beispiel:
EN_36_0095

Schritt 4: Drag & drop der event handler Methode in die insert Methode der LedgerJournalTrans Tabelle
Beispiel:
EN_36_0100

Schritt 5: Änderung der Eigenschaften des event handlers
Nachdem der event handler der insert Methode der ledgerJournalTrans Tabelle zugeordnet wurde, ist dessen CalledWhen Eigenschaft von „PRE“ auf „POST“ abzuändern, wie dies im nächsten Screenshot dargestellt ist.
EN_36_0105

Schritt 6: Aktualisierung der Dokumentendienste
Der nächste Erweiterungsschritt besteht in der Aktualisierung des LedgerGeneralJournalService Dienstes. Beispiel:
EN_36_0110
EN_36_0115

Ergebnis dieser Aktualisierung ist eine entsprechende Erweiterung der AxLedgerJournalTrans Klasse um projekt- und anlagenbezogene Parameter.
EN_36_0120

Schritt 7: Einrichtung eines neuen Excel-Vorlagendokuments und Import der Daten nach Dynamics AX
Nach Durchführung einer vollständigen CIL Generierung, der Aktualisierung der AIF Services in der AIF Service Form im AOT sowie der Deaktivierung und erneuten Aktivierung des eingehenden LedgerServices Ports, können die projekt- und anlagenbezogenen Zusatzfelder schließlich dem Excel-Vorlagendokument hinzugefügt werden.
Der folgende Screenshot zeigt jeweils eine projekt- und anlagenbezogene Buchung auf, die anschließend nach Dynamics AX importiert wurde.
EN_36_0125

Im entsprechenden Dynamics AX Hauptbuchjournal können nun die importierten Buchungen im Überblicksreiter identifiziert werden. Darüber hinaus ist über die beschriebene Erweiterung über den event handler sichergestellt, dass auch die Daten im Anlagen- und Projektreiter des Journals mit den Daten aus der Excel-Vorlage gefüllt wurden. Dies ist in den nächsten Screenshots beispielhaft dargestellt.
EN_36_0130 EN_36_0135 EN_36_0140

 

Zusammenfassung
Über in diesem und im vorherigen Beitrag beschriebenen Erweiterungen können nahezu alle in der Finanzbuchhaltung und im Controlling erforderlichen Buchungen in Excel aufbereitet und nach Dynamics AX zur Buchung übergeben werden.

Bitte beachten sie in diesem Zusammenhang allerdings die im vorherigen Beitrag erwähnten Fallstricke, die unter allen Umständen beachtet und abgewogen werden sollten.

Einen abschließenden Hinweis, den ich im Zusammenhang mit dem in diesem Beitrag bereitgestellten Beispielcode machen möchte ist, dass dieser Beispielcode so konzipiert wurde, dass projekt- bzw. anlagenbezogenen Buchungstransaktionen auf der Gegenkontoseite der Buchung zu erfassen sind. Wenn sie den bereitgestellten Beispielcode daher in einer Liveumgebung nutzen möchten, sind entsprechende Ergänzungen erforderlich um auch andere Buchungsfälle wie Splitbuchungen bzw. Projekt-/Anlagenbuchungen auf der Kontoseite der Buchung abbilden zu können.

Ungeachtet dieser Einschränkungen hoffe ich, dass ihnen dieser und der vorherige Beitrag einige nützliche Informationen zum Dynamics AX Excel add-in und dessen Einsatz im Finance & Controllingbereich liefern konnten.

Abschließend möchte ich mich an dieser Stelle ganz besonders bei meiner Kollegin Ewa Watkins bedanken ohne deren Unterstützung dieser Beitrag nicht möglich gewesen wäre.