Postman-Collection
Items Schreiben

pixiDeleteItemSupplier

Löscht die Lieferantenzuordnung (AddItems-Datensatz) eines Artikels für einen Lieferanten, sofern keine offenen Lieferantenbestellungen bestehen.

Entfernt genau einen Artikel-Lieferanten-Datensatz aus AddItems.

  1. ItemKey = 0 wird als NULL behandelt, eine leere ItemNrInt als NULL.
  2. Kandidaten-Artikel sind alle Zeilen in Items, bei denen ItemNrInt = @ItemNrInt oder ItemKey = @ItemKey oder EANUPC = @EAN gilt. Die Kriterien sind mit ODER verknüpft, daher können mehrere Artikel Kandidaten werden.
  3. In AddItems werden die Datensätze dieser Kandidaten-Artikel zum Lieferanten @SupplNr gesucht. Ist @EAN angegeben, muss zusätzlich EanUpc des AddItems-Datensatzes übereinstimmen.
  4. Wird kein Datensatz gefunden, kommt der Fehler No records found with provided parameters. zurück. Bei mehr als einem Datensatz kommt der Fehler Item could not be uniquely identified. zurück. In beiden Fällen wird nichts geändert.
  5. Ist einer der Kandidaten-Artikel in einer Lieferantenbestellung dieses Lieferanten enthalten, deren Status als offen gekennzeichnet ist (IsAllOpen = 1, z. B. NEW, BES, CON), wird ein Fehler geliefert und nichts gelöscht.
  6. Andernfalls wird der AddItems-Datensatz in einer Transaktion gelöscht (bzw. mit Savepoint, wenn der Aufrufer bereits eine offene Transaktion hat).
  7. Wurde @EAN angegeben, entspricht der Haupt-Barcode Items.EanUpc dem Wert @EAN und trägt kein AddItems-Datensatz der Kandidaten-Artikel diese EAN mehr, wird Items.EanUpc durch den EanUpc eines der verbleibenden AddItems-Datensätze des Artikels ersetzt. Datensätze anderer Lieferanten als MGS werden bevorzugt.
  8. Es wird eine einzelne Statuszeile mit STATUS und MESSAGE geliefert.

Hinweise

  • Alle Abfragen verwenden NOLOCK, daher können die Eindeutigkeits- und Bestellprüfungen auch nicht festgeschriebene Daten sehen.
  • Da die Artikelkriterien mit ODER verknüpft sind, erweitert die Angabe mehrerer Kennungen, die auf verschiedene Artikel zeigen, die Kandidatenmenge. Die Prüfung auf offene Lieferantenbestellungen und die Barcode-Aktualisierung gelten für alle Kandidaten-Artikel, nicht nur für den Artikel, dessen AddItems-Datensatz gelöscht wurde.
  • Bleibt beim Ersetzen des Barcodes kein AddItems-Datensatz für einen Artikel übrig, wird Items.EanUpc auf NULL gesetzt.
  • Ein leerer String für EAN wird nicht in NULL umgewandelt, sondern als Filterwert verwendet.
  • Die Erfolgsmeldung enthält ItemNrInt nur, wenn dieser Wert übergeben wurde; bei Aufruf nur mit ItemKey oder EAN bleibt dieser Teil leer.
  • Die Erfolgszeile wird erzeugt, bevor die temporären Tabellen über util.TempTableDrop (nicht beigefügt) gelöscht werden und bevor der Commit erfolgt. Tritt dabei ein Fehler auf, kann zusätzlich eine Fehlerzeile folgen.
  • Fehler im Lösch-/Update-Block werden abgefangen, die Transaktion (bzw. der Savepoint) wird zurückgerollt und statt eines SQL-Fehlers eine Error-Zeile geliefert.

Parameter

Parameter Typ Standardwert Beschreibung
ItemKey
int NULL

Interner Schlüssel des Artikels. 0 gilt als nicht gesetzt.

Beispiel: 12345

ItemNrInt
varchar(50)
string
NULL

Interne Artikelnummer. Ein leerer String gilt als nicht gesetzt.

Beispiel: ART-10045

SupplNr
Pflicht
varchar(4)
string
–

Lieferantennummer des Lieferanten, dessen Zuordnung gelöscht wird.

Beispiel: ABC

EAN
varchar(13)
string
NULL

EAN/UPC-Barcode. Dient zur Suche des Artikels über Items.EANUPC und schränkt, wenn gesetzt, den AddItems-Datensatz zusätzlich auf diese EAN ein. Löst außerdem das Ersetzen des Haupt-Barcodes aus, wenn dieser nicht mehr verwendet wird.

Beispiel: 4006381333931

Antwort

Result-Set 1 · Immer; genau eine Statuszeile (Erfolg oder Fehler).

Statuszeile mit dem Ergebnis des Aufrufs.

Spalte Typ Beschreibung
STATUS varchar(7)
string

Success oder Error.

MESSAGE
Kann leer sein
varchar(max)
string

Erfolgs- oder Fehlertext.

Fehlermeldungen

Status Meldung Ursache
Error No records found with provided parameters. Kein `AddItems`-Datensatz passt zu den angegebenen Artikelkennungen, `SupplNr` und (falls gesetzt) `EAN`. Kennungen und Lieferantennummer prüfen.
Error Item could not be uniquely identified. Mehr als ein `AddItems`-Datensatz passt, z. B. weil die Kennungen auf verschiedene Artikel zeigen oder der Artikel mehrere Datensätze für diesen Lieferanten hat. Suche eingrenzen, etwa durch Angabe von `EAN` oder nur `ItemKey`.
Error Open supplier orders were found connected to the item. Item supplier can not be deleted. Ein Kandidaten-Artikel ist in einer Lieferantenbestellung dieses Lieferanten mit offenem Status (`IsAllOpen` = 1) enthalten. Zuerst die Lieferantenbestellungen abschließen.
Error Unexpected error: "{error message}" Beim Löschen des Datensatzes oder beim Aktualisieren des Barcodes ist ein SQL-Fehler aufgetreten; alle Änderungen des Aufrufs wurden zurückgerollt.

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:pixiDeleteItemSupplier>
      <!-- <ItemKey>12345</ItemKey> -->
      <!-- <ItemNrInt>ART-10045</ItemNrInt> -->
      <SupplNr>ABC</SupplNr>
      <!-- <EAN>4006381333931</EAN> -->
    </ns1:pixiDeleteItemSupplier>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Items · Schreiben AddItems · Schreiben Suppliers · Lesen SupplierOrder · Lesen SupplierOrderLine · Lesen SupplierOrderStatus · Lesen
SQL-Objekt:
dbo.pipiDeleteItemSupplier
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben