Postman-Collection
Stock Lesen

pixiGetItemStock

Liefert verfügbaren und physischen Bestand, Lieferantenpreis und offene Auftragspositionsmengen für einen oder mehrere Artikel, optional je Lager.

Sucht Artikel und liefert deren Bestandswerte.

Artikelidentifikation

  • Leere Zeichenketten werden als NULL behandelt; ItemKey = 0 gilt als NULL.
  • Mindestens einer der Parameter ItemKey, EAN, ItemNrSuppl, ItemNrInt oder ItemXML ist erforderlich, sonst wird eine Fehlerzeile geliefert.
  • Die Einzelparameter werden mit ODER gegen pixi.ItemCode verknüpft: EAN entspricht Codetyp 1 (Barcode), ItemNrInt Codetyp 2 (Shop-Artikelnr.), ItemNrSuppl Codetyp 4 (Lieferanten-Artikelnr.), ItemKey der Artikel-ID einer beliebigen Codezeile.
  • ItemXML ergänzt weitere Artikel: Jedes Element /ITEMS/ITEM kann ITEMKEY (direkt übernommen), ITEMNRINT, ITEMNRSUPPL oder EAN enthalten (Abgleich mit items.ItemNrInt, items.ItemNrSuppl und items.EANUPC).
  • Wird kein Kandidat gefunden, wird eine Fehlerzeile geliefert.

Bestandsberechnung (je Artikel aus items)

  • AvailableStock = ItemQtyIBIExportStock_locations abzüglich – bei Nicht-Bundle-Artikeln und wenn die Einstellung StockExportUsePhysicalStock 0 ist –
    • ItemQtyOpenOrderLines, wenn Reservierungen (ReservePrepaymentOrders) deaktiviert sind oder ExportAvailableStock_WhenReservationsAreEnabled = 1 ist,
    • sonst ItemQtyOpenReservations, wenn Reservierungen aktiv sind,
    • andernfalls wird nichts abgezogen.
  • PhysicalStock = Bestand außerhalb von Sonderlagern, PhysicalStockAllLocations = inklusive Sonderlager.
  • OnlyEnabledItems = 1 beschränkt die Ausgabe auf aktive Artikel.

Ausschluss von Lagerplatzgruppen Ist ExcludeBinGroups (kommagetrennte Liste) angegeben, werden die Mengen auf Lagerplätzen (InvBin/InvBinItemLog) dieser Gruppen je Artikel summiert und von AvailableStock, PhysicalStock und PhysicalStockAllLocations abgezogen. Für Bundles mit solchen Komponenten wird zusätzlich eine abgeleitete Menge (Minimum über die Komponenten aus ausgeschlossener Menge geteilt durch Komponentenmenge, aufgerundet) abgezogen.

Aufschlüsselung nach Lager Mit LocationStock = 1 werden zwei zusätzliche Textspalten geliefert:

  • Locations: All:<Menge>; <LocID>:<Menge>; … mit Gesamtmenge und Menge je Lager.
  • OpenOrderlineSumLocations: <LocID>:<Menge>; …; All:<Menge>; mit offenen Kundenauftragsmengen (ANG/FUT sowie aktuelle HAL-Aufträge) je Lager und gesamt, berechnet durch pixi.ItemInfoStockPerLocation.

Je gefundenem Artikel wird eine Zeile geliefert; eine explizite Sortierung erfolgt nicht.

Hinweise

  • Nur lesend; alle Tabellen werden WITH (NOLOCK) gelesen, Werte können daher nicht festgeschriebene Daten enthalten.
  • Bei Fehlern liefert die Prozedur zusätzlich zur Statuszeile den Rückgabewert 1.
  • ItemKey als Einzelparameter trifft nur, wenn der Artikel mindestens eine Zeile in pixi.ItemCode besitzt. ITEMKEY-Werte aus ItemXML werden nicht geprüft; unbekannte Schlüssel gelten als gefunden, erzeugen aber keine Ausgabezeile, sodass das Ergebnis ohne Fehlerzeile leer sein kann.
  • Ein Artikel, der sowohl über Einzelparameter als auch über ItemXML gefunden wird, kann doppelt im Ergebnis erscheinen.
  • EAN in ItemXML wird als varchar(13) gelesen; längere Werte werden abgeschnitten.
  • Wird OnlyEnabledItems explizit als NULL übergeben, werden keine Zeilen geliefert.
  • Der Ausschluss von Lagerplatzgruppen wirkt nur auf Artikel mit Shop-Artikelnr. (Codetyp 2), deren ItemNrInt diesem Code entspricht.
  • Die Reihenfolge der Einträge in Locations und OpenOrderlineSumLocations ist nicht garantiert.
  • pixi.ItemInfoStockPerLocation wird auch ausgeführt, wenn LocationStock nicht 1 ist; bei vielen Artikeln werden dabei Auftragspositionen und Lieferantenbestellungen aggregiert, was aufwendig sein kann. Das Ergebnis hängt von den Einstellungen HalOrdersActiveDays und Include_FUT_StatusInOpenOrdersForSupplierOrdering ab.
  • Ungültiges XML in ItemXML führt zu einem SQL-Fehler aus sp_xml_preparedocument.

Parameter

Parameter Typ Standardwert Beschreibung
ItemKey
int NULL

Interner Artikelschlüssel. 0 gilt als nicht gesetzt.

Beispiel: 1234

EAN
varchar(50)
string
NULL

Barcode des Artikels (Codetyp 1).

Beispiel: 4006381333931

ItemNrSuppl
varchar(50)
string
NULL

Lieferanten-Artikelnummer (Codetyp 4).

Beispiel: SUP-55012

ItemNrInt
varchar(50)
string
NULL

Shop-Artikelnummer (Codetyp 2).

Beispiel: A-1001

LocationStock
bit
boolean
NULL

Bei 1 enthält das Ergebnis zusätzlich die Spalten Locations und OpenOrderlineSumLocations je Lager.

Erlaubte Werte

  • 1 – Bestand und offene Aufträge je Lager mitliefern.
  • 0 – Ohne Spalten je Lager (wie NULL).

Beispiel: 1

OnlyEnabledItems
bit
boolean
0

Beschränkt das Ergebnis auf aktive Artikel.

Erlaubte Werte

  • 0 – Alle gefundenen Artikel liefern.
  • 1 – Nur Artikel mit `Enabled = 1` liefern.

Beispiel: 0

ExcludeBinGroups
varchar(max)
string
NULL

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

Beispiel: RETURNS,DAMAGED

ItemXML
varchar(max)
xml
NULL

XML-Liste weiterer Artikel. Jedes Element /ITEMS/ITEM kann ITEMKEY, ITEMNRINT, ITEMNRSUPPL und EAN (max. 13 Zeichen) enthalten.

Beispiel:

<ITEMS>
  <ITEM>
    <ITEMKEY>1234</ITEMKEY>
    <ITEMNRINT>A-1001</ITEMNRINT>
    <ITEMNRSUPPL>SUP-55012</ITEMNRSUPPL>
    <EAN>4006381333931</EAN>
  </ITEM>
  <ITEM>
    <ITEMKEY>1240</ITEMKEY>
    <ITEMNRINT>A-1002</ITEMNRINT>
    <ITEMNRSUPPL>SUP-55013</ITEMNRSUPPL>
    <EAN>4006381333948</EAN>
  </ITEM>
</ITEMS>

Antwort

Result-Set 1 · Wenn kein identifizierender Parameter angegeben oder kein Artikelkandidat gefunden wird

Fehler-Statuszeile; die Verarbeitung endet.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer Error.

Message varchar(52)
string

Fehlertext.

Result-Set 2 · Bei Erfolg mit LocationStock = 1

Eine Zeile je gefundenem Artikel inklusive Zeichenketten je Lager.

Spalte Typ Beschreibung
AvailableStock
Kann leer sein
int

Verfügbarer Bestand für den Export, abhängig von Einstellungen um offene Auftragspositionen oder Reservierungen sowie um ausgeschlossene Lagerplatzgruppen reduziert.

PhysicalStock
Kann leer sein
int

Physischer Bestand ohne Sonderlager (ItemQtyIBISpecialStock_0).

PhysicalStockAllLocations
Kann leer sein
int

Physischer Bestand inklusive Sonderlager.

SupplPrice
Kann leer sein
money
decimal

Lieferanten-Einkaufspreis des Artikels.

ItemKey int

Interner Artikelschlüssel.

EANUPC
Kann leer sein
varchar(50)
string

EAN/UPC des Artikels.

ItemNrSuppl
Kann leer sein
varchar(50)
string

Lieferanten-Artikelnummer.

ItemNrInt
Kann leer sein
varchar(50)
string

Shop-Artikelnummer.

Locations
Kann leer sein
varchar(4000)
string

Mengen als All:<Menge>; <LocID>:<Menge>; … (Gesamtmenge und Menge je Lager).

OpenOrderlineSum
Kann leer sein
int

Menge in offenen Auftragspositionen (ItemQtyOpenOrderLines).

OpenOrderlineSumLocations
Kann leer sein
varchar(max)
string

Offene Kundenauftragsmengen (ANG/FUT und aktuelle HAL) als <LocID>:<Menge>; …; All:<Menge>; .

Result-Set 3 · Bei Erfolg mit LocationStock ungleich 1 (0 oder NULL)

Eine Zeile je gefundenem Artikel ohne Spalten je Lager.

Spalte Typ Beschreibung
AvailableStock
Kann leer sein
int

Verfügbarer Bestand für den Export (siehe oben).

PhysicalStock
Kann leer sein
int

Physischer Bestand ohne Sonderlager.

PhysicalStockAllLocations
Kann leer sein
int

Physischer Bestand inklusive Sonderlager.

SupplPrice
Kann leer sein
money
decimal

Lieferanten-Einkaufspreis.

ItemKey int

Interner Artikelschlüssel.

EANUPC
Kann leer sein
varchar(50)
string

EAN/UPC des Artikels.

ItemNrSuppl
Kann leer sein
varchar(50)
string

Lieferanten-Artikelnummer.

ItemNrInt
Kann leer sein
varchar(50)
string

Shop-Artikelnummer.

OpenOrderlineSum
Kann leer sein
int

Menge in offenen Auftragspositionen.

Fehlermeldungen

Status Meldung Ursache
Error Specify at least one parameter to identify the item. Keiner der Parameter `ItemKey`, `EAN`, `ItemNrSuppl`, `ItemNrInt`, `ItemXML` wurde angegeben (oder alle leer bzw. 0). Mindestens ein Identifikationsmerkmal übergeben.
Error No items found with given parameters. Kein Artikelcode bzw. XML-Eintrag passte zu einem Artikel. Identifikationsmerkmale und Codetypen prüfen.

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:pixiGetItemStock>
      <!-- <ItemKey>1234</ItemKey> -->
      <!-- <EAN>4006381333931</EAN> -->
      <!-- <ItemNrSuppl>SUP-55012</ItemNrSuppl> -->
      <!-- <ItemNrInt>A-1001</ItemNrInt> -->
      <!-- <LocationStock>1</LocationStock> -->
      <!-- <OnlyEnabledItems>0</OnlyEnabledItems> -->
      <!-- <ExcludeBinGroups>RETURNS,DAMAGED</ExcludeBinGroups> -->
      <!-- <ItemXML><![CDATA[<ITEMS><ITEM><ITEMKEY>1234</ITEMKEY><ITEMNRINT>A-1001</ITEMNRINT><ITEMNRSUPPL>SUP-55012</ITEMNRSUPPL><EAN>4006381333931</EAN></ITEM><ITEM><ITEMKEY>1240</ITEMKEY><ITEMNRINT>A-1002</ITEMNRINT><ITEMNRSUPPL>SUP-55013</ITEMNRSUPPL><EAN>4006381333948</EAN></ITEM></ITEMS>]]></ItemXML> -->
    </ns1:pixiGetItemStock>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

ItemCode · Lesen items · Lesen ItemLocationSpecific · Lesen Location · Lesen InvBin · Lesen InvBinItemLog · Lesen BundleItems · Lesen Settings · Lesen
SQL-Objekt:
dbo.pipiGetItemStock
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben