Postman-Collection
Stock Lesen

pixiGetChangedItemStock2

Liefert Artikel, deren Bestand sich in einem Zeitraum geändert hat, mit physischem, verfügbarem und lagerbezogenem Bestand, Meldebestand und offener Lieferantenbestellmenge, mit Paging.

Delta-Export von Bestandsänderungen, typischerweise zum Abgleich der Shop-Bestände.

1. Lager. Alle Lager oder nur LocID, falls gesetzt.

2. Geänderte Artikel. Nicht-Bundle-Artikel mit Einträgen im Lagerplatz-Log (InvBinItemLog), deren UpdateDate zwischen Since und DateTo liegt, in den gewählten Lagern.

  • StockChange ist die Summe der protokollierten Mengen im Zeitraum.
  • UpdateDate ist das letzte Log-Datum.
  • OriginalUpdateDate ist LastCalculateStockDate des Artikels, ersatzweise das letzte Log-Datum.

3. Auftragspositions-Änderungen. Bei IncludeOrderLineChanges = 1 werden Artikel mit Auftragspositionen ergänzt, die im Zeitraum geändert wurden, sofern sie noch nicht enthalten sind. Die LocationID der Position muss zu den gewählten Lagern gehören, und der Artikel muss in diesen Lagern Log-Einträge haben.

  • Für diese Artikel ist StockChange die Summe aller Log-Einträge in diesen Lagern, nicht nur der Einträge im Zeitraum.
  • UpdateDate ist LastCalculateStockDate, ersatzweise das letzte Log-Datum, ersatzweise die aktuelle Zeit.

4. Bundles. Zu jeder geänderten Komponente werden die Bundle-Artikel ergänzt, die sie enthalten (BundleItem = 1). Ihr StockChange ist die größte Komponentenänderung, ganzzahlig geteilt durch die Komponentenmenge im Bundle. Bundle-Kopfartikel werden nur als Bundle-Zeile geliefert.

5. Sortierung und Paging. Die Kandidaten werden nach UpdateDate aufsteigend nummeriert, danach nach dem höchsten Log-Schlüssel. Geliefert werden Zeilen mit einer Nummer ab Start + 1, höchstens Rowcount Stück.

6. Bestandswerte.

  • PhysicalStock: items.Quantity.
  • MinStockQty: Summe der nicht negativen MinStockQty-Werte aus ItemLocationSpecific für LocID bzw. für alle Lager.
  • Für Nicht-Bundles:
    • AvailableStock = Summe von LocationQuantity über alle Lager ohne Sonderbestand, abzüglich der reservierten Menge (siehe Hinweise).
    • OpenSupplierOrderQTY = Summe von Qty - DeliveredQty - UndeliveredQty über Lieferantenbestellungen, deren Status IsAllOpen = 1 hat.
    • EstimatedDelivery stammt aus Item_EstimatedDelivery.ExportEstimatedDelivery.
  • Für Bundles bleibt AvailableStock = items.Quantity, OpenSupplierOrderQTY ist 0 und EstimatedDelivery leer.

7. Ausgeschlossene Lagerplatzgruppen. Ist ExcludeBinGroups gesetzt, wird die Menge in Lagerplätzen dieser Gruppen von PhysicalStock, AvailableStock und StockChange abgezogen. Diese Menge ist die Summe aller Log-Einträge bis DateTo. Für Bundles wird sie aus den Komponenten abgeleitet. PhysicalStockLoc ist dann die Summe der Lagerplatzmengen in den gewählten Lagern ohne die ausgeschlossenen Gruppen.

Ohne ExcludeBinGroups ist PhysicalStockLoc die Summe von LocationQuantity in den gewählten Lagern, nur für Nicht-Bundles.

Das gelieferte RowNr wird innerhalb der Seite ab 1 neu nummeriert.

Hinweise

  • Nur lesend. Alle Lesezugriffe verwenden NOLOCK, daher können nicht festgeschriebene Daten enthalten sein.

Zur Laufzeit gelesene Einstellungen:

  • StockExportUsePhysicalStock: Nur bei 0 werden offene Auftragsmengen bzw. Reservierungen von AvailableStock abgezogen.
  • ReservePrepaymentOrders und ExportAvailableStock_WhenReservationsAreEnabled:
    • Sind Reservierungen aus oder beide Einstellungen 1, wird die Summe der Auftragspositionen im Status ANG abgezogen, dazu HAL-Positionen mit Auftragsdatum innerhalb der letzten HalOrdersActiveDays Tage (Standard 7).
    • Sonst wird die Anzahl der Reservierungen abgezogen, deren Auftragsposition einen nicht finalen Status außer EIN, FUT und FUS hat. Wegen des Joins zählen Reservierungen nur, wenn der Artikel auch ANG/HAL-Positionen hat.
  • ExportStock_locations wird gelesen, aber nicht verwendet.

Stolperfallen:

  • Since muss ein echtes Datum sein. Der Wert 0 (1900-01-01) wird zu NULL, dann passen keine Log-Einträge.
  • DateTo-Werte bis 1990-01-01 werden durch die aktuelle Zeit ersetzt.
  • Die Basis für AvailableStock umfasst alle Lager ohne Sonderbestand, auch wenn LocID gesetzt ist.
  • Der Ausschluss von Lagerplatzgruppen berücksichtigt Lagerplätze aller Lager.
  • Für die nächste Seite Start um die Anzahl gelieferter Zeilen erhöhen oder mit späterem Since fortfahren. Das gelieferte RowNr ist seitenbezogen.
  • Laut Code-Kommentar nutzen Bundles LocationQuantity, der Code aktualisiert PhysicalStockLoc aber nur für Nicht-Bundles; für Bundles bleibt der Wert 0.

Parameter

Parameter Typ Standardwert Beschreibung
Since
Pflicht
datetime
dateTime
–

Beginn des Änderungszeitraums. Lagerplatz-Log-Einträge und, falls aktiviert, Auftragspositions-Änderungen ab diesem Zeitpunkt werden berücksichtigt.

Beispiel: 2024-05-01T00:00:00

Rowcount
int 1000

Maximale Anzahl gelieferter Zeilen (Seitengröße).

Beispiel: 500

LocID
varchar(3)
string
–

Lager-ID zur Einschränkung von Änderungen, Meldebestand und PhysicalStockLoc. Leer bedeutet alle Lager.

Beispiel: 001

DateTo
datetime
dateTime
NULL

Ende des Änderungszeitraums. NULL, 0 oder ein Datum bis 1990-01-01 bedeutet aktuelle Zeit.

Beispiel: 2024-05-02T00:00:00

Start
int 0

Anzahl zu überspringender Kandidatenzeilen (Paging-Offset). 0 beginnt mit der ersten Zeile.

Beispiel: 0

ExcludeBinGroups
varchar(max)
string
NULL

Kommagetrennte Liste von Lagerplatzgruppen, deren Mengen von den Bestandswerten abgezogen werden. Leer oder NULL deaktiviert den Ausschluss.

Beispiel: RETURNS,DEFECT

IncludeOrderLineChanges
smallint
int
0

Bei 1 werden auch Artikel mit im Zeitraum geänderten Auftragspositionen geliefert.

Erlaubte Werte

  • 0 – Nur Lagerplatz-Log-Änderungen werden berücksichtigt.
  • 1 – Artikel mit Auftragspositions-Änderungen im Zeitraum werden ergänzt.

Beispiel: 1

Antwort

Result-Set 1 · Immer (kann leer sein)

Eine Zeile je geändertem Artikel bzw. betroffenem Bundle, sortiert nach Änderungsdatum.

Spalte Typ Beschreibung
ItemKey int

Interner Artikelschlüssel.

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer.

EANUPC
Kann leer sein
varchar(13)
string

EAN/UPC des Artikels.

ItemNrSuppl
Kann leer sein
varchar(50)
string

Lieferanten-Artikelnummer.

PhysicalStock
Kann leer sein
int

Physischer Bestand aus items.Quantity, ggf. abzüglich ausgeschlossener Lagerplatzgruppen.

AvailableStock
Kann leer sein
int

Verfügbarer Bestand: Lagermenge abzüglich offener Aufträge bzw. Reservierungen (Nicht-Bundles); items.Quantity bei Bundles.

StockChange
Kann leer sein
int

Netto-Bestandsänderung im Zeitraum (Summe der Lagerplatz-Log-Mengen).

EstimatedDelivery
Kann leer sein
datetime
dateTime

Voraussichtliches Lieferdatum für den Export; NULL bei Bundles oder wenn nicht gesetzt.

MinStockQty
Kann leer sein
int

Meldebestand, summiert über das/die gewählte(n) Lager.

Enabled
Kann leer sein
bit
boolean

Ob der Artikel aktiv ist.

OpenSupplierOrderQTY
Kann leer sein
int

Offene Menge in offenen Lieferantenbestellungen (0 bei Bundles).

UpdateDate
Kann leer sein
datetime
dateTime

Letztes Änderungsdatum, nach dem sortiert wird.

OriginalUpdateDate
Kann leer sein
datetime
dateTime

LastCalculateStockDate des Artikels bzw. letztes Log-Datum.

BundleItem
Kann leer sein
bit
boolean

1, wenn die Zeile ein Bundle-Artikel ist.

RowNr bigint
long

Zeilennummer innerhalb der gelieferten Seite, beginnend bei 1.

PhysicalStockLoc
Kann leer sein
int

Physischer Bestand im/in den gewählten Lager(n), ggf. ohne ausgeschlossene Lagerplatzgruppen; 0, wenn nicht ermittelt.

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:pixiGetChangedItemStock2>
      <Since>2024-05-01T00:00:00</Since>
      <!-- <Rowcount>500</Rowcount> -->
      <!-- <LocID>001</LocID> -->
      <!-- <DateTo>2024-05-02T00:00:00</DateTo> -->
      <!-- <Start>0</Start> -->
      <!-- <ExcludeBinGroups>RETURNS,DEFECT</ExcludeBinGroups> -->
      <!-- <IncludeOrderLineChanges>1</IncludeOrderLineChanges> -->
    </ns1:pixiGetChangedItemStock2>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Settings · Lesen Location · Lesen OrderStates · Lesen items · Lesen InvBinItemLog · Lesen Orderlines · Lesen BundleItems · Lesen ItemLocationSpecific · Lesen SupplierOrderLine · Lesen SupplierOrder · Lesen SupplierOrderStatus · Lesen Reservation · Lesen Item_EstimatedDelivery · Lesen InvBin · Lesen InvBinItem · Lesen
SQL-Objekt:
dbo.pipiGetChangedItemStock2
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben