DATEV-Anbindung mit manuellem Datenexport (KRExport)
Beschreibt die Extraktion und Weiterverarbeitung von Daten aus DATEV über die DATEV-Schnittstellentechnologie “KREXPORT”. Diese Schnittstellentechnologie ist der DATEV-Standard und für alle Anwender ohne DATEV-Zusatzkosten verfügbar.
Der manuelle Export beschreibt das Szenario, falls Sie DATEV auf einem Server von Dritten (z.B. Ihrem Steuerberater) nutzen und dort OCT nicht installieren dürfen/können.
1. Voraussetzungen
1.1. Konnektorverwaltung
OCT-Instanzen besitzen seit der Generation v5.9 eine neue Konnektorverwaltung. Diese ist automatisch nach einem/r Update/Installation aktiviert:
Um die hier im Artikel beschriebene DATEV-Anbindung umsetzen zu können, müssen sie die neue Konnektorverwaltung deaktivieren.
Gehen Sie dafür in den Bereich “Administration” (ehemals “Datenbankeinstellungen”) und deaktivieren Sie die neue Konnektorverwaltung in den “Experimentellen Funktionen” :
Deaktivieren sie den Toggle-Button und speichern Sie die Änderungen ab. Nun sollten Sie den Reiter “Konnektoren” in der Modulverwaltung wieder sehen können (alte Konnektorverwaltung):
1.2. Technische Voraussetzungen
Zugriff auf das Programm DATEV-Kanzleirechnungswesen als Anwender
1.2.1 manuelle Datenablage
Kunde die Dateien in einer bestimmten Ordnerstruktur im Staging Ordner (Bsp: C:\ProgramData\Saxess Software\CPCE\cpce\cpce\Staging\1) ablegen
die Struktur kann der Anleitung https://help.saxess-software.de/sx-cpce-portal/Working-version/datev-upload entnommen werden
falls der Kunde die Dateien nur in einem “Zwischenordner” ablegen kann, kann optional ein PowerShell Skript zum kopieren der Dateien genutzt werden
Optional wäre zu klären ob das Unternehmen DATEV-KOST nutzt.
DATEV-KOST ist ein Zusatzmodul zur Finanzbuchhaltung, welches Umlagen und andere Prozesse durchführt.
für die Ablage der KOST.mdb Dateien muss pro Wirtschaftsjahr ein Ordner im jeweiligen Mandanten abgelegt werden
1.2.2 automatische Ausführung
Kunde benötigt einen administrativen Zugriff auf einen Server, auf welchem ein DATEV-Client installiert ist.
Auf dem DATEV-Server müssen die notwendigen Systemvoraussetzungen für die Installation von OCT erfüllt sein.
Optional wäre zu klären ob das Unternehmen DATEV-KOST nutzt.
DATEV-KOST ist ein Zusatzmodul zur Finanzbuchhaltung, welches Umlagen und andere Prozesse durchführt.
1.3. Benötigtes Wissen
Für die Einrichtung muss die Thematik “Strukturbruch”, bezogen auf Mandanten in DATEV, bekannt sein.
Beim ersten Mal können nur die Jahre mit der aktuellen Struktur übernommen werden.
Mehr Informationen, Erklärungen und Details zu dem Thema sind zu finden unter “5. Expertenbereich”.
2. Anleitung der manuellen Datenextraktion
Richten Sie OCT in einer geeigneten Umgebung ein.
Kopieren Sie die OCT-Exportformate auf den DATEV-Server und spielen Sie diese im DATEV ein.
Die OCT Exportformate für DATEV können hier heruntergeladen werden: Download
2.1. Download und Aktivierung von Modulen, Planungslösungen und Konnektoren
2.1.1. Aktivierung von Modulen
Laden sie die folgenden Module herunter und aktivieren sie diese:
DATEV Staging für Finance
Finance
Das Modul Finance legt automatisch eine Planungslösung zur Validierung des Moduls an.
Die Validierungen & Auswertungen sind in einer Produktlinie als Tabs zusammengefasst:
2.1.2. Aktivierung von Konnektoren
Laden sie folgende Konnektoren herunter und aktivieren sie diese:
(a) Quellsystem: “DATEV”, Quellsystemtyp: “KREXP”, Konnektor: “FIN_DATEV (DATEV für Modul FIN_DATEV) …”
(b) Quellsystem: “DATEV”, Quellsystemtyp: “MSSQL”, Konnektor: “FIN (DATEV - Modul FIN) …”
2.2. Einrichtung der Datenquellen
Im Hauptmenu der Datenflüsse (links) den Reiter Datenquellen öffnen.
Über das kleine “+” oben links fügen sie eine neue Datenquelle hinzu - es öffnet sich ein Dropdownmenü mit allen verfügbaren Quellsystemen:
Das Ziel sind zwei Datenquellen - die Verbindung zu DATEV und die Verbindung zur OCT-Datenbank:
Die OCT-Datenbank ist seit der Generation v5.9 immer automatisch als Datenquelle mit der ID = 0 angebunden. Es benötigt kein manuelles Anlegen dieser.
2.2.1. Einrichtung der Verbindung von DATEV zur Datenbank
Wählen sie als Quellsystem der neuen Datenquelle “DATEV” aus und starten sie die Einrichtung.
Dialog 1: “Verbindung konfigurieren”
Der “Pfad zu KrExport.exe” sollte automatisch vorgegeben sein. Typischerweise liegt der Pfad im DATEV-Unterordner “RWAPPLIC”.
Über den “Datenpfad” kann man den Pfad des Überordners eintragen, in welchem die verschiedenen FM-Ordner & damit die Wirtschaftsjahr-Ordner/KostSt.MDB-Dateien enthalten sind.
Wenn keine Microsoft Access-Datenbanken und damit keine Kostenrechnungen angebunden werden sollen, kann das Eingabefeld “Datenpfad” leer bleiben. Es befüllt später lediglich die Eingabefelder der KOST-Pfade vor.
Dialog 2: “Mandantenliste abrufen”
Wenn die Daten manuell zur Verfügung gestellt werden (z.B. Upload von extern), muss die Option “Skript manuell ausführen” aktiviert werden:
Mit der Aktivierung der Checkbox öffnet sich unterhalb eine Infobox mit Anweisungsschritten.
Führen Sie diese Schritte nacheinander aus auf dem DATEV-Server aus.
Transferieren sie die “Mandantenliste.csv” von ihrem DATEV-Server zurück auf den OCT-Server:
C:\ProgramData\Saxess Software\<OCT-Dienstname>\<Datenbankserver-ID>\<Datenbankname>\Staging\<Datenquellen-ID>
Dialog 3: “Mandantendetails ermitteln”
Für diesen Teil brauchen Sie die manuell transferierten Dateien vom DATEV-Server!
Filterung der Mandantenliste…
…zuerst über das Datum auf die benötigten Geschäftsjahre - bei Strukturbrüchen muss hier auf das erste Wirtschaftsjahr der aktuellen Struktur gefiltert werden.
…und dann auf die gewünschten Mandanten.
Auslösen eines Abrufs von Detaildaten mittels des Buttons “Mandantendetails abrufen”.
Dabei werden pro Mandant die Details aller Wirtschaftsjahre ermittelt:
Sind alle Mandanten im “Bearbeitungsstatus” = grün, dann kann im nächsten Fenster fortgefahren werden - Sie klicken unten auf “Weiter”.
Dialog 4: “Übersicht”
Über “Mandanten aus Quelle auswählen” können nun die gewünschten Mandanten vorselektiert werden.
Ferner erfolgt die Auswahl der technischen Mandanten:
Die MandantenID wird zusammengesetzt aus Beraternummer_Mandantennummer_Geschäftsjahresbeginn_Kontenrahmen_Sachkontenlänge. Bei Strukturbrüchen durch Änderungen beim Geschäftsjahresbeginn, Kontenrahmen oder der Sachkontenlänge werden die Daten automatisch in einzelne technische Mandanten geladen. Die Vorgehensweise bei einer Zusammenführung von zwei technischen Mandanten muss je nach Anforderung individuell gelöst werden.
Optional: Angabe es Pfades zum KOST Verzeichnis.
Hier wird die Eingabe aus dem Feld “Datenpfad”, des ersten Dialogs der Einrichtung, automatisch in alle Eingabefelder “Kost-Pfad” voreingetragen.
2.3. Einrichtung einer Pipeline
Der Ablauf von DATEV kann allgemein in drei Phasen beschrieben werden:
Export der Daten aus DATEV und speichern als “.csv”- oder ”.txt”-Datei auf der Festplatte. (3.3.3. Step: DATEV Export)
Einlesen der Dateien von der Festplatte und Übertragung in die integration-Tabellen. (3.3.5. Step: DATEV Dateiverarbeitung)
Übertragung der Daten von den integration-Tabellen in die result-Tabellen - das ist vergleichbar bei allen anderen Datenbereitstellung und damit kein für DATEV spezifischer Prozess. (3.3.7. Step: Datenbereitstellung )
Das Ziel ist eine Pipeline mit drei oder vier Steps:
(der erste Step ist optional)
Legen Sie nun die 3-4x Pipelines nacheinander mit den folgenden Spezifikationen an:
(a) Optional: Power Shell Skript um Dateien von Ablageort (irgendwo auf Server) in Saxess Staging Ordner zu kopieren
Name: Dateien von [ORT] kopieren
(b) 3.3.5. Step: DATEV Dateiverarbeitung anlegen und folgende Inhalte auswählen:
Name: DATEV Stagingtabellen füllen
Datenquelle - des Quellsystem(-typs) “DATEV (KREXP)”
Modul: “FIN_DATEV”
Mandanten
den gewünschten Zeitraum
Es erfolgt das Einlesen der Dateien von der Festplatte und eine Übertragung der Daten in die integration-Tabellen der OCT-Datenbank. Der Tabellenpräfix dieser Tabellen ist “integration.tDATEV….”.
Wenn eine Kostenrechnung vorliegt, dann müssen Sie nun die “KOST.mdb” abfragen. Diese Funktion sucht nach den zuvor kopierten Ordnern in unseren OCT-Pfaden und verarbeitet die Dateien - ein Transfer in unsere Tabellen.
(c) 3.3.1. Step: SQL- und Pentaho-Konnektor (SQL) anlegen und folgende Inhalte auswählen:
Name: DATEV integration Tabellen füllen
Datenquelle - des Quellsystem(-typs) “DATEV on….”. Das entspricht der Datenquelle “DATEV (MSSQL)” und enthält Server- und Datenbanknamen.
Modul: “FIN”
den gewünschten Zeitraum
Es erfolgt ein Transfer der Daten von den integrations-Tabellen "tDATEV" in unsere Verarbeitungstabellen mit dem Präfix “integration.tFIN”.
Name: DATEV Datenbereitstellung
Datenquelle - des Quellsystem(-typs) “DATEV on….”. Das entspricht der Datenquelle “DATEV (MSSQL)” und enthält Server- und Datenbanknamen.
Modul FIN
die gewünschten Mandanten
Der Konnektor holt in diesem Step die Daten aus den "integration.tFIN"-Tabellen ab und stellt diese im "result"-Schema bereit.
2.4 Einrichten des Mandantenmappings
Aus technischen Gründen erscheinen die Datev Mandanten mit einer langen technischen Nummer, diese muss zurück gemappt werden auf die Datev Beraternummer_Mandantennummer. Dafür werden diese Nummer in der Tabelle global.tCompanies eingetragen bei der Datenquelle 0. Ggf. werden hierbei auch mehrere technische Mandanten zusammengeführt. Das Ergebnis des Mappings sieht man nach einem neuen Prozessdurchlauf mit Datenbereitstellung.
Den Prozess zwei mal laufen lassen, dann müssten auch die alten (langen) Mandantennummern rausgeflogen sein (der agent prüft die Anzahl und entscheidet zwischen truncate und delete). Falls nicht einfach alle result Tabellen per Truncate einmal löschen.
Details dazu unter: Mandantenmapping
2.5. Nacharbeiten
Alle Exportbefehle zu einem Gesamtskript zusammenfügen.
Jede Aktualisierung des Datenbestandes erfolgt dann durch eine einzige Skriptausführung.
3. Expertenwissen - Umgang mit Strukturbrüchen
Als Strukturbrüche bezeichnen wir alle Änderungen an einem DATEV Mandanten, welche ein Änderung der Verarbeitungslogik erfordern. Da in DATEV nahezu alle Eigenschaften eines Mandanten von Wirtschaftsjahr zu Wirtschaftsjahr geändert werden können, kann es mit jedem Wirtschaftsjahreswechsel zu einem Strukturbruch kommen - diese sind:
ein Wechsel des Kontorahmens (in Jahr 1 wird SKR03 genutzt, in Jahr 2 wird SKR04 genutzt) - die gleiche Kontonummer hat somit in Jahr 1 eine andere Bedeutung als in Jahr 2
ein Wechsel der Kontonummernlänge (von 4 stelligen Kontonummern auf 5 stellig Kontonummern) - somit ist das Konto 1200 aus Jahr 1 im Jahr 2 als Konto 12000 zu finden. Die Konten differenzieren sich meist auch in 12001, 12002, 12003 etc.
eine Anderung des Beginn des Geschäftsjahres (Umstellung von Geschäftsjahr = Kalenderjahr auf verschobenes Geschäftsjahr, somit mit einem eingeschobenem Rumpfgeschäftsjahr)
Die DATEV Anbindung über KREXPORT erstellt automatisch pro Strukturbruch einen neuen technischen Mandanten. Man kann diese anhand der Mandantennummer leicht unterscheiden, die Mandantennummer setzt sich zusammen aus:
[Beraternummer]_[Mandantennummer]_[TagMonatWJBeginn]_[Kontorahmen]_[Kontonummernlänge]
800_2222_0101_03_4 bedeutet somit Berater 800, Mandant 2222, WJBeginn 01.Januar, Kontorahmen SKR03, 4stellige Kontonummern
Natürlich ist von der Geschäftsführung die Sicht auf den logischen Mandanten gewünscht - egal wie gebucht wird, es kommt ja immer eine GuV und Bilanz im HGB Layout etc. heraus. Die buchhalterische Umsetzung des Rechnungswesen mit verschiedenen Kontorahmen etc. muss also wieder zusammengeführt werden auf einen einheitlichen Datenbestand mit
einheitlichem Kontorahmen
einheitlicher Kontonummernlänge
periodengerechten Werten
Dafür werden die technischen Mandanten wieder zuammengeführt auf einen logischen Mandanten und dabei die Strukturbrüche wie folgt behandelt
wechselnde Kontonummernlänge → alle Kontonummer werden auf die größte Länge gebracht, bei kurzen Kontonummern also eine / mehrere 0 hinten angehängt Mandant mit Rumpfgeschäftsjahr und kalendarischem GJ zusammenführen / vereinigen / verschmelzen in OCT
Wechsel des Geschäftsjahresbeginns → überschreiben der Periodennummern / Periodenamen und darauf aufbauender Kumulation (ein Geschäftsjahr ist eigentlich nur die Definition der Grenzen der Kumulation, wir können also unserer Bewegungswerte anderes kumulieren, müssen aber aufpassen mit den Saldovorträgen)
Wechsel des Kontorahmen - die Konten des alten Kontenrahmens werden auf die die Konten des neuen Kontorahmens gemappt, oder beide werden gleich auf einen Konzernkontenrahmen gemappt
Es ist somit möglich, alle Arten von Strukturbrüchen wieder zu einem logischen Mandanten zusammenzuführen - oder gleich auf einen Konzernstandard mit Konzernkontenrahmen, Konzerngeschäftsjahr und Konzernkontonummernlänge zu bringen.
3.1. Umsetzung des Mandantenmapppings
A: jedem Mandant wird der logische Mandant [Beraternummer]_[Mandantennummer] hinterlegt
B: jedem alten Mandant wird die Mandantennummer des neuen Mandanten hinterlegt
3.2. Umsetzung der wechelnden Kontonummernlänge
A: alle Kontonummern werden auf 8 stellig aufgefüllt (so sind die Kontonummern DATEV intern gespeichert)
3.3. Umsetzung des Kontenrahmenwechsels
A: gar nicht - beide Kontorahmen sind bereits auf die Auswertungsstruktur HGB gemappet und es kann über HGB Struktur mandantenübergreifend ausgewertet werden
B: beide Mandanten werden auf einen Konzernkontenrahmen gemappt
C: der alte Mandant wird auf die Konten des neuen Mandanten gemappt (das geht nicht immer 1:1)
3.4. Umsetzung des Geschäftsjahreswechsels
Individuelle Perioden werden definiert
alle Werte werden zu Bewegungswerten gemacht
vorhandene Bewegungswerte bleiben unverändert
am Ende jeder Ursprungskumulation werden die Salden auf dem Konto ausgebucht
alle Saldenvorträge werden als Bewegungswert behandeltüber diese läuft die Kumulation
über die individuellen Perioden läuft die Kumulation
4. Expertenoptionen
4.1. Datenextraktion über Powershell Step für spezielle KREXPORT Parameter
In seltenen Fällen (bspw. Beginn des Wirtschaftsjahres nicht am 01. eine Monats) ist es notwendig in die KREXPORT Kommandos einzugreifen. Von OCT wird das Extraktionsscript immer im Datenquellenverzeichnis erzeugt.
Diese kann kopiert, modifziert und über über Powershell an Stelle der originalen Datenextraktion ausgeführt werden.
Wartung: bei neuen Mandanten / Geschäftsjahren muss das Script manuell modiziert werden !