Postman-Collection
Items Schreiben

pixiSetItemEan

Setzt einen neuen EAN/UPC-Code für genau einen Artikel, der über Artikelschlüssel, interne Artikelnummer, Lieferantenartikelnummer oder aktuelle EAN ermittelt wird.

Ersetzt den EAN/UPC-Code eines einzelnen Artikels.

  1. Mindestens ein Identifikator muss übergeben werden: ItemKey, ItemNrInt, OldEan oder ItemNrSuppl. Andernfalls lautet das Ergebnis 401 No item ID provided.

  2. Die Prozedur zählt die Artikel, auf die irgendeiner der übergebenen Identifikatoren passt. Die Identifikatoren werden mit OR verknüpft, nicht mit AND.

    • Kein Treffer: 402 Item not found.
    • Mehr als ein Treffer: 403 More than one item is found. Das gilt auch, wenn mehrere Identifikatoren übergeben werden, die auf unterschiedliche Artikel zeigen.
  3. Bei genau einem Treffer wird die Einstellung BMECatImport_Update_EANUPC geprüft. Ist sie 0 oder nicht vorhanden, wird nichts geändert und das Ergebnis lautet 405 ....

  4. Andernfalls wird in einer Transaktion EANUPC auf NewEan gesetzt:

    • in Items für den Artikel,
    • in AddItems für alle Datensätze, deren ItemRef auf den Artikel verweist.

    Bei Erfolg lautet das Ergebnis 200 Item updated. Bei einem SQL-Fehler wird die Transaktion zurückgerollt und das Ergebnis lautet 404 Unexpected error: ....

Der Ergebnistext wird immer in den Ausgabeparameter ResultMessage geschrieben. Zusätzlich wird er als einzeilige Ergebnismenge zurückgegeben, sofern SupressDataset nicht 1 ist.

Hinweise

  • Fehler werden nicht ausgelöst. Sie werden als Text zurückgegeben, dessen erste drei Zeichen ein Statuscode sind (200, 401–405). Aufrufer sollten dieses Präfix auswerten.
  • Die Einstellung BMECatImport_Update_EANUPC wird über fpixi_GetSetting gelesen. Eine fehlende Einstellung gilt als 0; die Einstellung muss also mit einem Wert ungleich 0 vorhanden sein.
  • NewEan wird nicht geprüft:
    • keine Prüfziffer- oder Formatprüfung,
    • keine Eindeutigkeitsprüfung gegenüber anderen Artikeln,
    • NULL wird nicht abgewiesen und würde die EAN leeren.
  • Da ItemKey mit '' verglichen wird, gilt ein ItemKey von 0 als "nicht übergeben".
  • Die Artikelsuche erfolgt mit NOLOCK.
  • Der Text einer 404-Meldung wird auf 256 Zeichen gekürzt.

Parameter

Parameter Typ Standardwert Beschreibung
ItemKey
int NULL

Interner Schlüssel des Artikels (Items.ItemKey). Optionaler Identifikator.

Beispiel: 12345

ItemNrInt
varchar(50)
string
NULL

Interne Artikelnummer (Items.ItemNrInt). Optionaler Identifikator.

Beispiel: ART-10001

OldEan
varchar(13)
string
NULL

Aktuelle EAN/UPC des Artikels (Items.EANUPC). Optionaler Identifikator.

Beispiel: 4006381333931

ItemNrSuppl
varchar(50)
string
NULL

Lieferantenartikelnummer (Items.ItemNrSuppl). Optionaler Identifikator.

Beispiel: SUP-778899

NewEan
Pflicht
varchar(13)
string
–

Neuer EAN/UPC-Code, der in Items und AddItems gespeichert wird.

Beispiel: 4012345678901

SupressDataset
bit
boolean
0

Steuert, ob das Ergebnis zusätzlich als Ergebnismenge zurückgegeben wird. NULL wird als 0 behandelt.

Erlaubte Werte

  • 0 – Ergebnismeldung als Ergebnismenge zurückgeben.
  • 1 – Keine Ergebnismenge zurückgeben; das Ergebnis steht nur im Ausgabeparameter.

Beispiel: 0

ResultMessage
OUTPUT
varchar(256)
string
NULL

Ausgabe: Statuscode gefolgt von einem Meldungstext, z. B. 200 Item updated.

Antwort

Result-Set 1 · Wenn SupressDataset 0 oder NULL ist

Eine Zeile mit der Ergebnismeldung, sowohl bei Erfolg als auch bei Fehlern.

Spalte Typ Beschreibung
ResultMessage varchar(256)
string

Statuscode (200, 401–405) gefolgt von einem Meldungstext.

Fehlermeldungen

Status Meldung Ursache
401 401 No item ID provided Keiner der Parameter `ItemKey`, `ItemNrInt`, `OldEan` oder `ItemNrSuppl` wurde übergeben (oder alle sind leer bzw. 0). Mindestens einen Identifikator übergeben.
402 402 Item not found Kein Artikel passt zu einem der übergebenen Identifikatoren.
403 403 More than one item is found Die Identifikatoren treffen auf mehr als einen Artikel zu, z. B. bei nicht eindeutiger EAN oder Lieferantenartikelnummer oder bei mehreren Identifikatoren für unterschiedliche Artikel. Einen eindeutigen Identifikator wie `ItemKey` verwenden.
404 404 Unexpected error: {ErrorNumber} {ErrorMessage} Beim Update ist ein SQL-Fehler aufgetreten. Die Transaktion wird zurückgerollt; es wird nichts geändert.
405 405 Setting BMECatImport_Update_EANUPC is off which is preventing the EAN from being updated Die Einstellung `BMECatImport_Update_EANUPC` ist `0` oder nicht vorhanden. Die Einstellung aktivieren, um EAN-Änderungen zu erlauben.

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:pixiSetItemEan>
      <!-- <ItemKey>12345</ItemKey> -->
      <!-- <ItemNrInt>ART-10001</ItemNrInt> -->
      <!-- <OldEan>4006381333931</OldEan> -->
      <!-- <ItemNrSuppl>SUP-778899</ItemNrSuppl> -->
      <NewEan>4012345678901</NewEan>
      <!-- <SupressDataset>0</SupressDataset> -->
      <!-- <ResultMessage>?</ResultMessage> -->
    </ns1:pixiSetItemEan>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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