Skip to main content
Skip table of contents

OCT Gateway DATEVCONNECT.Accounting

Funktionalität

Systemvoraussetzungen

  • Zugang zu einer DATEVCONNECT.Accounting URL mit einem Benutzerkonto, welches über lesende Rechte auf allen Endpunkten verfügt. Die Einrichtung von DATEVconnect unterscheidet je nachdem ob,

    • der Kunde DATEV on-premises nutzt.

    • der Kunde DATEVasp, DATEV PARTNERasp oder DATEV SmartIT nutzt.

  • Der Ablauf der Einrichtung ist hier beschrieben: Zugang für eine DATEV Desktop API erstellen

grafik-20250207-150045.png

Einrichtung des Gateways on-premises

  • Python Version 3.13 oder höher ist installiert (“für alle Benutzer”, um den automatischen Aufruf durch OCT zu ermöglichen) https://www.python.org/.

  • ODBC Treiber 18 in 64Bit für MSSQL Server ist installiert (https://learn.microsoft.com/de-de/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16).

  • Visual Studio Code ist mit den Erweiterungen Python / Python Debugger von Microsoft grafik-20250203-082453.png installiert.

  • notwendige Python Bibliotheken installieren - das muss auch für alle Benutzer erfolgen, daher Ausführung über CMD (als Admin) oder Powerhell (als Admin)

    • python -m pip install pandas

    • python -m pip install requests

    • python -m pip install pyodbc

    • Die Bibliotheken müssen danach unter C:\Program Files\Python313\Lib\site-packages liegen - nicht im Userverzeichnis eines User oder des Admins!

    • Sollte die Bibliothek schon installiert worden sein, dann im admin Verzeichnis, python noch mal deinstallieren und folgende Verzeichnisse löschen:

      • C:\Program Files\PythonXX\

      • C:\Users\DeinBenutzer\AppData\Local\Programs\Python\

      • C:\Users\DeinBenutzer\AppData\Roaming\Python\

  • Zugangsdaten für eine MSQL Server Datenbank mit db_owner Rechten sind vorhanden - diese Datenbank ist typischerweise eine OCT Datenbank, muss es aber nicht sein.

  • Vom Rechner mit der Python Installation kann eine Verbindung über den SQL Server Port (meist 1433) zur MSSQL Server Datenbank aufgebaut werden.

  • Den aktuellsten Deployment Order aus Bitbucket Repo (https://bitbucket.org/SX_Admin/gateways_datev/src/main/DATEV_CONNECT_Desktop_APIs/DATEVCONNECT.Accounting/) in ein lokales Verzeichnis kopieren.

  • Den Ordner passend benennen, z.B. “DATEV Gateway Lokal2AzureDB”.

  • Datenbankobjekte durch Ausführen des Scripts “SETUP_DATEVconnect.Accounting_FOR_OCT” einspielen (falls die Datenbank eine OCT Datenbank ist) oder “SETUP_DATEVconnect.Accounting_WITHOUT_OCT” (für eine beliebige Datenbank). Die OCT Variante legt auch auch die Pipeline und Validierungsoberfläche an, der Prozess kann aber auch ohne OCT GUI gestartet werden.

  • Die “credential.config” Datei im DATEV Gateway Ordner bearbeiten (Credentials für DATEVCONNECT, Datenbankverbindung mit SQLUser, globales Startjahr für den Abruf der Wirtschaftsjahre)

    • Falls die DATEVConnect API per WinAuth genutzt wird (ist im lokalen Netzwerk meist der Fall) muss derzeit noch der Python Code bearbeitet werden, WinAuth über die config ist noch nicht unterstützt

      • im Browser testen, ob WinAuth funktioniert https://Server:58452/datev/api/accounting/v1/clients/ aufrufen - damit muss die Liste der Mandanten erscheinen

      • grafik-20250224-143703.png
      • Im Browser erscheint die Antwort in XML statt in JSON, das liegt aber daran, dass der Browser sie mit seinem Header so anfordert

      • ython -m pip install requests_ntlm

      • in helper_functions.py

        • from requests_ntlm import HttpNtlmAuth im Header aufnehmen

        • Zeile 108 ersetzen

          • alt: response = requests.get(uri, headers=headers)

          • neu: response = requests.get(uri, auth= HttpNtlmAuth("Domäne\user", "password"),verify=False)

      • Es werden bei der Ausführung Zertifkatswarnungen erscheinen wegen verify = false, ohne diesen Parameter geht es aber noch nicht.

  • Python Script main.py im Modus 1 ausführen, um die Steuerungstabelle des Gateways aufzubauen:

    • A: durch Doppelklick auf “1_Steuerungstabelle aktualisieren.bat”

    • B: in VSCode oder CMD per “python main.py --DATEV_SystemID=1 --Modus=1”

  • Steuerungstabellen konfigurieren (manuell oder mit Script Gatewaysteuerung.sql)

  • Das Python Script in Modus 2 ausführen, um die Daten zu lesen:

    • A: durch Doppelklick auf “2_Daten abrufen.bat”

    • B: in VSCode oder CMD per “python main.py --DATEV_SystemID=1 --Modus=2”

  • Datenvalidierung in OCT über die Factory ZV oder über XLSX Tabelle “Validierung DATEVConnect.Accounting.xlsx”, das Gateway stellt eine umfassende Validierungsoberfläche bereit

grafik-20250214-145209.png
  • Pipeline einrichten, welche …

    • optional: die Steuerungstabelle bei jedem Durchlauf neu abruft (für neue Mandanten / Geschäftsjahre) via Powershell Aufruf

    • optional: über einen SQL Befehl die Steuerungstabelle bearbeitet (neue Mandanten / Geschäftsjahre aktiviert / alte löscht)

    • den Datenabruf ausführt - via Powershell Aufruf

Ausführung on-premises über PowershellDB

grafik-20250207-145306.png

Einrichtung des Gateways als Cloudvariante via Container

  • Storage Account bereitstellen

    • Python Scripte im Filestorage ablegen

    • Sharename = python (zwingend, nach diesem Ordner sucht die run.py, welche im Container liegt)

    • Unterordner = scripts (zwingend, dort wird von run.py nach main.py gesucht)

grafik-20250213-094845.png
grafik-20250213-094527.png
  • Step konfigurieren

    • Ressourcengruppp = eine Ressourcengruppe in welcher die UMI die Rolle Contributor hat

    • Container Registry = URL (ohne http..) in welcher die UMI ArcPull Rechte hat

    • Image Name = Name des Containers mit Tag

    • Containergroupname = beliebiger String (Kleinschreibung ohne Leerzeichen)

    • Containername = beliebiger String (Kleinschreibung ohne Leerzeichen)

    • Anzahl Prozessoren: 0.25 bis 4

    • RAM GB: 1 bis 4

    • User managed Identity: Name der UMI mit obengenannten Rechten

    • Storage - die oben ausgewählte Datenquelle vom Typ Filestorage

    • Share Name / Volume Name = python (eine der beiden Eigenschaften ist überflüssig, oder ?)

grafik-20250213-141910.png
  • Startbefehl = starte im python das script run.py (Starthelfer, welches im Ordner python liegt), dieses soll das Script main.py aufrufen und diesem die beiden Parameter übergeben

    • python,run.py,--ScriptName=main.py,--ScriptArguments=--DATEV_SystemID=1 --Modus=1

    • python,run.py,--ScriptName=main.py,--ScriptArguments=--DATEV_SystemID=1 --Modus=2

    • python,run.py,--ScriptName=main.py,--ScriptArguments=--DATEV_SystemID=1 --Modus=3

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.