Postman-Collection
Items Schreiben

pixiSetItemStatus

Aktiviert oder deaktiviert einen Artikel oder dessen Lieferantenzuordnung und stellt den Artikel für den Shop-Export in die Warteschlange.

Setzt den Status eines Artikels.

  1. Artikel ermitteln. Der Artikel wird in Items über ItemKey (nur wenn ItemKey übergeben wird) oder über ItemNrInt gesucht. Wird kein Artikel gefunden, wird Status 404 geliefert. Werden mehrere Artikel gefunden, wird Status 409 geliefert. Das kann auch passieren, wenn ItemKey und ItemNrInt gemeinsam übergeben werden und auf verschiedene Artikel verweisen.
  2. Status setzen.
    • Ohne SupplierID (oder mit Leerstring): Das Flag Enabled des Artikels in Items wird auf den Wert von Enabled gesetzt.
    • Mit SupplierID: Der Lieferantendatensatz des Artikels in AddItems (über den Artikel und SupplNr = SupplierID) wird gesucht. Bei keinem oder mehreren Treffern wird Status 404 bzw. 409 geliefert. Bei genau einem Treffer wird dessen Flag Active auf Enabled gesetzt. Das Flag Enabled des Artikels selbst bleibt in diesem Fall unverändert.
    • Schlägt das Update fehl, wird Status 500 mit der SQL-Fehlermeldung geliefert.
  3. Bei Erfolg wird der Artikel zur Neuberechnung und zum erzwungenen Export in den Shop in die Warteschlange gestellt. Danach wird der Artikel geliefert, mit ItemKey, ItemNrInt, Enabled, der übergebenen SupplNr und, falls ein Lieferant übergeben wurde, dem Flag Active des Lieferantendatensatzes.

Im Fehlerfall wird stattdessen eine einzelne Zeile mit Status und ErrorMsg geliefert.

Hinweise

  • Leere Fehlermeldung: Wird ItemKey nicht übergeben und der Artikel nicht gefunden, ergibt die 404-Meldung NULL. Grund ist, dass die Meldung ItemKey ohne NULL-Behandlung verkettet, sodass ErrorMsg leer sein kann. Maßgeblich ist Status.
  • Leeres Ergebnis trotz Erfolg: Das Erfolgsergebnis verknüpft Items mit AddItems. Ein Artikel ohne Lieferantendatensatz (AddItems) liefert daher keine Zeile, obwohl das Update erfolgreich war.
  • Nebeneffekt bei Erfolg: Pixi_ExportItemChangesToShop fügt den Artikel mit ForceToExport = 1 in pixi.ItemRecalculateStockQueue ein. Im Fehlerfall wird kein Export eingereiht.
  • Transaktionen und Sperren: Es wird keine explizite Transaktion verwendet. Lesezugriffe nutzen NOLOCK, Updates ROWLOCK.
  • Temporäre Tabellen: Sie werden über util.TempTableDrop gelöscht, dessen Definition nicht beiliegt.

Parameter

Parameter Typ Standardwert Beschreibung
ItemNrInt
varchar(50)
string
NULL

Interne Artikelnummer. Dient zur Suche des Artikels, wenn ItemKey nicht übergeben wird (oder zusätzlich dazu).

Beispiel: A-10045

ItemKey
int NULL

Interner Schlüssel des Artikels. Alternative zu ItemNrInt.

Beispiel: 4711

Enabled
bit
boolean
1

Neuer Status. Er wird in Items.Enabled geschrieben, bzw. in AddItems.Active, wenn SupplierID übergeben wird.

Erlaubte Werte

  • 1 – Artikel aktivieren / Lieferantendatensatz aktivieren
  • 0 – Artikel deaktivieren / Lieferantendatensatz deaktivieren

Beispiel: 0

SupplierID
varchar(4)
string
NULL

Lieferantennummer (SupplNr). Wenn gesetzt, wird nur der Lieferantendatensatz des Artikels in AddItems aktiviert bzw. deaktiviert. Ein Leerstring wird als NULL behandelt.

Beispiel: LIE1

Antwort

Result-Set 1 · Bei Erfolg (Status 200); kann leer sein, wenn der Artikel keinen AddItems-Datensatz hat

Der aktualisierte Artikel. Ohne SupplierID wird eine eindeutige Zeile geliefert, bei der SupplNr und Active NULL sind.

Spalte Typ Beschreibung
ItemKey int

Interner Schlüssel des Artikels

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer

Enabled
Kann leer sein
bit
boolean

Aktuelles Aktiv-Flag des Artikels

SupplNr
Kann leer sein
varchar(4)
string

Übergebene Lieferantennummer oder NULL

Active
Kann leer sein
bit
boolean

Aktiv-Flag des Lieferantendatensatzes. NULL, wenn kein Lieferant übergeben wurde.

Result-Set 2 · Im Fehlerfall (Status 404, 409 oder 500)

Statuszeile mit der Fehlerbeschreibung.

Spalte Typ Beschreibung
Status varchar(3)
string

Fehlercode: 404, 409 oder 500

ErrorMsg
Kann leer sein
varchar(2000)
string

Fehlermeldung; kann NULL sein (siehe Hinweise)

Fehlermeldungen

Status Meldung Ursache
404 Item with ItemNrInt/ItemKey: {ItemNrInt}/{ItemKey} was not found. Kein Artikel passt zu `ItemKey` oder `ItemNrInt`. Wurde `ItemKey` nicht übergeben, ist die Meldung NULL.
409 Item with ItemNrInt: {ItemNrInt} could not be uniquely identified. {RowCount} items found. Mehrere Artikel passen, z. B. wenn `ItemKey` und `ItemNrInt` auf verschiedene Artikel verweisen. Nur einen Identifikator übergeben.
404 Item with ItemNrInt/ItemKey: {ItemNrInt}/{ItemKey} and SupplierID: "{SupplierID}" was not found. Der Artikel hat keinen `AddItems`-Datensatz für den angegebenen Lieferanten.
409 Item with ItemNrInt/ItemKey: {ItemNrInt}/{ItemKey} and SupplierID: "{SupplierID}" could not be uniquely identified. {RowCount} items found. Der Artikel hat mehrere `AddItems`-Datensätze für den angegebenen Lieferanten.
500 {ERROR_MESSAGE()} Das Update von `Items` bzw. `AddItems` ist fehlgeschlagen; der SQL-Fehlertext wird geliefert.

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:pixiSetItemStatus>
      <!-- <ItemNrInt>A-10045</ItemNrInt> -->
      <!-- <ItemKey>4711</ItemKey> -->
      <!-- <Enabled>0</Enabled> -->
      <!-- <SupplierID>LIE1</SupplierID> -->
    </ns1:pixiSetItemStatus>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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