OCT Gateway Business Central (Microsoft Dynamics 365)
Klassifikation
Merkmal | Klassifikation |
Quelldatentyp | API |
Öffentliche Datenquellen API Dokumentation | https://learn.microsoft.com/de-de/dynamics365/business-central/dev-itpro/api-reference/v2.0/ |
Steuerungsstruktur | Konfigurationsdatei: u.a. Auswahl der Mandanten sowie des Startdatum für den Datenabruf. Steuerungstabelle, welche die Übernahme pro Mandant und Wirtschaftsjahr ermöglicht. |
Validierungsoberfläche | Ja, Tabellenstatistik und Tabellenwerte. |
Zuletzt getestet mit OCT Version | 5.11 |
Programmierpattern | Table by Table (jede Tabelle ist individuell im Abruf definiert) |
Tabellengruppe | staging.tBUSINESSCENTRAL365_* |
Öffentlicher Testdatenbestand | Business Central Demoversion |
Konnektor für FIN-Modul | Ja |
Funktionalität
das Gateway spiegelt die Daten aus den vordefinierten Endpunkten 1:1 über die Business Central API in die staging-Schicht einer OCT-Datenbank.
folgende Endpunkte werden gespiegelt:
AccountingPeriods
Accounts
Companies
CompanyInformation
Dimensions
DimensionValues
GeneralLedgerEntries (mit dimensionSetLines)
TrialBalances
die OCT-Datenbank stellt eine Validierungsoberfläche für diese Daten bereit
Voraussetzungen
Business Central / Azure Portal
Einrichtung der API-Zugangsdaten in Business Central und Azure Portal Einrichtung Microsoft Dynamics 365 Business Central API (Stand: August 2025)
für den Abruf der Daten benötigt das Gateway…
… die Verzeichnis-ID (englisch: Tenant-ID)
… die Anwendungs-ID (englisch: Client-ID)
… sowie den geheimen Clientschlüssel (englisch: Client-Secret)
OCT
OCT Version 5.11 oder höher - je nach Einrichtungsvariante lokal oder in der Azure Cloud
eine OCT-Datenbank muss als Zieldatenbank On-Premises oder in einer Cloudumgebung erreichbar sein
Technische Einrichtung
Einrichtung des Gateways mit OCT in der Saxess-Cloud
Voraussetzungen:
Azure Storage Account mit Kontoname und Access Key
in config.json die Zugangsdaten (api_tenant_id, api_client_id, api_client_secret) für die API, abzurufende Mandanten unter BC365_Einstellungen ->Mandanten, Startdatum und die Zugangsdaten für die Zieldatenbankdaten einfügen
eine Dateifreigabe auf Azure Storage mit dem Namen “python” erstellen, den Inhalt des Ordners Gateway_BusinessCentralAPI in die Dateifreigabe kopieren
Ablaufplan:
Einen Storage Account vom Typ FileStorage als Datenquelle anlegen
1.1 im Azure Storage Account eine Dateifreigabe “python” (Name ist Konvention) mit einem Ordner “scripts” (Name ist verpflichtend) anlegen
1.2 den Deployment-Ordner “Gateway_BusinessCentralAPI ” aus dem Storage-Account herunterladen und den Inhalt in den Ordner “scripts” kopieren
1.3 falls vorher noch nicht erledigt, im Ordner “config” in der Datei “config.json” die Zugangsdaten (api_client_id, api_client_secret, api_tenant_id) für die API, und die Zieldatenbankdaten einfügen
die benötigten Datenbankobjekte durch Ausführen des SQL-Skripts “SETUP_STAGING_BusinessCentral.sql” aus dem Ordner “setup” im Ordner “Gateway_BusinessCentralAPI” in die OCT-Datenbank einspielen
in der OCT-Oberfläche unter Datenquellen den Azure Storage Account per AccessKey / Variante FileStorage als Quellsystem hinzufügen
in der OCT-Oberfläche die Pipeline “STAGBC365 - Datenextraktion BusinessCentral” öffnen
4.1 (falls vorhanden) Step: “Powershell - Datenextraktion BusinessCentral” löschen oder deaktivieren
4.2 im Step: “Container - Datenextraktion BusinessCentral” die Azure Datenquelle einstellen, unter Startbefehl config anpassen falls der Name der config.json angepasst wurde
4.3 Pipeline ausführen
Datenvalidierung in OCT über die Factory “Validierung”, Productline “STAGBC - Staging BusinessCentral”
Einrichtung des Gateways mit OCT On-Premises
den Deployment-Ordner “Gateway_BusinessCentralAPI” aus dem Storage-Account herunterladen und nach “C:\ProgramData\Saxess Software” (oder einen anderen Ort) kopieren
die benötigten Python-Pakete installieren
3.1 ein cmd-Terminal als Admin starten
3.2 mit folgendem Befehl zum Ordner “Gateway_BusinessCentralAPI“ wechseln: “cd ../../ProgramData/Saxess Software/Gateway_BusinessCentralAPI”
3.3 mit folgendem Befehl die benötigten Pakete installieren: “python -m pip install -r requirements.txt”
oder alternativ die Batch-Datei “install_libraries_(als_Admin_ausführen).bat“ im Ordner “Gateway_BusinessCentralAPI“ als Admin ausführen
die benötigten Datenbankobjekte durch Ausführen des SQL-Skripts “SETUP_STAGING_BusinessCentral.sql” aus dem Ordner “setup” im Ordner “Gateway_BusinessCentralAPI” in die OCT-Datenbank einspielen
in der Datei “config.json” im Ordner “config”…
… die DatenquellenID (kann frei gewählt werden, z.B. BC365)
… Mandantennamen, Umgebung (auf der Startseite von BusinessCentral zu finden) und Start_Datum
… Zugangsdaten für die BusinessCentral-API (api_client_id, api_client_secret, api_tenant_id)
… und Zugangsdaten für die OCT-Zieldatenbank einfügen
(optional): testweise Direktausführung
nacheinander die Batch-Dateien “1_Steuerungstabelle_aktualisieren.bat” und “2_Daten_abrufen.bat” im Order “Gateway_BusinessCentralAPI” ausführen
Pipeline “STAGBC365 - Datenextraktion BusinessCentral” einrichten
7.1 ggf. in den Steps “Steuerungstabelle Inhalt laden - Powershell“ und “Datenextraktion Business Central“ die Pfade zum Ordner “Gateway_BusinessCentralAPI” und zur Python Umgebung anpassen
7.2 ggf. im Step “Steuerungstabelle aktivieren“ die DatenquellenID anpassen, siehe config.json
7.3 den Step “Datenextraktion BusinessCentral - Container” löschen oder deaktivieren
7.4 Pipeline “STAGBC365 - Datenextraktion BusinessCentral” ausführen
Datenvalidierung in OCT über die Factory “Validierung”, Productline “STAGBC - Staging BusinessCentral”
Konfiguration der Datei config.json
Auswahl der abzurufenden Mandanten über Eintragung in die Mandantenliste
Output
"csv_out_aktiv" : 1
"db_output_aktiv": 1
Entscheidet ob die abgerufenen Daten in die Zieldatenbank geschrieben oder als CSV-Datei auf der Festplatte oder im Azure File Share abgespeichert werden sollen. 1 = aktiviert, 0 = deaktivert
Beide Optionen können gleichzeitig aktiv sein.
Bei Ausführung des Gateway-Skripts im Container-Step den “ziel_ordner” im Abschnitt “Dateisystem” freilassen, da das Skript dann die Daten im File-Share ablegt.