Postman-Collection
Items Lesen

pixiDispoGetItems

Liefert einen Block von Artikeln mit bevorzugtem Lieferanten, Preisen, Bestand und lagerortspezifischen Dispositionsdaten für den Export in die Logcontrol-Dispo-Software.

Exportiert Artikelstammdaten für die Dispositionssoftware von Logcontrol. Der Aufruf arbeitet blockweise.

  1. Kandidatenauswahl: Aus items werden die ersten ItemCount Artikel mit ItemKey größer als ItemKeyStart (aufsteigend nach ItemKey) samt Standardlieferant gelesen.
  2. Bevorzugter Lieferant: Existiert ein AddItems-Datensatz mit PreferredSupplier = 1, ersetzt dessen Lieferant den Standardlieferanten des Artikels.
  3. Zusatzdaten je Artikel:
    • Artikel-Tags (Tags mit TypeId = 1) als kommagetrennte Liste,
    • das früheste OrderDate aller Auftragspositionen des Artikels,
    • die Summe der Lagerplatzmengen (BinItemQTY) über alle Lagerplätze in Lagerorten, die kein Sonderlager sind (SpecialStock <> 1).
  4. Ergebnis: eine Zeile je Artikel und Lagerort aus ItemLocationSpecific. Es werden nur Zeilen geliefert, bei denen
    • der Lieferant in Suppliers existiert,
    • ein AddItems-Datensatz für Artikel und diesen Lieferanten vorhanden ist,
    • der Lagerort kein Sonderlager ist,
    • und, falls LocationIds angegeben ist, die LocID in der kommagetrennten Liste enthalten ist.

Die Sortierung erfolgt aufsteigend nach ItemKey. Dezimalwerte (SupplPrice, Price) werden als Text mit Komma als Dezimaltrennzeichen geliefert, Datumswerte im Format tt.mm.jjjj. Einfache und doppelte Anführungszeichen werden aus dem Artikelnamen entfernt.

Paging: Für den nächsten Block ItemKeyStart auf den höchsten ItemKey des vorherigen Blocks setzen.

Hinweise

  • Alle Lesezugriffe erfolgen mit NOLOCK; das Ergebnis kann nicht festgeschriebene Daten enthalten.
  • ItemCount begrenzt die Anzahl der Kandidatenartikel, nicht die Anzahl der Ergebniszeilen. Durch die Zeilen je Lagerort können es mehr Zeilen sein; durch die Inner Joins (Lieferant, AddItems, ItemLocationSpecific, Lagerort ohne Sonderlager, Lagerortfilter) können es weniger oder gar keine sein, obwohl weitere Artikel existieren. Ein leeres Ergebnis bedeutet daher nicht zwingend das Ende der Artikelliste; ItemKeyStart sollte über den Blockbereich weitergesetzt werden, statt abzubrechen.
  • Quantity wird über die Auftragspositionsdaten verknüpft: Für Artikel ohne Auftragsposition ist Quantity immer 0, auch wenn Bestand vorhanden ist.
  • Quantity ist die Summe über alle Lagerorte ohne Sonderlager, nicht die Menge des Lagerorts in LocationId (dafür LocationQuantity).
  • Tags beginnt mit einem führenden Leerzeichen (nur das erste Komma wird entfernt); Sonderzeichen wie & werden durch die Verkettung XML-maskiert.
  • Ein leerer oder nur aus Leerzeichen bestehender Wert für LocationIds wird wie NULL behandelt (kein Lagerortfilter). Listeneinträge werden getrimmt und als varchar(10) verglichen.
  • VATLevel: L bei MwStSatz = 2, 0 bei MwStSatz = 3, sonst H. Typ ist immer 0100.
  • Temporäre Tabellen werden über util.TempTableDrop gelöscht (nicht beigefügt).

Parameter

Parameter Typ Standardwert Beschreibung
ItemKeyStart
int 0

Es werden nur Artikel mit einem ItemKey größer als dieser Wert berücksichtigt. 0 für den ersten Block, danach der höchste gelieferte ItemKey.

Beispiel: 0

LocationIds
varchar(max)
string
NULL

Optionale kommagetrennte Liste von Lagerort-IDs (LocID). Es werden nur Zeilen dieser Lagerorte geliefert. NULL oder leer liefert alle Lagerorte ohne Sonderlager.

Beispiel: 001,002

ItemCount
int 1000

Maximale Anzahl der je Aufruf aus items gelesenen Kandidatenartikel (Blockgröße).

Beispiel: 1000

Antwort

Result-Set 1 · Immer (kann leer sein)

Eine Zeile je Artikel und Lagerort mit Lieferanten-, Preis-, Bestands- und Dispositionsdaten, sortiert nach ItemKey.

Spalte Typ Beschreibung
ItemKey int

Interner Artikelschlüssel.

SupplPrice
Kann leer sein
varchar(30)
string

Einkaufspreis des Lieferanten aus AddItems, als Text mit Komma als Dezimaltrennzeichen.

ITemName
Kann leer sein
string

Artikelname ohne einfache und doppelte Anführungszeichen.

VPE decimal

Verpackungseinheit (OrderUnit), 0 wenn nicht gesetzt.

MinStockQty decimal

Mindestbestand des Artikels in diesem Lagerort, 0 wenn nicht gesetzt.

MinOrderQty decimal

Mindestbestellmenge in diesem Lagerort, 0 wenn nicht gesetzt.

SupplNr varchar(4)
string

Lieferantennummer (bevorzugter Lieferant, falls definiert, sonst Standardlieferant des Artikels).

TontrText string

Text der Konfigurationsart (TontrArten) des Artikels, - wenn keine.

ItemNrInt
Kann leer sein
string

Interne Artikelnummer.

ItemNrSuppl
Kann leer sein
string

Lieferantenartikelnummer aus AddItems, ersatzweise die dort hinterlegte interne Artikelnummer.

Quantity int

Gesamte Lagerplatzmenge über alle Lagerorte ohne Sonderlager; 0 wenn keine vorhanden oder der Artikel keine Auftragspositionen hat.

ExportDate varchar(10)
string

Aktuelles Datum im Format tt.mm.jjjj.

Typ varchar(4)
string

Konstanter Satztyp 0100.

SupplName
Kann leer sein
string

Name des Lieferanten.

CreateDate
Kann leer sein
varchar(10)
string

Anlagedatum des Artikels im Format tt.mm.jjjj.

OrderDate varchar(10)
string

Frühestes Bestelldatum einer Auftragsposition des Artikels im Format tt.mm.jjjj, leer wenn keine.

Tags varchar(4000)
string

Kommagetrennte Artikel-Tags (mit führendem Leerzeichen), leer wenn keine.

SupplierDeliveryDays int

Standardlieferzeit des Lieferanten in Tagen, 7 wenn nicht gesetzt.

ACTIVE
Kann leer sein
boolean

Aktiv-Kennzeichen des Artikels (Enabled).

Price
Kann leer sein
varchar(30)
string

Verkaufspreis des Artikels als Text mit Komma als Dezimaltrennzeichen.

VATLevel varchar(1)
string

Mehrwertsteuerstufe: L (ermäßigt, MwStSatz = 2), 0 (null, MwStSatz = 3), sonst H (voll).

IsBundle
Kann leer sein
boolean

Kennzeichen, ob der Artikel ein Bundle ist.

LocationId
Kann leer sein
string

Lagerort-ID (LocID) der lagerortspezifischen Daten.

LocationQuantity
Kann leer sein
decimal

Lagerortspezifische Menge aus ItemLocationSpecific.

TargetStock decimal

Sollbestand in diesem Lagerort, 0 wenn nicht gesetzt.

SafetyStock decimal

Sicherheitsbestand in diesem Lagerort, 0 wenn nicht gesetzt.

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:pixiDispoGetItems>
      <!-- <ItemKeyStart>0</ItemKeyStart> -->
      <!-- <LocationIds>001,002</LocationIds> -->
      <!-- <ItemCount>1000</ItemCount> -->
    </ns1:pixiDispoGetItems>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

items · Lesen AddItems · Lesen TagMatch · Lesen Tag · Lesen Orderlines · Lesen InvBinItem · Lesen InvBin · Lesen Location · Lesen TontrArten · Lesen Suppliers · Lesen ItemLocationSpecific · Lesen
SQL-Objekt:
dbo.pipiDispoGetItems
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben