Dynamics BC Connector
Der Dynamics BC Connector ermöglicht die Kommunikation mit der OData-API von Microsoft Dynamics 365 Business Central (BC). Er deckt allgemeine Entitätsabfragen, Breeze-Dokumentoperationen sowie die Synchronisierung von Stamm- und Transaktionsdaten ab.
Das Modul besteht aus drei Teilen:
| Modul | Beschreibung |
|---|---|
ou.sp.dynamics.DynamicsBcConnector | Kernklasse für OData-Abfragen und Breeze-Operationen |
ou.sp.dynamics.DynamicsBcConnectorMasterData | Stammdaten-Synchronisierung |
ou.sp.dynamics.DynamicsBcConnectorTransactionData | Transaktionsdaten (Bestellungen, Kreditorenposten) |
Klasse DynamicsBcConnector
Instanz erstellen
context.enableModules();
const { DynamicsBcConnector } = require("ou.sp.dynamics.DynamicsBcConnector");
const connector = new DynamicsBcConnector({
tenantId: util.getEnvironment("BC_TENANT_ID"),
environment: util.getEnvironment("BC_ENVIRONMENT"),
clientId: util.getEnvironment("BC_CLIENT_ID"),
clientSecret: util.getEnvironment("BC_CLIENT_SECRET"),
});
Optional können timeout (Standard: 5000 ms) und ignoreSelfSignedCertificate (Standard: false) angegeben werden.
getEntities
Ruft eine Liste von BC-Entitäten ab. Unterstützt Felder-Auswahl, OData-Filter, Sortierung, Paginierung, $expand und inkrementelle Abfragen über modifiedSince.
Siehe DynamicsBcConnector#getEntities in der API-Referenz.
Beispiel
// Alle offenen Bestellungen eines Lieferanten seit einem Datum abrufen
const orders = connector.getEntities({
name: "brz_orderdata",
companyId: "987e3574-6a7b-4a97-b0c9-77740fb3f9bb",
fields: ["No", "Buy_from_Vendor_No", "Order_Date", "Status"],
filter: "Buy_from_Vendor_No eq 'V001'",
modifiedSince: "2026-01-01",
modifiedSinceField: "Order_Date",
});
Mit mappingFunction können die Rohdaten direkt in das Zielformat transformiert werden:
const vendors = connector.getEntities({
name: "brz_firminformation",
companyId,
fields: ["No", "Name", "VAT_Registration_No"],
mappingFunction: (item, recipient) => ({
recipient,
vendorId: item.No,
vendorName: item.Name,
vatNumber: item.VAT_Registration_No,
}),
recipient: "R0100",
});
countEntities
Zählt Entitäten mit optionalem OData-Filter, ohne die Datensätze selbst zu laden.
Siehe DynamicsBcConnector#countEntities in der API-Referenz.
Beispiel
const count = connector.countEntities({
name: "brz_orderdata",
companyId,
filter: "Status eq 'Open'",
});
Rechnung
getPurchaseDocument
Sucht ein BC-Einkaufsdokument anhand von Lieferant und Rechnungsnummer.
Siehe DynamicsBcConnector#getPurchaseDocument in der API-Referenz.
getPurchaseDocumentByNumber
Sucht ein BC-Einkaufsdokument anhand der Belegnummer ($top=1).
Siehe DynamicsBcConnector#getPurchaseDocumentByNumber in der API-Referenz.
Breeze-Dokumentoperationen
Diese Methoden interagieren mit dem Breeze-Dokumentenmanagementsystem in BC.
getDocumentByBreezeId / getDocumentBySystemId
Ruft ein Breeze-Dokument anhand der Breeze-ID bzw. der Breeze-System-ID ab.
Siehe DynamicsBcConnector#getDocumentByBreezeId und DynamicsBcConnector#getDocumentBySystemId in der API-Referenz.
getDocumentBody / attachJsonToDocument
Liest den strukturierten Dokumentenkörper (Kopf- und Zeilendaten) bzw. schreibt ihn zurück nach BC.
Siehe DynamicsBcConnector#getDocumentBody und DynamicsBcConnector#attachJsonToDocument in der API-Referenz.
createDocument / updateDocument
Legt ein neues Breeze-Dokument an oder aktualisiert ein bestehendes.
Siehe DynamicsBcConnector#createDocument und DynamicsBcConnector#updateDocument in der API-Referenz.