DE/Import Zahlungen
⇐ DE/Inhaltsverzeichnis{{#if: | | [[{{{2}}}]] }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | DE/Import Zahlungen{{#if: DE/Inhaltsverzeichnis| | DE/Inhaltsverzeichnis }} ⇒
Ein Erfahrungsbericht zum Thema Importieren von Debitoren-Zahlungen aus DATEV.
Ausgangslage
Die GartenWelt GmbH hat viele, längst überfällige offene Posten, Beispiel folgender Geschäftspartner:
Grund dafür sind nicht erfaßte Zahlungen in ADempiere, weil sie nur per "DATEV Kanzlei-Rechnungswesen pro" erfaßt werden. Daduch können die "echten" Offenen Posten nicht identifiziert werden.
Die Zahlungen liegen im DATEV-Programm vor und können von dort als excel oder csv-file exportiert werden. Im nachfolgendem Bild sieht man die DATEV-Zahlungseingänge und darüber die nicht zugeordneten Rechnungen in ADempiere:
Naiver Lösungsansatz: die Zahlungen werden manuell erfaßt und den Rechnungen zugeordnet (Fenster "Zahlungs-Zuordnung" ), ist wegen der Datenmenge nicht praktikabel.
Bessere Lösung: #Import_Zahlungen, ManPageW_ImportPayment
Glücklicherweise referenzieren die DATEV-Belegnummern der Zahlungseingänge die Rechnungsbelegnummern.
Import Zahlungen
Der Import besteht aus vier Schritten:
- bereitstellen der Import-Datei
- passendes Import-Format definieren, bei wiederholtem Import kann dasselbe Format genutzt werden
- laden der Import-Datei
- Zahlungen importieren
Mit diesem Verfahren werden Zahlungen, aber keine "Verrechnung Zahlungen" (Gutschriften) importiert.
Import-Datei
- Beschreibung für csv-Format 'Kontobuchungen' bei DATEV (Seite 5) oder hier.
- Zur Anschaung verwende ich nicht die csv-Datei, sondern excel mit ähnlichem Inhalt
Bevor das Excel-sheet als #Import-Datei gespeichert wird, können diverse Analysen, Selektionen, Formatierungen und Aufbereitungen erfolgen, da eine csv-#Import-Datei nur schwer zu bearbeiten ist.
Das Ladeprogramm kennt drei verschiedene Typen von Importdateien. Der best geeignete Typ ist Tabulator-separiert. Excel kann diesen Dateityp erzeugen. Excel nennt diesen Dateityp text(Tabstopp-getrennt).
Zum Aufbereiten gehört das Eliminieren sämtlicher Zeilen, die keine "Zahlungseingänge" beinhalten. Also Überschriftzeilen, Zwischensummen- und Leerzeilen, usw. müssen rausgefiltert werden. Das ADempiere-Ladeprogramm ist dafür nicht ausgelegt und versagt den Dienst.
Auch die Spaltenüberschriften müssen gelöscht werden. Aber Halt!
Vor dem Löschen der Überschriften sollten die Format-Felder definiert werden. Für die Mapping-Dokumentation sind die Überschriften extrem hilfreich. Außerdem sollte man sich klar machen, daß nicht alle Excel-Spalten geladen werden können oder müssen. Die folgende Abbildung zeigt das Ausgangsblatt bereits überarbeitet. Ich habe die Spalten beige unterlegt, die ins ADempiere geladen werden. Für die Grauen gibt es keine entsprechenden ADempiere-Felder, daher können sie nicht geladen werden.
Sehr nützlich ist eine weitere Überschriftzeile, die die Spaltennummern anzeigt, also 1 für A, 2 für B, usw. Ausgeblendete Zeilen werden mitberücksichtigt, denn beim abspeichern als #Import-Datei werden sie sichtbar.
Die Spaltennummer muß beim Mapping unter Start No. angegeben werden. Die Zeilenüberschrift kann unter Name eingetragen werden.
Formatierung
Das Ladeprogramm erwartet für bestimmte Daten-Typen spezielle Formatierungen:
- Spalten mit Beträgen sind in Excel als Zahl mit zwei Dezimalstellen 22,90 zu formatieren (nicht 22.90 und nicht Excel Standard).
- Datumsfelder müssen einheitlich im Format dd.MM.yyyy formatiert werden.
Import-Format definieren
Das Import-Format muss zur Import-Datei passen.
- da es in dem Input nur ein Datum gibt wird es als Vorgang- und Buchungsdatum verwendet
- Gleiches gilt für die Belegnr, es wird als Rechnungs- und ZahlungsNr verwendet. Entscheidend ist die korrekte Rechnungsnr, damit die Zuordnung zu Rechnung automatisch gemacht werden kann.
Zahlungsart
Als Zahlungsart (TenderType) wird "X" (Bar) angenommen, da bei dieser Zahlungsart keine Zusatzinformation notwendig ist.
Besser ist es, die Zahlungsarten anhand des Gegenkontos zu ermitteln. Dies kann beispielsweise in einer #ETL-Transformation geschehen.
ETL-Transformation
Die DATEV ASCII-export csv-Datei kann nicht direkt als Import-Datei dienen. Die Import-Datei kann aber durch eine ETL:Transformation aus der DATEV csv-Datei gewonnen werden. Die folgende Abbildung zeigt die Transformation. Mit dem grünen Dreieck-Icon links oben wird die Transformation gestartet.
Links die DATEV-Datei wird in mehreren Schritten in die Import-Datei überführt.
- die verschiedenen Zahlungsarten werden ermittelt
- nicht zahlungsrelevate Einträge (dropped records) werden rausselektiert
- der Umsatzbetrag wird ermittelt
- die Import-Datei wird im geeigneten Format (Tabstopp-getrennt) erstellt
Belegart
Im Buchungstext muß die exakte Belegart-Bezeichnung, also "Zahlungseingang". Rechnungen, die anderen Text aufweisen, werden nicht als Zahlung identifiziert:
08.09.2011 1200 Zahlungseingang 08.09.2011 3 1200 Zahlungseingang H 9139 08.09.2011 3 8736 Zahlungseingang H 9139 09.09.2011 1200 Zahlungseingang
Damit das nicht geschieht, wird statt Inhalt von Buchungstext die Konstante "Zahlungseingang" geladen.
laden der Import-Datei
Vor dem Laden sollte der Staging-Bereich leer sein.
Leeren Staging-Bereich
Mit dem Import-Format Zahlungseingang wird die tab-separated Import-Datei in den Staging-Bereich geladen.
Importieren
Beim Importieren der Zahlungen werden zwei Parameter benötigt:
- Bankkonto, siehe DE/Bank#Tab:_Konto
- Belegverarbeitung, diese sollte auf Fertigstellen gesetzt sein, damit die Zahlungen zur Rechnungen zugeordnet werden
Gutschriften
Die Belegarten Ausgangsrechnungen und Gutschriften werden beide im Fenster Rechnungen verwaltet.
Eine Ausgangsrechnung wird einer oder mehreren Zahlungen (Belegart "Zahlungseingang") zugeordnet und ist "bezahlt" wenn der Saldo 0,00 ist.
Gutschriften sind Rechnungen mit umgekehrten Vorzeichen. Eine Gutschrift ist also eine Rechnung über -XXX,XX€. Auch Gutschriften werden in ADempiere als "bezahlt" markiert. Zu einer Gutschrift gibt es also eine oder mehrere Belege von Typ "Zahlungseingang" über einen negativen Betrag. Auf den Auszügen der Buchhaltung ist der Buchungstext "Verrechnung Zahlung" und die Beträge sind Soll-Beträge.
Prüfen
Vertrauen ist gut, ...
Nach dem #Import sollte man prüfen
- ob die offenen Posten geschlossen sind, die Rechnungen sollten jetzt "bezahlt" sein.
- wieviele tatsächliche Offene Rechnungen gibt es noch? Denn das war ja Sinn und Zweck der Übung.
Probleme
welche Probleme können beim Import auftreten? und wie sind die Lösungen.
Periode geschlossen
Die Belegverarbeitung kann nicht fertiggestellt werden, wenn die bearbeitete Periode zu weit zurück liegt. Die Einstellungen in Buchführungsschema schliesst oft nach 60 Tagen die Buchungsperiode automatisch.
Lösung
automatische Periodenkontrolle ausschalten
manuell die Periode öffnen
Unter
>Finanzbuchhaltung>Kalender>Jahr>Periode
kann eine Periode für die nachträgliche Belegverarbeitung geöffnet werden.
Jetzt läßt sich die Zahlung fertigstellen und der offene Posten damit geschlossen.
- Nach dem Import sollte man die automatische Periodenkontrolle wieder einschalten
ERR=No BPartner
Die Import-Fehlermeldung ERR=No BPartner, kann viele Ursachen haben. Die Geschäftspartnernummer fehlt in der #Import-Datei. Daher wird die BPartner aus der Rechnung bezogen. Beim Einspielen von alten Zahlungen kann es sein, dass die zugehörige Rechnung in ADempiere fehlt. Somit fehlt auch der BPartner.
Es ist nicht notwendig, fehlende Rechnungen zu ergänzen, da sie i.A. nicht zu offenen Posten führen.
Rechnung Gezahlt
der Import stockt bei Zahlung 2019. Das manuelle fertigstellen der Zahlung liefert "Fehler Validierung Rechnung Gezahlt".
Die Recherche ergibt, daß die Zahlung zwei mal auftritt:
30.06.2011 1200 Zahlungseingang 2019 96,89 15.07.2011 1200 Zahlungseingang 2019 96,89
Somit ist die Meldung bei der Validierung der zweiten Zahlung korrekt. Ungünstig nur, daß der Importprozess dadurch gestoppt wird. Der Status der zweiten Zahlung bleibt bei "in Verarbeitung". Die Zahlung kann nach Prüfung storniert werden.