Zum Hauptinhalt springen

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:

ModulBeschreibung
ou.sp.dynamics.DynamicsBcConnectorKernklasse für OData-Abfragen und Breeze-Operationen
ou.sp.dynamics.DynamicsBcConnectorMasterDataStammdaten-Synchronisierung
ou.sp.dynamics.DynamicsBcConnectorTransactionDataTransaktionsdaten (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.