Postman-Collection
Items Schreiben

pixiTagMatchDeleteForItems

Entfernt Tag-Zuordnungen (TagMatch) von Artikeln für eine als XML übergebene Liste von Tag/Artikel-Paaren und liefert je Paar eine Statuszeile.

Löscht Zuordnungen von Artikel-Tags zu Artikeln als Massenoperation.

Eingabe

TagsXML enthält je Artikel ein Item-Element mit einer TagList aus Tag-Elementen. Jedes Tag-Element ist eine Anfrage (Tag/Artikel-Paar). Der Artikel wird entweder über ItemId (Artikelschlüssel) oder über ItemNrInt (interne Artikelnummer, Suche in ItemCode mit Codetyp 2) identifiziert. Ist ItemId angegeben, hat diese Vorrang vor ItemNrInt. Die Werte 0 für TagId/ItemId sowie eine leere ItemNrInt gelten als nicht angegeben.

Prüfung je Paar

  • TagId fehlt oder weder ItemId noch ItemNrInt angegeben → Error / Mandatory parameter is missing.
  • ItemNrInt angegeben, aber nicht gefunden, ItemId nicht in items vorhanden oder TagId kein existierender Tag vom Typ 1 (Artikel-Tag) → Error / One of the provided values is not valid.
  • Tag und Artikel gültig und Zuordnung in TagMatch vorhanden → Zuordnung wird gelöscht, Success / Tag was successfully removed from item.
  • Tag und Artikel gültig, aber keine Zuordnung vorhanden → Warning / Tag is not assigned to that item.

Ausgabe

Eine Ergebnismenge mit einer Zeile je verarbeitetem Tag-Element (sortiert nach der Position im XML) mit TagId, der ermittelten ItemId, der übergebenen ItemNrInt, Status und Message. Ungültige Paare verhindern nicht die Verarbeitung der übrigen Paare.

Hinweise

  • Der gesamte Aufruf läuft in einer Transaktion (XACT_ABORT ON); innerhalb einer bestehenden Transaktion wird stattdessen ein Savepoint gesetzt.
  • Bei einem unerwarteten SQL-Fehler wird die Transaktion zurückgerollt und der Fehler über log.InsertError protokolliert. Die Prozedur liefert in diesem Fall keine Ergebnismenge; eine leere Antwort ist daher als Fehler zu werten.
  • Ist TagsXML nicht angegeben (NULL) oder enthält es keine Tag-Elemente, wird nichts gelöscht und es werden keine Zeilen (bzw. keine Ergebnismenge) geliefert.
  • Sind ItemId und ItemNrInt beide angegeben, wird nur ItemId verwendet; die Übereinstimmung beider Werte wird nicht geprüft.
  • Passt eine ItemNrInt in ItemCode zu mehreren Artikeln, kann ein Paar mehrere Ergebniszeilen erzeugen.
  • Lesezugriffe verwenden NOLOCK, das Löschen ROWLOCK.
  • Es werden nur Tags mit TypeId = 1 (Artikel-Tags) berücksichtigt.

Parameter

Parameter Typ Standardwert Beschreibung
TagsXML
varchar(max)
xml
NULL

XML-Dokument mit den Artikeln und den zu entfernenden Tags. Pfad /Tags/Item/TagList/Tag, elementbasiert: Item enthält ItemId oder ItemNrInt, jedes Tag enthält TagId.

Beispiel:

<Tags>
  <Item>
    <ItemId>1234</ItemId>
    <ItemNrInt/>
    <TagList>
      <Tag>
        <TagId>5</TagId>
      </Tag>
      <Tag>
        <TagId>7</TagId>
      </Tag>
    </TagList>
  </Item>
  <Item>
    <ItemId>0</ItemId>
    <ItemNrInt>A-10001</ItemNrInt>
    <TagList>
      <Tag>
        <TagId>5</TagId>
      </Tag>
    </TagList>
  </Item>
</Tags>

Antwort

Result-Set 1 · Bei Erfolg (kein unerwarteter SQL-Fehler); eine Zeile je Tag-Element im XML

Verarbeitungsergebnis je angefragtem Tag/Artikel-Paar, sortiert nach Position im XML.

Spalte Typ Beschreibung
TagId
Kann leer sein
int

Tag-ID aus dem XML (NULL, wenn fehlend oder 0).

ItemId
Kann leer sein
int

Artikelschlüssel, entweder aus dem XML oder über ItemNrInt ermittelt.

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer wie im XML übergeben.

Status varchar(254)
string

Success, Warning oder Error.

Message varchar(2000)
string

Meldungstext zum Status.

Fehlermeldungen

Status Meldung Ursache
Error Mandatory parameter is missing Das `Tag`-Element hat keine `TagId` (oder 0), oder das `Item` hat weder `ItemId` noch `ItemNrInt`. Tag und Artikelkennung angeben.
Error One of the provided values is not valid Die `ItemNrInt` wurde nicht gefunden, die `ItemId` existiert nicht in `items` oder die `TagId` ist kein existierender Artikel-Tag (Typ 1).
Warning Tag is not assigned to that item Tag und Artikel sind gültig, aber es gibt keine zu löschende Zuordnung in `TagMatch`.
Error Something went wrong, an undefined error occurred Ersatzmeldung für eine Zeile ohne definierten Status; im Normalbetrieb nicht zu erwarten.

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:pixiTagMatchDeleteForItems>
      <!-- <TagsXML><![CDATA[<Tags><Item><ItemId>1234</ItemId><ItemNrInt></ItemNrInt><TagList><Tag><TagId>5</TagId></Tag><Tag><TagId>7</TagId></Tag></TagList></Item><Item><ItemId>0</ItemId><ItemNrInt>A-10001</ItemNrInt><TagList><Tag><TagId>5</TagId></Tag></TagList></Item></Tags>]]></TagsXML> -->
    </ns1:pixiTagMatchDeleteForItems>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

ItemCode · Lesen items · Lesen Tag · Lesen TagMatch · Schreiben
SQL-Objekt:
dbo.pipiTagMatchDeleteForItems
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben