DATEV-Anbindung über KREXPORT (on premises, v5.9)
Beschreibt die Extraktion und Weiterverarbeitung von Daten aus DATEV über die DATEV-Schnittstellentechnologie “KREXPORT”. Diese Schnittstellentechnologie ist der DATEV-Standard und für alle on-premises Installationen und ohne DATEV-Zusatzkosten verfügbar.
1. Voraussetzungen
1.1. Konnektorverwaltung
OCT-Instanzen besitzen seit der Generation v5.9 eine neue Konnektorverwaltung. Diese ist standardmäßig aktiv - für die Nutzung der DATEV-Anbindung müssen wir diese aber deaktivieren.
Beispiel für die neue Konnektorverwaltung im Bereich “Administration”
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” 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):
Nur falls es um ein Bestandssystem geht, in welches DATEV neu aufgenommen wird:
!! Neue oder alte Konnektorverwaltung ist eine Datenbankeigenschaft - in einer Datenbank kann somit nur eines von beiden aktiv sein und in einer Datenbank mit diesem DATEV Konnektor müssen alle anderen Konnektoren auch alte sein. Sofern schon neue Konnektoren in der Datenbank aktiv sind, müssen diese in alte (filebasierte) Konnktoren konvertiert werden.
Deaktivieren der neue Konnektorverwaltung
Die alte Konnektorverwaltung ist wieder aktiv
1.2. Technische Voraussetzungen
Zugriff auf das Programm DATEV-Kanzleirechnungswesen als Anwender.
Für die Umsetzung als automatische Ausführung:
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 “4. Expertenoptionen”.
2. Anleitung automatische Datenextraktion
Führen Sie die Installation von OCT unter Beachtung der folgenden Punkte durch:
Der User, unter welchem der OCT Service läuft, hat eine Zugriffsberechtigung auf DATEV.
Am Installationsort (Computer) ist der DATEV-Client vorhanden.
Die OCT Exportformate werden in DATEV einfach eingespielt:
Die OCT Exportformate können hier heruntergeladen werden: Download
Die OCT Exportformate können nach folgender Anleitung im DATEV Client/Arbeitsplatz eingespielt werden: https://help.saxess-software.de/oct-best-practice/v1/datev-formate-v5-8
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:
Benötigte Module in der Modulverwaltung
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.
Beispielhafte Validierung des Moduls FIN
2.1.2. Aktivierung von Konnektoren
Laden sie unter Administration folgende Konnektoren herunter und aktivieren sie diese (Beachten Sie 1.1 Konnektorenverwaltung):
(a) Quellsystem: “DATEV”, Quellsystemtyp: “KREXP”, Konnektor: “FIN_DATEV (DATEV für Modul FIN_DATEV) …”
KREXP-Konnektor für DATEV
(b) Quellsystem: “DATEV”, Quellsystemtyp: “MSSQL”, Konnektor: “FIN (DATEV - Modul FIN) …”
MSSQL-Konnektor für DATEV
2.2. Einrichtung der Datenquellen
Im Hauptmenu der Datenflüsse (links unten) 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:
Beispielhafte Darstellung der anzulegenden Datenquellen
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 die neuen Datenquelle “DATEV” aus und starten sie die Einrichtung.
Auswahl der Quellsysteme für eine neue Datenquelle
Dialog 1: “Verbindung konfigurieren”
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 OCT die Daten automatisch exportieren soll, direkt auf “Weiter” klicken.
Dialog 3: “Mandantendetails ermitteln”
Filterung der Mandantenliste…wichtig - genau in dieser Reichenfolge
zuerst über das Datum von auf die benötigten Geschäftsjahre - bei Strukturbrüchen muss hier auf das erste Wirtschaftsjahr der aktuellen Struktur gefiltert werden.
Datum bis bleibt unverändert, solange man nicht explizit begrenzen will, neue Jahre werden später automatisch angehängt
dann auf die gewünschten Mandanten per “Kunden Auswahl”
lieber erst mal ein Jahr zu wenig nehmen und dann später eines noch anfügen, als umgedreht - keinesfalls sofort die gesamte Historie holen, die kann voller Strukturbrüche sein
Auslösen eines Abrufs von Detaildaten mittels des Buttons “Mandantendetails abrufen”.
Dabei werden pro Mandant die Details aller Wirtschaftsjahre ermittelt:
Beispielhafte Ansicht für Mandantendetails beim Einrichten einer DATEV-Datenquelle
Sind alle Mandanten im “Bearbeitungsstatus” = grün, dann kann im nächsten Fenster fortgefahren werden - Sie klicken unten auf “Weiter”.
Sind die Mandanten im “Bearbeitungsstatus” = rot, ist zu prüfen, ob die DATEV-Exportformate eingespielt wurden
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:
![](../../__attachments/756350977/Asuwahl.jpg?inst-v=b2963eb9-e053-4741-a1cc-126d93085219)
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 vier Steps:
![](../../__attachments/756350977/DATEV%20Pipeline2.jpg?inst-v=b2963eb9-e053-4741-a1cc-126d93085219)
Beispielhafte DATEV-Pipeline mit allen Zwischenschritten
Legen Sie nun die 4x Pipelines nacheinander mit den folgenden Spezifikationen an:
(a) 3.3.3. Step: DATEV Export anlegen und folgende Inhalte auswählen:
Name: DATEV Dateiexport
Datenquelle - des Quellsystem(-typs) “DATEV (KREXP)”
Modul: “FIN_DATEV”
die gewünschten Mandanten
Beginn / Enddatum
Beispielhafte Einrichtung des Steps: “DATEV-Export”
Es erfolgt ein Export der Daten aus DATEV und diese Daten werden als .csv/.txt-Dateien auf der Festplatte gespeichert.
Wenn eine Kostenrechnung mit Microsoft Access-Datenbanken vorliegt, müssen Sie die “KOST.mdb kopieren”. Diese Funktion kopiert die KOST.mdb-Dateien von den FM-Ordnern (wenn ein KOST-Verzeichnis beim Anlegen der Datenquelle hinterlegt wurde).
(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
Beispielhafte Einrichtung des Steps: “DATEV-Dateiverarbeitung”
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
Beispielhafte Einrichtung des Steps: “SQL Konnektor”
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
Beispielhafte Einrichtung des Steps “Datenbereitstellung”
Der Konnektor holt in diesem Step die Daten aus den "integration.tFIN"-Tabellen ab und stellt diese im "result"-Schema bereit.
2.4 Kürzen der Mandantenmapping / Einrichten von Mandantenmappings ohne Strukturbruch
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 (die CPCE-Datenbank selbst) . Ggf. werden hierbei auch mehrere technische Mandanten zusammengeführt - solange diese sich nur im Beginn des Geschäftsjahres unterscheiden, aber nicht in Kontonummernlänge und Kontorahmen. 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 Jährliche Wartungsarbeiten
die Schnittstelle erweitert sich selbst um neue DATEV Wirtschaftsjahre für die aktivierten Mandanten - sofern Sie nicht in den Pipelinesteps ein Enddatum gesetzt haben
die Erweiterung erfolgt nicht automatisch falls Sie einen Strukturbruch in DATEV erzeugt haben, durch
Änderung des Kontenrahmens
die Erweiterung wird automatisch erfolgen, aber fehlerhafte Ergebnisse liefern falls Sie
die Kontonummernlänge geändert haben
ein Rumpfwirtschaftsjahr einführen und nachfolgend dann den Geschäftsjahresbeginn ändern
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 Extraktionsskript 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 Skript manuell modiziert werden !
![](../../__attachments/756350977/Powershellaufruf.jpg?inst-v=b2963eb9-e053-4741-a1cc-126d93085219)
Datenextraktion per Powershell ausführen
![](../../__attachments/756350977/Pipeline.jpg?inst-v=b2963eb9-e053-4741-a1cc-126d93085219)
Datenextraktion per Powershell Step statt Step Datev Export ausführen