Postman-Collection
Stock Lesen

pixiGetChangedItemStock

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

Erstellt eine Delta-Liste von Bestandsänderungen für einen Bestandsexport.

Zeitraum und Lager

  • Since bis DateTo definiert den Zeitraum. DateTo ist standardmäßig die aktuelle Zeit; Werte bis 1990-01-01 werden ebenfalls durch die aktuelle Zeit ersetzt.
  • LocID schränkt auf ein Lager ein; leer bedeutet alle Lager.

Kandidaten

  1. Nicht-Bundle-Artikel mit Einträgen in InvBinItemLog im Zeitraum in den gewählten Lagern. StockChange ist die Summe der protokollierten Mengen, UpdateDate das letzte Protokolldatum.
  2. Bei IncludeOrderLineChanges = 1 werden Artikel mit im Zeitraum geänderten Auftragspositionen in den gewählten Lagern ergänzt (sofern nicht bereits Kandidat). Sie benötigen mindestens einen InvBinItemLog-Eintrag; StockChange ist dann die Summe aller protokollierten Mengen in den Lagern, UpdateDate ist items.LastCalculateStockDate (Ersatz: letztes Protokolldatum, dann jetzt).
  3. Für jeden Kandidaten, der Bestandteil eines Bundles ist (BundleItems), wird auch der Bundle-Artikel ergänzt, mit StockChange = Änderung des Bestandteils ganzzahlig geteilt durch die Bestandteilmenge.

Sortierung und Paging Die Kandidaten werden nach UpdateDate aufsteigend, dann nach dem letzten InvBinItemLog-Schlüssel nummeriert. Es werden Zeilen mit Nummer >= Start + 1 übernommen, höchstens Rowcount. Bundle-Artikel ohne Bundle-Kennzeichen sowie nicht mehr in items vorhandene Artikel werden übersprungen. Die gelieferte RowNr wird innerhalb der Seite ab 1 neu nummeriert.

Bestandswerte

  • PhysicalStock = items.Quantity.
  • MinStockQty = Summe der nicht negativen ItemLocationSpecific.MinStockQty für das Lager (oder alle Lager).
  • Für Nicht-Bundles: AvailableStock = Summe von ItemLocationSpecific.LocationQuantity über alle Lager ohne Sonderbestand, abzüglich je nach Einstellung entweder offener Auftragsmengen (ANG-Positionen plus HAL-Positionen nicht älter als HalOrdersActiveDays Tage) oder der Anzahl Reservierungen auf nicht finalen Auftragspositionen (ohne Status EIN, FUT, FUS). OpenSupplierOrderQTY ist die offene Menge der Lieferantenbestellpositionen mit vollständig offenem Status; EstimatedDelivery stammt aus Item_EstimatedDelivery.ExportEstimatedDelivery.
  • Für Bundles: AvailableStock bleibt items.Quantity, OpenSupplierOrderQTY 0, EstimatedDelivery NULL.

Ausgeschlossene Lagerplatzgruppen Ist ExcludeBinGroups angegeben (kommagetrennt), wird die bis DateTo protokollierte Menge auf Lagerplätzen dieser Gruppen (Lager ohne Sonderbestand) von AvailableStock, PhysicalStock und StockChange abgezogen; bei Bundles über die Bestandteilmenge abgeleitet. PhysicalStockLoc ist dann die Lagerplatzmenge in den gewählten Lagern außerhalb dieser Gruppen. Ohne ExcludeBinGroups ist PhysicalStockLoc die Summe von ItemLocationSpecific.LocationQuantity in den gewählten Lagern für Nicht-Bundles (0 für Bundles).

Hinweise

  • Nur lesend; alle permanenten Tabellen werden mit NOLOCK gelesen, Werte können daher nicht festgeschriebene Daten enthalten.
  • Wird 1900-01-01 (Wert 0) als Since übergeben, wird es zu NULL; der Zeitraumfilter trifft dann nichts und das Ergebnis ist leer.
  • Zur Laufzeit gelesene Einstellungen: StockExportUsePhysicalStock (ungleich 0: keine Auftrags- oder Reservierungsmengen abgezogen), ReservePrepaymentOrders und ExportAvailableStock_WhenReservationsAreEnabled (Wahl zwischen offenen Auftragsmengen und Reservierungsanzahl), HalOrdersActiveDays (0 bedeutet 7; fehlt die Einstellung, werden HAL-Positionen nicht gezählt). ExportStock_locations wird gelesen, aber nicht verwendet.
  • Reservierungsanzahlen werden aufgrund der Verknüpfung der Zwischenergebnisse nur bei Artikeln berücksichtigt, die auch offene ANG/HAL-Auftragspositionen haben.
  • AvailableStock für Nicht-Bundles berücksichtigt alle Lager ohne Sonderbestand unabhängig von LocID; nur PhysicalStockLoc, MinStockQty und die Kandidatenauswahl beachten LocID.
  • Für die nächste Seite Start um Rowcount erhöhen; die gelieferte RowNr beginnt immer bei 1. Da nach UpdateDate aufsteigend sortiert wird, können neue Änderungen während des Pagings Positionen verschieben.

Parameter

Parameter Typ Standardwert Beschreibung
Since
Pflicht
datetime
dateTime
–

Beginn des Änderungszeitraums (inklusive).

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

Rowcount
int 1000

Maximale Anzahl Zeilen pro Seite.

Beispiel: 500

LocID
varchar(3)
string
–

Lager-ID zur Einschränkung; leer oder NULL für alle Lager.

Beispiel: 001

DateTo
datetime
dateTime
NULL

Ende des Änderungszeitraums (inklusive). NULL oder ein Datum bis 1990-01-01 bedeutet die aktuelle Zeit.

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

Start
int 0

Anzahl zu überspringender Kandidatenzeilen (Paging-Offset).

Beispiel: 0

ExcludeBinGroups
varchar(max)
string
NULL

Kommagetrennte Liste von Lagerplatzgruppen, deren Mengen von den Bestandswerten abgezogen werden.

Beispiel: RETURNS,QUARANTINE

IncludeOrderLineChanges
smallint
int
0

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

Erlaubte Werte

  • 0 – Nur Bestandsbewegungen aus dem Lagerplatzprotokoll.
  • 1 – Zusätzlich Artikel mit geänderten Auftragspositionen.

Beispiel: 1

Antwort

Result-Set 1 · Immer (ggf. leer).

Eine Zeile je geändertem Artikel, 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

Lieferantenartikelnummer.

PhysicalStock
Kann leer sein
int

Artikelmenge (items.Quantity), abzüglich Menge ausgeschlossener Lagerplatzgruppen.

AvailableStock
Kann leer sein
int

Verfügbarer Bestand nach Abzug von Auftrags- bzw. Reservierungsmengen und ausgeschlossenen Lagerplatzgruppen.

StockChange
Kann leer sein
int

Summe der protokollierten Bestandsbewegungen des Artikels.

EstimatedDelivery
Kann leer sein
datetime
dateTime

Voraussichtliches Lieferdatum für den Export; NULL bei Bundles.

MinStockQty int

Meldebestand (Summe über Lager).

Enabled
Kann leer sein
bit
boolean

Ob der Artikel aktiv ist.

OpenSupplierOrderQTY int

Offene Menge in offenen Lieferantenbestellungen.

UpdateDate
Kann leer sein
datetime
dateTime

Datum der letzten Änderung; Sortierschlüssel.

OriginalUpdateDate
Kann leer sein
datetime
dateTime

Letztes Bestandsberechnungsdatum des Artikels (LastCalculateStockDate).

BundleItem 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 in den gewählten Lagern.

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:pixiGetChangedItemStock>
      <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,QUARANTINE</ExcludeBinGroups> -->
      <!-- <IncludeOrderLineChanges>1</IncludeOrderLineChanges> -->
    </ns1:pixiGetChangedItemStock>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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 Settings · Lesen
SQL-Objekt:
dbo.pipiGetChangedItemStock
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben