Zum Inhalt

API-Referenz

Der Warehouse Client kommuniziert mit Business Central ausschließlich über eine OData-v4-API. Diese Referenz richtet sich an Integratoren und Administratoren, die die Schnittstelle verstehen oder erweitern möchten. Für die normale Nutzung der App ist sie nicht erforderlich.

Eigenschaft Wert
Publisher altenbrand
API-Gruppe mcWarehouse
Version v1.0
Basis-Pfad /api/altenbrand/mcWarehouse/v1.0/companies({id})/…
Authentifizierung OAuth2 (Microsoft Entra ID) über das Geräte-Konto, siehe Lizenzierung & Module
Berechtigung Berechtigungssatz ALN MCWC API User

Entitäten vs. Aktionen

Lesende Zugriffe (GET) laufen über OData-Entitäten. Schreibende Vorgänge (Buchen, Sperren, Etiketten, Fotos …) laufen über gebundene Aktionen (POST) auf der Entität warehouseActions. Die schreibenden Aktionen prüfen vor der Ausführung Lizenz und Terminal-Modul-Zugriff (Modul global bzw. am Terminal aktiviert).


Entitäten

Alle Entitäten sind schreibgeschützt – mit Ausnahme von terminals.

Entity Set Quelle Zweck
setup MC Lager-Client-Einrichtung Globale Konfiguration
terminals MC Lagerterminal Terminals lesen; POST registriert ein Terminal (mit Prüfung des Terminal-Limits), PATCH ändert Beschreibung und Lagerort
terminalShippingAgents MC Terminal-Zustelldienstleister Zugelassene Zustelldienstleister je Terminal
assignmentLocks MC Lager Zuweisungssperre Beleg-Sperren
scanLogEntries MC Lager-Scanprotokoll Protokoll der Scans
packages MC Lager Packstück Packstücke je Lieferung
packagingMaterials Packmittel (Hub) Packmittel für die Packstückerfassung
pickDocuments / pickLines Kommissionierbeleg / -zeile Kommissionierlisten und ihre Zeilen
openOrders Verkaufskopf Freigegebene Aufträge, die noch keinem Kommissionierbeleg zugeordnet sind
salesOrderLines Verkaufszeile Artikelzeilen von Verkaufsaufträgen
purchaseOrders / purchaseLines Einkaufskopf / -zeile Nicht vollständig gelieferte Bestellungen und ihre Artikelzeilen (Wareneingang)
salesShipments / shipmentLines Verk.-Lieferkopf / -zeile Gebuchte Lieferungen; Zeilen nur vom Typ Artikel
shipmentLabels Versandetikett (Hub) Versandetiketten je gebuchter Lieferung
shipmentPackages Sendungspackstück (Hub) Packstücke einer Multi-Colli-Sendung mit eigenem Etikett
itemLookups Artikel Artikelsuche (Nummer, GTIN)
itemLedgerEntries Artikelposten Lagerbuchungen eines Artikels
postedSalesInvoices / postedSalesInvoiceLines Verk.-Rechnungskopf / -zeile Gebuchte Rechnungen (Retoure/Reklamation)
warehouseActivities / warehouseActivityLines Lageraktivitätskopf / -zeile BC-Lagerkommissionierungen
complaints MC Lager Reklamation Reklamationen

Aktionen (POST)

Aktionen werden an einen Datensatz von warehouseActions gebunden aufgerufen:

POST …/companies({id})/warehouseActions({setupId})/Microsoft.NAV.<aktion>

Die Parameter werden als JSON-Objekt übergeben; die meisten Aktionen liefern ein JSON-Ergebnis als Text zurück. Fast alle schreibenden Aktionen erwarten terminalCode (und oft userId) – diese Angaben landen in Buchung, Sperre und Scan-Protokoll.

Konfiguration, Lizenz & Anmeldung

Aktion Zweck
getEffectiveConfig Wirksame Konfiguration eines Terminals (globale Einrichtung + Terminal-Überschreibungen)
getModuleActivation / getLicenseStatus Ist das Modul aktiviert und lizenziert? getLicenseStatus liefert zusätzlich Status und Meldung. Bewusst ohne Lizenzprüfung, damit die App den Grund anzeigen kann
getModuleCounts Offene Arbeit je Modul für die Kachelzähler des Hauptmenüs
validateSettingsPin Einstellungs-PIN prüfen (Sperre nach Fehlversuchen)
loginWarehouseUser / logoutWarehouseUser Mitarbeiter mit Ausweisbarcode + PIN am Terminal an- bzw. abmelden
getCompanyInfo Firmenname und Logo (für den App-Kopf)

Sperren & Zuweisung

Aktion Zweck
acquireLock / releaseLock Beleg für ein Terminal sperren/freigeben (docType = Belegart als Text, z. B. Sales Shipment)
getNextShipment Warenausgang-Modus Gebuchte Lieferungen: nächste gebuchte Lieferung für das Terminal
getNextSalesOrder Warenausgang-Modus Verkaufsaufträge: nächster freigegebener Auftrag für das Terminal (inkl. Kopfdaten)
getNextProcessedPick Warenausgang-Modus Lagerkommissionierungen: nächste kommissionierte, noch nicht gebuchte Lagerkommissionierung

Wareneingang

Aktion Zweck
prepareOrderReceipt Bestellung für die Erfassung am Terminal vorbereiten
postLineReceipt / postLineReceiptWithTracking Menge einer Bestellzeile erfassen – optional mit Chargen-/Seriennummer und Ablaufdatum
postOrderReceipt Wareneingang buchen mit Buchungsdatum und Kred.-Lieferscheinnr. (vendorShipmentNo); liefert die Wareneingangsnummer

Warenausgang

Aktion Zweck
shipPostedShipment Gebuchte Lieferungen: Etikett aus der bereits gebuchten Lieferung erstellen und sie als verarbeitet markieren – ohne den Auftrag erneut zu buchen
createPackagesForShipment Gebuchte Lieferungen, Multi-Colli: je Packstück ein Etikett aus dem Packplan (packingPlanJson)
shipSalesOrderPartial Verkaufsaufträge: gescannte (Teil-)Mengen aus dem Versandplan (shipPlanJson) als Lieferung buchen und das Etikett erstellen
calculateShipWeight Versandgewicht eines Auftrags
postShipment / postShipmentWithPackages Auftrag als Lieferung buchen (optional mit Rechnung) bzw. mit einem Etikett je Packstück aus einem Packplan
getShipmentNotifications / getShipmentConfirmations Hinweise und zu bestätigende Punkte zu einem Auftrag
getProcessedPickLines Lagerkommissionierungen: die gepickten Mengen, die der Packer bestätigt
calculateWmsShipWeight Lagerkommissionierungen: Paketgewicht aus den gepickten Mengen
completeWmsShipment Lagerkommissionierungen: bestätigte Mengen prüfen, Etikett aus dem offenen Auftrag erstellen und erst danach die Kommissionierung buchen; bei einem Etikettenfehler wird nichts gebucht

Versandetiketten, Packstücke & Lieferschein

Aktion Zweck
createShipmentLabel Etikett für eine gebuchte Lieferung erstellen; providerCode/serviceCode leer = automatische Auflösung über den Zusteller der Lieferung
getShipmentLabelData / getShipmentLabelByShipmentNo Etikettendaten (Base64 + Format) abrufen
getPackageLabelData Etikett eines einzelnen Packstücks (Multi-Colli)
addPackage / getPackageCount Packstück zu einer Lieferung erfassen / Anzahl der Packstücke
getDeliveryNotePdf Lieferschein einer gebuchten Lieferung als PDF (Base64); der frühere Name getPackingListPdf bleibt als Alias
getShippingAgents Zugelassene Zustelldienstleister des Terminals

Kommissionierliste

Aktion Zweck
releaseOrder / releaseOrders Kommissionierliste für einen Auftrag bzw. für mehrere Aufträge (kommagetrennt) in einer Liste erzeugen
confirmPickItem Gepickte Menge eines Artikels in einem Kommissionierlauf bestätigen
getOpenPickRuns / getPickRunLines / cancelPickRun Offene/unterbrochene Kommissionierläufe des Terminals, deren Zeilen, Lauf abbrechen (Aufträge werden wieder freigegeben)

Kommissionierung (BC-Lagerkommissionierung)

Aktion Zweck
findActivityByBarcode / getOpenActivityCount Lagerkommissionierung per Barcode finden / offene je Lagerort zählen
assignPickSerialNo Gescannte Seriennummer einer Kommissionierzeile zuordnen (teilt die Zeile bei Bedarf)
registerPick Lagerkommissionierung abschließen: buchen – bzw. im Warenausgang-Modus Lagerkommissionierungen nur als kommissioniert melden

Artikel, Serien & Chargen

Aktion Zweck
lookupBarcode / lookupBarcodeWithUOM Artikel per Barcode auflösen (inkl. Einheit)
validateSerialNo / validateSerialNoForShipment Seriennummer prüfen (allgemein bzw. gegen eine Lieferung)
getItemBinContents / getItemTrackingInfo / getAvailableTracking Lagerplatzinhalte, Artikelverfolgung und verfügbare Chargen/Serien eines Artikels

Einlagerung (Regalnummer)

Aktion Zweck
assignShelf / validateShelfCode Regalnummer zuweisen / gegen das Lagerplatz-Code-Muster prüfen
getPendingPutawayItems / getItemShelfInfo Artikel mit Bestand, aber ohne Regalnummer / Regalinfo eines Artikels

Umlagerung, Inventur & Lagerplätze

Aktion Zweck
getTransferContext / validateTransferBin Umlagerungskontext (Lagerplatzinhalt) / Ziel-Lagerplatz prüfen
postBinTransfer / postLocationTransfer Von Lagerplatz zu Lagerplatz bzw. von Lagerort zu Lagerort umlagern; postLocationTransfer liefert transferOrderNo und posted (true = sofort gebucht, false = nur angelegt und freigegeben)
getCountContext / getDueCountList / postCount Inventur: Zählkontext, Liste fälliger Zählungen, Zählung buchen
getCountSheet / postCountSheet Inventur: alle Lagerorte/Lagerplätze eines Artikels lesen und in einer Zählung buchen
postSerialCount / postSerialCountSheet Inventur: seriennummernpflichtige Artikel anhand der gescannten Seriennummern zählen
getOpenPutaways / getPutawayLines / registerPutaway Einlagerung WMS: offene Einlagerungsbelege, Zeilen, registrieren
getPutawayContext / postAdHocPutaway Einlagerung WMS ad hoc
calculateReplenishment / getOpenMovements / getMovementLines / registerMovement Nachschub: berechnen, Lagerbewegungen abrufen und registrieren

Etikettendruck, Verwiegung & Foto

Aktion Zweck
printItemLabel / printItemLabelPdf / getLabelItemInfo Artikel-/Fachetikett als ZPL bzw. als PDF (Bericht Artikeletikett) / Artikeldaten für das Etikett
getItemWeightInfo / saveItemWeight Artikelgewichte lesen / Netto- und Bruttogewicht auf die Artikelkarte schreiben
uploadPhoto / deletePhoto Foto (JPEG, max. 5 MB) am Beleg ablegen / löschen
getPhotos / getPhotoContent / getPhotoCount / documentExists Fotos eines Belegs auflisten / Bildinhalt / Anzahl / prüfen, ob der Beleg existiert

Retoure & Reklamation

Aktion Zweck
getReturnReasons Reklamationsgründe, die für die Terminals freigegeben sind (Am Lagerterminal anbieten)
postReturn / postServiceReturn Retoure zu einer Rechnungszeile als Gutschrift bzw. als Verkaufsreklamation anlegen
postComplaint / updateComplaintStatus Reklamation erfassen / Status weiterschalten

Nächste Schritte