Zum Hauptinhalt springen

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

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, ...
}