Postman-Collection
Items Schreiben

pixiSetItemBuyingInfoXML

Aktualisiert Einkaufsdaten wie Mindestbestand, Mindestbestellmenge, Bestelleinheit, Soll- und Sicherheitsbestand für mehrere Artikel aus einem XML-Dokument.

Liest pro Artikel ein Item-Element aus /BuyingInfo/Item (elementbasiert) und schreibt die übergebenen Werte in die Artikelstammdaten, die lagerspezifischen Artikeldaten und die Lieferanten-Artikeldaten.

Ermittlung des Artikels

Ein Artikel kann über ItemKey, ItemNrInt oder EAN identifiziert werden. Die Suche erfolgt in dieser Reihenfolge: über ItemKey, dann über ItemNrInt, dann über EAN. Jeder Treffer überschreibt die Kennungen mit denen des gefundenen Artikels, ein späterer Treffer hat also Vorrang. Einträge, zu denen kein Artikel gefunden wird, werden ohne Meldung übergangen.

Bereinigung der Werte

  • Leere Textfelder (ItemNrInt, EAN, Location, SupplierCode) sowie ein leerer oder mit 0 belegter ItemKey gelten als nicht übergeben.
  • Mengenfelder (MinStockQty, MinOrderQty, OrderUnit, VPE, TargetStock, SafetyStock) werden nur verwendet, wenn sie numerisch sind; andernfalls werden sie ignoriert.
  • OrderUnit und VPE werden zusammengeführt: Ist OrderUnit angegeben, wird dieser Wert für beide verwendet, sonst VPE für beide.
  • Ein negativer TargetStock wird auf 0 gesetzt.
  • Nicht übergebene Felder (NULL) bleiben unverändert.

Was aktualisiert wird

  • MinStockQty: im Artikelstamm (items) nur, wenn keine Location angegeben ist; in ItemLocationSpecific für alle Lager des Artikels, wenn keine Location angegeben ist, sonst nur für dieses Lager.
  • MinOrderQty: gleiche Regel wie MinStockQty; zusätzlich beim Lieferanten-Artikel (AddItems) für den in SupplierCode angegebenen Lieferanten (unabhängig von Location).
  • OrderUnit / VPE: nur im Artikelstamm und nur, wenn keine Location angegeben ist.
  • TargetStock und SafetyStock: nur in ItemLocationSpecific, für alle Lager oder nur für die angegebene Location.

Ergebnis

Liefert pro gefundenem Artikel eine Zeile mit den ermittelten Kennungen und den übernommenen Werten.

Hinweise

  • Alle Änderungen laufen in einer Transaktion (bzw. einem Savepoint, wenn der Aufrufer bereits eine Transaktion geöffnet hat). Bei einem Fehler werden die Änderungen zurückgerollt und der Fehler über log.InsertError protokolliert; dieses Objekt liegt nicht vor, daher ist offen, ob der Fehler an den Aufrufer weitergegeben wird. In diesem Fall wird keine Ergebnismenge geliefert.
  • ISNUMERIC akzeptiert auch Werte wie 1.5 oder 1e3. Solche Werte bestehen die Prüfung, scheitern aber bei der Umwandlung nach int und brechen den gesamten Aufruf mit Rollback ab. Nur ganze Zahlen übergeben.
  • Die Artikelsuche verwendet NOLOCK. Teilen sich mehrere Artikel dieselbe EAN, kann die EAN-Suche einen beliebigen davon wählen und einen Treffer über ItemKey oder ItemNrInt überschreiben.
  • Werte können nicht geleert werden: Ein leeres Element bedeutet "nicht ändern". Zum Zurücksetzen einer Menge 0 übergeben.
  • Location wird in der Ergebnismenge nicht zurückgegeben, und die Zeile zeigt nicht, ob ein Lager- oder Lieferantendatensatz tatsächlich existierte.
  • Der Kopfkommentar ("Set Tags for Items") entspricht nicht der tatsächlichen Funktion der Prozedur.

Parameter

Parameter Typ Standardwert Beschreibung
BuyingXML
varchar(max)
xml
NULL

XML-Dokument mit einem Item-Element pro Artikel unterhalb des Wurzelelements BuyingInfo. Jeder Artikel wird über ItemKey, ItemNrInt oder EAN identifiziert; die übrigen Elemente enthalten die zu setzenden Werte. Location (max. 3 Zeichen) beschränkt lagerspezifische Änderungen auf ein Lager, SupplierCode (max. 4 Zeichen) wählt den Lieferanten-Artikel für MinOrderQty.

Beispiel:

<BuyingInfo>
  <Item>
    <ItemNrInt>A-10045</ItemNrInt>
    <ItemKey>10045</ItemKey>
    <EAN>4006381333931</EAN>
    <MinStockQty>20</MinStockQty>
    <MinOrderQty>50</MinOrderQty>
    <Location>001</Location>
    <OrderUnit>10</OrderUnit>
    <VPE>10</VPE>
    <SupplierCode>L001</SupplierCode>
    <TargetStock>100</TargetStock>
    <SafetyStock>15</SafetyStock>
  </Item>
  <Item>
    <ItemNrInt>A-10046</ItemNrInt>
    <ItemKey/>
    <EAN/>
    <MinStockQty>5</MinStockQty>
    <MinOrderQty/>
    <Location/>
    <OrderUnit/>
    <VPE>6</VPE>
    <SupplierCode/>
    <TargetStock>30</TargetStock>
    <SafetyStock>3</SafetyStock>
  </Item>
</BuyingInfo>

Antwort

Result-Set 1 · Bei Erfolg (kein Fehler während der Verarbeitung)

Eine Zeile pro XML-Eintrag, zu dem ein Artikel gefunden wurde, mit den ermittelten Kennungen und den übernommenen Werten.

Spalte Typ Beschreibung
ItemKey int

Interner Schlüssel des gefundenen Artikels.

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer des gefundenen Artikels.

EAN
Kann leer sein
varchar(13)
string

EAN/UPC des gefundenen Artikels.

MinStockQty
Kann leer sein
varchar(10)
string

Übernommener Mindestbestand; NULL, wenn nicht übergeben.

MinOrderQty
Kann leer sein
varchar(10)
string

Übernommene Mindestbestellmenge; NULL, wenn nicht übergeben.

SupplierCode
Kann leer sein
varchar(4)
string

Lieferantenkürzel aus der Eingabe; NULL, wenn nicht übergeben.

TargetStock
Kann leer sein
varchar(10)
string

Übernommener Sollbestand (negative Werte auf 0 gesetzt); NULL, wenn nicht übergeben.

SafetyStock
Kann leer sein
varchar(10)
string

Übernommener Sicherheitsbestand; NULL, wenn nicht übergeben.

PackingUnit
Kann leer sein
varchar(10)
string

Übernommene Bestell-/Verpackungseinheit (OrderUnit, sonst VPE); NULL, wenn keines übergeben wurde.

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:pixiSetItemBuyingInfoXML>
      <!-- <BuyingXML><![CDATA[<BuyingInfo><Item><ItemNrInt>A-10045</ItemNrInt><ItemKey>10045</ItemKey><EAN>4006381333931</EAN><MinStockQty>20</MinStockQty><MinOrderQty>50</MinOrderQty><Location>001</Location><OrderUnit>10</OrderUnit><VPE>10</VPE><SupplierCode>L001</SupplierCode><TargetStock>100</TargetStock><SafetyStock>15</SafetyStock></Item><Item><ItemNrInt>A-10046</ItemNrInt><ItemKey></ItemKey><EAN></EAN><MinStockQty>5</MinStockQty><MinOrderQty></MinOrderQty><Location></Location><OrderUnit></OrderUnit><VPE>6</VPE><SupplierCode></SupplierCode><TargetStock>30</TargetStock><SafetyStock>3</SafetyStock></Item></BuyingInfo>]]></BuyingXML> -->
    </ns1:pixiSetItemBuyingInfoXML>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

items · Schreiben ItemLocationSpecific · Schreiben AddItems · Schreiben
SQL-Objekt:
dbo.pipiSetItemBuyingInfoXML
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben