Postman-Collection
General Schreiben

pixiTagDelete

Löscht einen Tag, der über seine ID oder über Typ und Name bestimmt wird, und entfernt alle Zuordnungen zu Artikeln oder Aufträgen.

Löscht einen Tag aus Tag zusammen mit allen Zuordnungen in TagMatch. Tags dienen zur Kennzeichnung von Objekten wie Artikeln oder Aufträgen.

Der Tag kann auf zwei Arten bestimmt werden:

  • über TagId oder
  • über die Kombination aus TypeId und Name. Beide Werte sind gemeinsam erforderlich.

Die Parameter werden in dieser Reihenfolge geprüft:

  1. Fehlen alle drei Parameter oder wird nur einer von TypeId und Name übergeben, liefert der Aufruf einen Fehler wegen fehlender Pflichtparameter.
  2. Wird TagId übergeben, existiert aber kein Tag mit dieser ID, lautet die Meldung Tag does not exist.
  3. Wird TagId nicht übergeben und passt kein Tag zu TypeId und Name, lautet die Meldung ebenfalls Tag does not exist.
  4. Ist der gefundene Tag ein System-Tag (IsSystemTag = 1), kann er nicht gelöscht werden.
  5. Werden TagId sowie TypeId/Name übergeben und verweisen sie auf zwei verschiedene Tags, liefert der Aufruf einen Fehler.

Sind alle Prüfungen bestanden, werden zuerst alle TagMatch-Zeilen des Tags gelöscht. Dadurch wird der Tag von allen zugeordneten Objekten entfernt. Danach wird der Tag selbst gelöscht. Der Aufruf liefert immer genau eine Zeile mit Status und Message.

Hinweise

  • Der Aufruf läuft in einer eigenen Transaktion. Ist bereits eine Transaktion offen, wird stattdessen ein Savepoint verwendet. Bei einem unerwarteten Fehler werden die Änderungen zurückgerollt und der Fehler über log.InsertError protokolliert. Zurückgegeben wird dann Status = Error mit den ersten 80 Zeichen der SQL-Fehlermeldung.
  • Fehler werden nie als SqlMessage ausgelöst. Die Spalte Status ist daher immer auszuwerten.
  • Stolperfalle: Wird TagId zusammen mit einem Paar aus TypeId/Name übergeben, zu dem kein Tag existiert, greift die Konfliktprüfung nicht. In diesem Fall wird der Tag mit TagId gelöscht.
  • Wird TagId zusammen mit nur TypeId oder nur Name übergeben, erscheint der Fehler wegen fehlender Pflichtparameter, obwohl TagId allein genügen würde.
  • Die Prüfungen lesen Tag mit NOLOCK. Die Löschvorgänge verwenden ROWLOCK.
  • Die Bedeutung der TypeId-Werte (z. B. Artikel- oder Auftrags-Tags) ist in diesem Code nicht festgelegt.

Parameter

Parameter Typ Standardwert Beschreibung
TagId
int NULL

ID des zu löschenden Tags. Alternative zur Kombination aus TypeId und Name.

Beispiel: 42

TypeId
int NULL

Typ des Tags (Tag.TypeId). Muss zusammen mit Name übergeben werden, wenn der Tag über den Namen bestimmt wird.

Beispiel: 1

Name
varchar(50)
string
NULL

Name des Tags (Tag.Name). Muss zusammen mit TypeId übergeben werden.

Beispiel: Sale2024

Antwort

Result-Set 1 · Immer

Eine Statuszeile mit dem Ergebnis des Löschvorgangs.

Spalte Typ Beschreibung
Status varchar(10)
string

Success, wenn der Tag gelöscht wurde, sonst Error.

Message varchar(100)
string

Erfolgsmeldung oder Fehlerbeschreibung.

Fehlermeldungen

Status Meldung Ursache
Error Tag could not be deleted. Mandatory parameters TypeId or Name or TagId are missing Es wurde kein Parameter übergeben oder nur einer von `TypeId` und `Name`. Entweder `TagId` oder `TypeId` und `Name` gemeinsam übergeben.
Error Tag could not be deleted, Tag does not exist Es existiert kein Tag mit der angegebenen `TagId` oder, wenn `TagId` fehlt, kein Tag mit `TypeId` und `Name`.
Error System Tags (IsSystemTag) cannot be deleted Der gefundene Tag ist als System-Tag markiert (`IsSystemTag` = 1). System-Tags können nicht gelöscht werden.
Error Tag could not be deleted, use either TagId parameter or combination of TypeId and Name parameters `TagId` und `TypeId`/`Name` verweisen auf zwei verschiedene vorhandene Tags. Nur eine Art der Identifikation verwenden.
Error Unexpected error: "{error message}" Beim Löschen ist ein unerwarteter SQL-Fehler aufgetreten, z. B. ein Sperr- oder Constraint-Problem. 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:pixiTagDelete>
      <!-- <TagId>42</TagId> -->
      <!-- <TypeId>1</TypeId> -->
      <!-- <Name>Sale2024</Name> -->
    </ns1:pixiTagDelete>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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