Postman-Collection
Items Schreiben

pixiSetItemSupplier

Legt die Lieferantenzuordnung (AddItems-Zeile) eines Artikels an oder aktualisiert sie, inklusive Lieferantenpreis, Lieferanten-Artikelnummer, EAN und Bestelleinstellungen.

Pflegt die Lieferantendaten eines Artikels in AddItems für den in SupplNr angegebenen Lieferanten.

Prüfungen

  1. ItemKey = 0 sowie leere Zeichenketten in EAN, ItemNrSuppl und ItemNrInt werden als NULL behandelt.
  2. Werden ItemKey und ItemNrInt gemeinsam übergeben, müssen beide in items zum selben Artikel gehören.
  3. Der Lieferant SupplNr muss in Suppliers existieren.
  4. Mindestens einer der Parameter ItemKey, EAN, ItemNrSuppl oder ItemNrInt muss angegeben sein.

Ermittlung des Artikels Der Artikel wird in den vorhandenen AddItems-Zeilen gesucht (verknüpft mit items). Eine Zeile passt, wenn eine dieser Bedingungen zutrifft:

  • ItemRef = ItemKey
  • EANUPC = EAN
  • ItemNrInt = ItemNrInt
  • ItemNrSuppl = ItemNrSuppl und SupplNr = SupplNr

Es muss genau ein Artikel gefunden werden, sonst wird eine Fehlerzeile geliefert.

  • Bei AddEAN = 0 ist es ein Fehler, wenn für den Lieferanten mehr als eine passende AddItems-Zeile existiert.
  • Bei AddEAN = 1 wird eine Warnung geliefert, wenn bereits eine Zeile mit derselben EAN und demselben Lieferanten existiert.

Schreiben

  • Bei PreferredSupplier = 1 wird zuerst PreferredSupplier auf allen AddItems-Zeilen des Artikels auf 0 gesetzt, damit nur eine Zeile bevorzugt bleibt.
  • Bei AddEAN = 0 und vorhandener passender AddItems-Zeile des Lieferanten wird die älteste Zeile (kleinstes UpdateDate) aktualisiert. Nicht übergebene Parameter behalten die bisherigen Werte. Für Preis, Lieferanten-Artikelnummer und EAN dienen die Werte des Artikelstamms als Rückfall. Rückgabe: Record updated.
  • Andernfalls (noch keine Zeile für diesen Lieferanten oder AddEAN = 1) wird eine neue AddItems-Zeile angelegt. Die Werte stammen aus den Parametern, mit Rückfall auf den Artikelstamm (EANUPC, ItemNrSuppl, SupplPrice). ItemNrInt, IntLinkNR1, IntLinkNR und Price werden vom Artikel übernommen, AutoPrice wird auf 0 gesetzt. Rückgabe: New record inserted.

Der Aufruf liefert immer genau eine Statuszeile mit Status und Message.

Hinweise

  • Der Artikel muss bereits mindestens eine AddItems-Zeile besitzen. Die Suche läuft nur über AddItems. Ein Artikel ohne Lieferantenzeile liefert daher No items found with given parameters., auch wenn ItemKey gültig ist.
  • Bei AddEAN = 1 mit einer neuen EAN lässt sich der Artikel nur über einen vorhandenen Wert finden. Daher ItemKey oder ItemNrInt übergeben, da die neue EAN in AddItems noch nicht existiert.
  • Die Suchbedingungen sind mit OR verknüpft. Werden mehrere Kennungen übergeben, die auf verschiedene Artikel zeigen, folgt More then one item was identified ....
  • Beim Anlegen einer neuen Zeile werden MinOrderQty und SupplDeliveryTime nur aus den Parametern übernommen (NULL, wenn nicht angegeben). OrderOnlyPackageUnits und PreferredSupplier sind standardmäßig 0.
  • In der Erfolgsmeldung werden NULL-Werte nicht behandelt. Ist ItemNrSuppl oder EANUPC im Ergebnis NULL, ist Message NULL.
  • Die Schreibzugriffe laufen in einer Transaktion. Bei bereits offener Transaktion des Aufrufers wird stattdessen ein Savepoint gesetzt. Im Fehlerfall werden die Änderungen zurückgerollt, der Fehler wird über log.InsertError protokolliert (Definition nicht beigefügt) und eine Error-Zeile mit dem SQL-Fehlertext geliefert.
  • Lesezugriffe verwenden NOLOCK, Updates ROWLOCK.

Parameter

Parameter Typ Standardwert Beschreibung
ItemKey
int NULL

Interner Schlüssel des Artikels (items.ItemKey). 0 wird als NULL behandelt.

Beispiel: 10452

ItemNrInt
varchar(50)
string
NULL

Interne Artikelnummer. Wird zusätzlich ItemKey übergeben, müssen beide zum selben Artikel gehören. Leere Zeichenkette wird als NULL behandelt.

Beispiel: ART-100245

SupplNr
Pflicht
varchar(4)
string
–

Lieferantennummer. Sie muss in Suppliers existieren und bestimmt, welche AddItems-Zeile aktualisiert oder angelegt wird.

Beispiel: L001

SupplPrice
money
decimal
NULL

Einkaufspreis beim Lieferanten. Ohne Angabe bleibt der bisherige Wert erhalten; bei neuer Zeile wird der Wert aus dem Artikelstamm verwendet.

Beispiel: 12.50

EAN
varchar(13)
string
NULL

EAN/UPC. Dient zur Suche des Artikels und wird in AddItems.EANUPC gespeichert. Leere Zeichenkette wird als NULL behandelt.

Beispiel: 4006381333931

ItemNrSuppl
varchar(50)
string
NULL

Artikelnummer des Lieferanten. Dient nur zusammen mit SupplNr zur Suche und wird in AddItems.ItemNrSuppl gespeichert. Leere Zeichenkette wird als NULL behandelt.

Beispiel: LF-4711

AddEAN
bit
boolean
0

Bei 1 wird immer eine neue AddItems-Zeile angelegt (z. B. für eine zusätzliche EAN), statt eine vorhandene zu aktualisieren.

Erlaubte Werte

  • 0 – Vorhandene Zeile des Lieferanten aktualisieren oder anlegen, falls keine existiert.
  • 1 – Neue Zeile anlegen. Warnung, wenn dieselbe EAN für den Lieferanten bereits existiert.

Beispiel: 0

PreferredSupplier
smallint
int
NULL

Kennzeichen für den bevorzugten Lieferanten. Bei 1 werden alle anderen AddItems-Zeilen des Artikels auf 0 gesetzt. Ohne Angabe bleibt der Wert beim Update erhalten; eine neue Zeile erhält 0.

Erlaubte Werte

  • 1 – Als bevorzugten Lieferanten markieren und das Kennzeichen auf allen anderen Zeilen des Artikels zurücksetzen.
  • 0 – Nicht bevorzugt; andere Zeilen bleiben unverändert.

Beispiel: 1

MinOrderQty
int NULL

Mindestbestellmenge beim Lieferanten. Ohne Angabe bleibt der bisherige Wert erhalten; eine neue Zeile erhält NULL.

Beispiel: 10

OnlyPU
bit
boolean
NULL

Nur in Verpackungseinheiten bestellen (OrderOnlyPackageUnits). Ohne Angabe bleibt der bisherige Wert erhalten; eine neue Zeile erhält 0.

Beispiel: 0

ItemDeliveryTime
int NULL

Lieferzeit des Lieferanten (SupplDeliveryTime). Ohne Angabe bleibt der bisherige Wert erhalten; eine neue Zeile erhält NULL.

Beispiel: 5

Antwort

Result-Set 1 · Immer; genau eine Statuszeile (Fehler, Warnung, Update- oder Insert-Ergebnis).

Statuszeile mit dem Ergebnis des Aufrufs.

Spalte Typ Beschreibung
Status varchar(19)
string

Error, Warning, Record updated oder New record inserted.

Message
Kann leer sein
varchar
string

Fehlertext oder bei Erfolg die gespeicherten Werte im Format SupplPrice:… ItemNrSuppl:… EANUPC:…. NULL, wenn einer der verketteten Werte NULL ist.

Fehlermeldungen

Status Meldung Ursache
Error ItemNrInt {ItemNrInt} not match to ItemKey {ItemKey} `ItemKey` und `ItemNrInt` wurden gemeinsam übergeben, gehören aber nicht zum selben Artikel. Nur einen Wert übergeben oder die Werte korrigieren.
Error Supplier with SupplNr:{SupplNr} does not exist. In `Suppliers` existiert kein Lieferant mit der angegebenen `SupplNr`.
Error Please specify at least one parameter. Keiner der Parameter `ItemKey`, `EAN`, `ItemNrSuppl`, `ItemNrInt` wurde übergeben.
Error More then one item was identified with the given parameters. Die Kennungen treffen auf mehrere Artikel oder (bei `AddEAN = 0`) auf mehrere `AddItems`-Zeilen desselben Lieferanten zu. Eine eindeutigere Kennung wie `ItemKey` verwenden.
Warning Item with EANUPC: {EAN} and Supplier number "{SupplNr}" already exists. Bei `AddEAN = 1` existiert bereits eine `AddItems`-Zeile mit dieser EAN und diesem Lieferanten; es wird nichts angelegt.
Error No items found with given parameters. Keine `AddItems`-Zeile passt zu den Kennungen. Tritt auch auf, wenn der Artikel existiert, aber noch keine `AddItems`-Zeile hat.
Error {ERROR_MESSAGE()} Beim Aktualisieren oder Anlegen ist ein SQL-Fehler aufgetreten. Die Transaktion wird zurückgerollt und der Fehler protokolliert.

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:pixiSetItemSupplier>
      <!-- <ItemKey>10452</ItemKey> -->
      <!-- <ItemNrInt>ART-100245</ItemNrInt> -->
      <SupplNr>L001</SupplNr>
      <!-- <SupplPrice>12.50</SupplPrice> -->
      <!-- <EAN>4006381333931</EAN> -->
      <!-- <ItemNrSuppl>LF-4711</ItemNrSuppl> -->
      <!-- <AddEAN>0</AddEAN> -->
      <!-- <PreferredSupplier>1</PreferredSupplier> -->
      <!-- <MinOrderQty>10</MinOrderQty> -->
      <!-- <OnlyPU>0</OnlyPU> -->
      <!-- <ItemDeliveryTime>5</ItemDeliveryTime> -->
    </ns1:pixiSetItemSupplier>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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