Buchungsschnellerfassungen

Schlagwörter

, , ,

Manuelle Buchungserfassungen können in Dynamics AX sehr schnell zeitaufwendig werden insbesondere dann, wenn viele Finanzdimensionswerte wie Kostenstellen, Kostenträger, usw. zu erfassen sind. Glücklicherweise gibt es verschiedene Standardfunktionen, welche einem die manuelle Erfassung von Buchungsbelegen erleichtern. Nachfolgend sollen einige dieser Buchungsschnellerfassungen dargestellt werden.


Sachkontoalias
Eine erste Möglichkeit der Buchungsschnellerfassung besteht in der Nutzung von sog. Sachkontoalias, die im Hauptbuch angelegt, aber auch in anderen Modulen wie z.B. dem Kreditoren- oder Projektmodul genutzt werden können. Die Einrichtung von Sachkontoalias gestaltet sich recht einfach, da für eine bestimmte Buchungskombination (bestehend aus Sachkonto und Finanzdimensionen) ein eindeutiger Schlüssel angelegt wird.
DE_10_Teil1_001
Anstatt mühsam Sachkonten und Finanzdimensionen manuell erfassen zu müssen, kann im Buchungsjournal einfach der eingerichtete Sachkontoalias-Schlüssel eingegeben werden. Dynamics AX ersetzt diesen Schlüssel bei der Betätigung der Tab-Taste durch die entsprechende Buchungskombination, so dass die Buchung nur noch geprüft und ggf. vervollständigt werden muss. Im folgenden Beispiel wird die Finanzdimension „Department“ ergänzt, weil dieses nicht über den Buchungsschlüssel vordefiniert wurde.
DE_10_Teil1_002 DE_10_Teil1_003

 

Standardkontoeinstellungen
Eine zweite Möglichkeit der Buchungsschnellerfassung besteht in der Nutzung von Standardkontoeinstellungen im Kreditorenmodul. Diese Einstellungen können zum einen auf Ebene der Kreditorengruppe als auch auf Ebene des einzelnen Kreditors vorgenommen werden. Beispiel:
DE_10_Teil2_001 DE_10_Teil2_002a
Wird das entsprechende Kreditorenkonto ausgewählt, so schlägt Dynamics AX automatisch das entsprechende Sachkonto zur Buchung vor. Siehe hierzu beispielhaft den folgenden Screenshot.
DE_10_Teil2_003

 

Excel add-in
Eine dritte Möglichkeit manuelle Buchungen schnell in AX erfassen und buchen zu können ist deren Aufbereitung in einem Excel-Vorlagendokument sowie ein entsprechender Upload dieser Buchungen nach Dynamics AX. Einzelheiten zu dieser Funktionalität wurden bereits in früheren Beiträgen aufgezeigt. Von daher wird an dieser Stelle auf weitergehende Ausführungen verzichtet. Zu Einzelheiten, siehe dort.

 

Buchungsvorlagen
Die letzte im Rahmen dieses Beitrags dargestellte Möglichkeit für die Buchungsschnellerfassung besteht in der Nutzung von Buchungsvorlagen. Buchungsvorlagen können bspw. in Hauptbuch- oder Kreditorenrechnungsjournalen angelegt und für die spätere Widerverwendung gespeichert werden. Der folgende Screenshot stellt dies beispielhaft dar.
DE_10_Teil4_001
Nachdem die Buchungsvorlagen angelegt wurden, können diese zu einem späteren Zeitpunkt über eine entsprechende Selektion abgerufen und wiederverwendet werden. Beispiel:
DE_10_Teil4_003 DE_10_Teil4_004 DE_10_Teil4_006

 

Zusammenfassend kann man somit an dieser Stelle festhalten, dass Dynamics AX verschiedene Möglichkeiten zur Schnellerfassung von Buchungsbelegen bietet. Alle aufgezeigten Möglichkeiten erlauben vor der Durchführung der Buchung eine entsprechende Überarbeitung und ggf. notwendige Änderung der vorgeschlagenen Buchungen und ermöglichen somit einen flexiblen Einsatz.

Excel add-in Erweiterungen (2)

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.

Excel add-in Erweiterungen (1)

Schlagwörter

, ,

Wie man über das Dynamics AX Excel add-in Hauptbuchtransaktionen aus Excel heraus importieren kann ist an vielen Stellen (TechNet, AX-Blogs, etc.) bereits ausführlich dokumentiert. Siehe z.B. die folgende Webseite.

Versucht man diese Standardfunktionalität in einer Live-Umgebung anzuwenden, so wird man allerdings sehr schnell auf verschiedene Problemstellungen stoßen, welche den Einsatz des Excel add-in’s für den Import von Buchungsbelegen ins Hauptbuch erheblich einschränken. An dieser Stelle können exemplarisch der Import von debitorenbezogenen Buchungsbelegen, der Import von Anlagen- und Projektbuchungen sowie der Import von Steuerinformationen genannt werden.

Innerhalb dieses und des folgenden Beitrags möchte ich Ihnen aufzeigen, wie man die Excel add-in Standardfunktionalität so erweitern kann, dass man hierüber nahezu alle Arten von Buchungen in Dynamics AX Hauptbuchjournale importieren kann. Bevor allerdings auf diese Erweiterungen im Detail eingegangen wird, soll die Einrichtung und die Nutzung der Basis Excel add-in Funktion für den Import von Hauptkontobuchungen aufgezeigt werden.

Hinweis: Bitte beachten Sie, dass alle nachfolgenden Abbildungen/Screenshots in Englisch dargestellt werden, um Probleme aus anderslautenden deutschen Übersetzungen zu vermeiden.

 

Einrichtung der Standard Excel add-in Funktion für den Import von Sachkontobuchungen

Schritt 1: Deployment der LedgerServices Gruppe im AOT
Um das Excel add-in für den Import von Hauptbuchbelegen überhaupt nutzen zu können, ist in einem ersten Schritt das Deployment der entsprechenden Servicegruppe erforderlich.
EN_35_0010

Schritt 2: Aktivierung des eingehenden Ports
Nach der grundlegenden Bereitstellung der LedgerServices ist im Systemverwaltungsmodul unter den eingehenden Ports sicherzustellen, dass der entsprechende Dienst aktiviert ist.
EN_35_0015 EN_35_0020

Schritt 3: Einrichtung Dokumentendatenquelle
Im dritten Schritt ist dafür Sorge zu tragen, dass im Organisationsverwaltungsmodul eine entsprechende Dokumentendatenquelle bereitgestellt wird, wie dies in den folgenden Screenshots beispielhaft dargestellt ist.
EN_35_0025
EN_35_0030

Schritt 4: Einrichtung Excel-Vorlagedokument
Schließlich kann in Excel über die Auswahl „Add Data“ eine Verbindung zu der eingerichteten Dokumentendatenquelle hergestellt werden. Beispiel:
EN_35_0035 EN_35_0040

Ist diese Verbindung hergestellt, so können zum einen die Journalkopfdaten per drag & drop aus dem am linken Bildrand eingeblendeten Tabellenbereich eingerichtet werden.
EN_35_0045
In gleicher Weise können anschließend die einzelnen Journalbuchungszeilenfelder eingerichtet werden. Der nachfolgende Screenshot zeigt dies beispielhaft zusammen mit der Verknüpfung der Journalkopf- und Journalzeilenpositionen auf.
EN_35_0050

Hinweis: Anstatt ein eigenes Excel-Vorlagendokument einzurichten, kann stattdessen auch das von Microsoft bereitgestellte Vorlagendokument genutzt werden. In einer Dynamics AX „Contoso“ Demoumgebung kann man dieses Dokument unter den Hauptbuchvorlagen finden. Wenn Sie das Microsoft Vorlagendokument in einer Liveumgebung nutzen möchten, dann fragen Sie bitte ihren Systemadministrator, der ihnen dieses Vorlagendokument bereitstellen kann.
EN_35_0055
Bitte beachten Sie dass im Microsoft Vorlagendokument die Journalkopfdaten, die Journalpositionen und Notizen in eigenen Tabellenblätter dargestellt werden. Dies ändert an der generellen Funktionsweise allerdings nichts. Beispiel:
EN_35_0060

 

Problemstellungen der Standard Excel add-in Funktion für den Import von Sachkontobuchungen
Sobald Sie das Excel-Vorlagendokument eingerichtet haben, können Sie dieses mit Buchungsdaten befüllen und diese nach Dynamics AX importieren. In meinem Beispiel schlug der Versuch die Daten nach Dynamics AX zu importieren fehl, weil das Excel add-in standardmäßig nicht alle Buchungsarten unterstützt; in meinem Fall die kundenbezogene Buchung in der dritten Zeile des Vorlagendokuments.
EN_35_0065
Der nachfolgende Screenshot zeigt nochmals die zugehörige Status-(Fehler-) Meldung auf und verdeutlicht, dass die Standard Excel add-in Funktion lediglich für den Import von Sachkonto-, Bank- und Kreditorenbuchungen konzipiert wurde.
EN_35_0070

 

Erweiterung der Standard Excel add-in Funktion
Um das Problem der für den Upload zugelassenen Buchungsarten zu umgehen, habe ich die folgenden Erweiterungen in den validateAccountType und validateOffsetAccountType Methoden der LedgerJournalTransType Klasse vorgenommen.
EN_35_0075
Neben dem aufgezeigten Problem der zulässigen Buchungsarten besteht ein weiteres Problem der standardmäßig bereitgestellten Excel add-in Funktion darin, dass nicht alle für Belegbuchungen erforderlichen Felder bereitgestellt werden. So sind im Standard Excel-Vorlagendokument bspw. keine Felder für den Import von Steuerfeldern, Rechnungsinformationen, usw. vorhanden.

Glücklicherweise gibt es auch für diese Problemstellung eine Lösung, die darin besteht alle zusätzlich notwendigen Felder von der LedgerJournalTrans Tabelle in die AxdLedgerGeneralJournal Query zu kopieren, wie dies im nächsten Screenshot beispielhaft dargestellt ist.
EN_35_0080
Nachdem die neuen Felder wie aufgezeigt der Query hinzugefügt wurden, sind die folgenden Schritte erforderlich, um den Import dieser zusätzlich erforderlichen Felder in Dynamics AX Hauptbuchjournale zu gewährleisten:

  • Volle CIL Generierung
  • Aktualisierung der AIF Services in der AIF Service Form, die über den AOT aufgerufen werden kann und
  • Deaktivierung und erneute Aktivierung des eingehenden LedgerServices Ports

Nachdem all diese Schritte durchlaufen wurden stehen die neu hinzugefügten Felder im Auswahlbereich des Excel-Vorlagendokuments zur Verfügung und können eingefügt werden. Der folgende Screenshot stellt dies nochmals dar.
EN_35_0090
Bitte beachten Sie dass an dieser Stelle das Excel-Vorlagedokument vollständig neu aufgebaut werden muss. Eine Erweiterung eines zuvor genutzten Vorlagendokuments ist regelmäßig nicht möglich.

Nachdem die neu hinzugefügten Felder im Excel-Vorlagendokument eingefügt und mit Daten gefüllt wurden kann der Inhalt dieser Felder nach dem Upload im entsprechenden Dynamics AX Journal identifiziert werden. In den beiden folgenden Screenshots sind diese zusätzlich bereitgestellten und importierten Felder gelb hervorgehoben.
EN_35_0095
EN_35_0100

 

Weitere Tipps & Tricks
Vor dem Abschluss dieses Beitrags möchte ich an dieser Stelle noch einige wichtige Tipps im Zusammenhang mit Nutzung der Excel add-in Importfunktion erwähnen.

Tipp 1:
Um zu verhindern, dass nach dem Upload der Buchungsdaten das Excel-Vorlagendokument mit allen bislang durchgeführten Buchungen aktualisiert wird, was viel Zeit in Anspruch nehmen kann, empfiehlt es sich einen Filter wie im folgenden Screenshot dargestellt einzurichten.
EN_35_0105

Tipp 2:
Buchhalter bereiten ihre Buchungsdaten häufig in eigenen separaten Excel-Dokumenten auf, die sie anschließend in das Excel-Vorlagendokument importieren. Bei diesem Import ist mir aufgefallen, dass häufig die erste Zeile nicht nach Dynamics AX importiert wird. Eine Lösung dieses Problems besteht darin den Import in die zweite Buchungsjournalzeile des Excel-Vorlagendokuments vorzunehmen.
EN_35_0111

Tipp 3:
Nach dem Import der Buchungen in Dynamics AX Hauptbuchjournale kann es vorkommen, dass Sie eine Fehlermeldung erhalten die besagt dass bestimmte Buchungsbelege nicht ausgeglichen sind. Beispiel:
EN_35_0115
Anstatt an dieser Stelle das komplette Buchungsjournal zu löschen und zu versuchen den Fehler im Excel-Vorlagendokument zu korrigieren empfiehlt es sich von der „Buchen und Übertragen“ Funktion Gebrauch zu machen. Diese Buchungsfunktion führt dazu, dass die als nicht ausgeglichen identifizierten Belege in ein neues Journal übertragen werden. Hierbei werden auch die Dynamics AX Rundungsregeln angewandt, so dass sich die scheinbar fehlerhaft nicht ausgeglichenen Buchungen über dieses neue Journal i.d.R. problemlos buchen lassen.
EN_35_0120

 

Zusammenfassung
Die aufgezeigten Erweiterungen an der Excel add-in Funktion für Buchungsimporte ins Hauptbuch erlauben Ihnen nahezu alle Arten von Buchungen in Excel aufzubereiten, um diese nach Dynamics AX zu übergeben und dort zu buchen. In diesem Zusammenhang sind allerdings die folgenden Fallstricke zu beachten:

  • Hauptbuchjournale beinhalten standardmäßig keine Funktion zur Prüfung von Rechnungsnummern, so dass man über den Import leicht Rechnungsnummern doppelt verwenden und buchen kann.
  • Auch wenn man über Hauptbuchjournale debitorische Rechnungsbelege erfassen kann, fehlt es an einer entsprechenden steuerlich anerkannten Rechnungsbelegdruckfunktion.
  • Änderungen in den Kontostrukturen erfordern regelmäßig eine Neueinrichtung der Excel-Vorlagendokumente
  • Versuchen Sie bitte keine Massendaten über das Excel add-in nach Dynamics AX zu importieren, da solche Imports häufig sehr viel Zeit in Anspruch nehmen und auch scheitern können. Wenn regelmäßig mehr als 1000 Buchungszeilen zu importieren sind empfiehlt es sich aus Sicht des Verfassers über andere Importmethoden wie z.B. das DataMigrationFramework nachzudenken.
  • Ein letzter Fallstrick besteht darin, dass trotz der aufgezeigten Erweiterungen keine Anlagen- und Projektbuchungen nach Dynamics AX importiert werden können. Wie sich dieser Fallstrick lösen lässt zeige ich Ihnen im nächsten Beitrag auf.