Transaktionsdaten
Das Modul ou.sp.dynamics.DynamicsBcConnectorTransactionData stellt Funktionen zur Synchronisierung von Bestelldaten und zum Abruf von Kreditorenposten bereit.
updateOrderData
Synchronisiert Bestellköpfe und Bestellpositionen aus BC für einen Empfänger. Holt optional nur Datensätze ab, die seit einem bestimmten Datum geändert wurden, oder filtert nach einem bestimmten Lieferanten.
Für jede Bestellposition werden passende Wareneingänge aus BC gesucht und die gelieferte Menge sowie Belegnummern ergänzt.
Siehe updateOrderData in der API-Referenz.
Beispiel
context.enableModules();
const { DynamicsBcConnector } = require("ou.sp.dynamics.DynamicsBcConnector");
const { updateOrderData } = require("ou.sp.dynamics.DynamicsBcConnectorTransactionData");
const { getDatabaseConnectionAndProviderOrThrow } = require("ou.sp.library.dbConnections");
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"),
});
const dbConfig = getDatabaseConnectionAndProviderOrThrow("ptpData");
// Vollständige Synchronisierung für einen Empfänger
const total = updateOrderData({
connector,
companyId: "987e3574-6a7b-4a97-b0c9-77740fb3f9bb",
recipient: "R0100",
dbConfig,
});
// Inkrementelle Synchronisierung ab einem Datum
const recent = updateOrderData({
connector,
companyId: "987e3574-6a7b-4a97-b0c9-77740fb3f9bb",
recipient: "R0100",
dbConfig,
since: "2026-01-01",
});
Wareneingänge werden automatisch per OData-Abfrage mitgeladen und den Bestellpositionen zugeordnet. Bei mehr als 5.000 Bestellnummern wird eine Gesamtabfrage ohne Filter gestellt und die Filterung clientseitig durchgeführt.
updateOrderDataById
Synchronisiert gezielt eine Liste von Bestellnummern. Geeignet für ereignisgesteuerte Aktualisierungen einzelner Bestellungen.
Siehe updateOrderDataById in der API-Referenz.
Beispiel
const { updateOrderDataById } = require("ou.sp.dynamics.DynamicsBcConnectorTransactionData");
updateOrderDataById({
connector,
companyId: "987e3574-6a7b-4a97-b0c9-77740fb3f9bb",
recipient: "R0100",
orderNumbers: ["PO-00123", "PO-00124"],
dbConfig,
});
getVendorLedgerEntries
Ruft offene Kreditorenposten vom Typ Invoice aus BC ab. Dient als Grundlage für Zahlungsläufe.
Siehe getVendorLedgerEntries in der API-Referenz.
Beispiel
const { getVendorLedgerEntries } = require("ou.sp.dynamics.DynamicsBcConnectorTransactionData");
// Alle fälligen Posten eines Lieferanten bis zum Monatsende
const entries = getVendorLedgerEntries({
connector,
companyId: "987e3574-6a7b-4a97-b0c9-77740fb3f9bb",
vendorId: "V001",
dueBefore: "2026-03-31",
});
for (const entry of entries) {
// entry.Remaining_Amount, entry.Due_Date, ...
}