Postman-Collection
Orderlines Schreiben

pixiEstimatedDeliveryUpdates

Berechnet die voraussichtlichen Liefertermine von Auftragspositionen und Artikeln für einen Auftrag, eine Shop-Bestellnummer oder einen Artikel neu und stellt geänderte Artikel zum Export ein.

Wrapper um die interne Prozedur Pixi_EstimatedDeliveryUpdates.

  1. OrderNr = 0, ShopOrderNr = '' und ItemRef = 0 werden als NULL behandelt.
  2. Sind alle drei Parameter NULL, endet der Aufruf sofort ohne jede Änderung. Eine vollständige Neuberechnung aller Artikel ist über diesen Aufruf nicht möglich.
  3. Andernfalls wird die interne Prozedur mit den übergebenen Werten ausgeführt.

Auswahl der Artikel

  • OrderNr: Artikel der Auftragspositionen dieses Auftrags (nicht gelöscht, OrderNr <> 0) mit Status ANG oder HAL sowie Positionen, die zu einer Bundle-Position gehören.
  • ShopOrderNr: ebenso, abgeglichen über Orderlines.OrderNrExternal.
  • ItemRef: der Artikel selbst. Ist er ein Bundle, werden seine Bestandteile ergänzt und das Bundle wird ebenfalls neu berechnet.
  • Direkt berechnet werden nur Artikel, die keine Bundles sind. Wird kein Artikel gefunden, endet die Prozedur ohne Änderungen.

Berechnung (Einstellung EstimatedDeliveryCalcUsesFIFO)

  • 1 (FIFO): Bestandseinheiten in Lagern mit ParticipateInEstDelivery = 1 und offene Mengen bestätigter Lieferantenbestellpositionen (IsOrderedConfirmed = 1, mit voraussichtlichem Liefertermin, in teilnehmenden Lagern) werden Stück für Stück den offenen Auftragspositionen mit Status ANG/HAL zugeordnet. Die Positionen werden nach AutoReservationDone absteigend, Auftragsdatum und Positionsschlüssel sortiert. Jede Auftragsposition erhält den Termin ihrer zuletzt zugeordneten Einheit und die verwendete Lieferantenbestellposition (RealSorderlineRef). Bestand und Termine in der Vergangenheit ergeben das heutige Datum. Der Artikel erhält den Termin der nächsten Einheit, die nach allen offenen Positionen noch frei ist, oder NULL.
  • 0 (MAX) / 2 (MIN): der späteste bzw. früheste voraussichtliche Liefertermin bestätigter Lieferantenbestellpositionen mit teilnehmendem Lieferlager. Er wird nur verwendet, wenn er nach dem heutigen Datum liegt und noch offene Menge besteht. Alle Auftragspositionen des Artikels und der Artikel selbst erhalten diesen Termin.
  • Jeder andere Wert berechnet nichts.

Bereinigung und Bundles

  • Sofern nicht alle drei Parameter gefüllt sind, werden vorhandene Einträge in Orderline_EstimatedDelivery und Item_EstimatedDelivery (Artikel ohne Bundles), die nicht neu berechnet wurden, auf NULL gesetzt und damit gelöscht.
  • Bundles erhalten den spätesten Termin ihrer Bestandteile. Hat ein Bestandteil keinen Termin, erhält das Bundle keinen Termin.

Speichern

  • Item_EstimatedDelivery und Orderline_EstimatedDelivery werden per MERGE aktualisiert. Ein NULL-Ergebnis löscht die Zeile, ein geänderter Wert wird mit neuem Änderungsdatum aktualisiert, ein neuer Artikel bzw. eine neue Position wird eingefügt.
  • Geänderte Bundles sowie geänderte Artikel, die bereits einen Eintrag in InvBinItemLog haben, werden mit ForceToExport = 1 in pixi.ItemRecalculateStockQueue eingestellt.
  • Geänderte Artikel ohne Eintrag in InvBinItemLog erhalten eine Log-Zeile mit Menge 0 und UpdateEmp = 'AutoEstDelExp', damit sie exportiert werden.

Der Aufruf liefert keine Ergebnismenge.

Hinweise

  • Fallstrick: Der Bereinigungsschritt ist nicht auf den ausgewählten Auftrag oder Artikel beschränkt. Sofern nicht OrderNr, ShopOrderNr und ItemRef alle gefüllt sind, wird jeder Eintrag in Orderline_EstimatedDelivery und Item_EstimatedDelivery (Artikel ohne Bundles), der in diesem Lauf nicht neu berechnet wurde, systemweit gelöscht.
  • Ist an der Auswahl kein Bundle beteiligt, werden alle Bundles im System anhand der aktuellen Ergebnisse neu berechnet.
  • Im Modus MAX/MIN erhalten alle Auftragspositionen des Artikels den Termin, unabhängig von ihrem Status. Im FIFO-Modus werden nur offene Positionen mit Status ANG/HAL berücksichtigt.
  • Der Berechnungsmodus stammt aus der Einstellung EstimatedDeliveryCalcUsesFIFO, die zur Laufzeit über fpixi_GetSetting gelesen wird. Deren Definition liegt nicht vor.
  • Die Prozedur gibt 0 zurück, wenn nichts getan wurde, sonst 1. Die SOAP-Antwort enthält diesen Rückgabewert nicht als Zeile.
  • Es gibt keine explizite Transaktion. Lesezugriffe verwenden NOLOCK.
  • Der FIFO-Modus zerlegt Mengen über dbo.Numbers in einzelne Einheiten. Bei großen Mengen kann das langsam sein.

Parameter

Parameter Typ Standardwert Beschreibung
OrderNr
int NULL

Pixi-Auftragsnummer. Die Artikel der offenen Auftragspositionen dieses Auftrags werden neu berechnet. 0 wird als NULL behandelt.

Beispiel: 104523

ShopOrderNr
varchar(50)
string
NULL

Externe Shop-Bestellnummer, abgeglichen über Orderlines.OrderNrExternal. Ein leerer String wird als NULL behandelt.

Beispiel: SHOP-2024-000815

ItemRef
int NULL

Artikelschlüssel (ItemKey), der neu berechnet werden soll. Bei einem Bundle werden dessen Bestandteile einbezogen. 0 wird als NULL behandelt.

Beispiel: 5871

Antwort

Dieser Call liefert kein Result-Set.

Beispiele

POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
  <SOAP-ENV:Body>
    <ns1:pixiEstimatedDeliveryUpdates>
      <!-- <OrderNr>104523</OrderNr> -->
      <!-- <ShopOrderNr>SHOP-2024-000815</ShopOrderNr> -->
      <!-- <ItemRef>5871</ItemRef> -->
    </ns1:pixiEstimatedDeliveryUpdates>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Orderlines · Lesen BundleOrderlines · Lesen BundleItems · Lesen items · Lesen Item_EstimatedDelivery · Schreiben Orderline_EstimatedDelivery · Schreiben InvBinItem · Lesen InvBin · Lesen Location · Lesen Numbers · Lesen SupplierOrderLine · Lesen SupplierOrder · Lesen SupplierOrderStatus · Lesen SupplierOrderLineLocQty · Lesen OrderHeader · Lesen ItemRecalculateStockQueue · Schreiben InvBinItemLog · Schreiben
SQL-Objekt:
dbo.pipiEstimatedDeliveryUpdates
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben