Postman-Collection
Suppliers Schreiben

pixiSupplierOrderLineDelete

Löscht eine oder mehrere Lieferantenbestellpositionen und liefert eine Statuszeile mit SUCCESS, WARNING oder ERROR.

Löscht Lieferantenbestellpositionen anhand ihrer IDs. Das eigentliche Löschen übernimmt die interne Prozedur pixi.SupplierOrderLineDelete. Laut Kopfkommentar wird dabei gegebenenfalls auch die Lieferantenbestellung aktualisiert.

Ablauf:

  1. Eine Transaktion wird geöffnet. Ist bereits eine äußere Transaktion offen, wird stattdessen ein Savepoint gesetzt.

  2. Der Benutzer wird ermittelt. Ohne UserId wird die ID über inf.UserGetByName aus UserName bestimmt. Existiert der Name nicht, wird die ID des Benutzers pixiAdministration verwendet.

  3. Die zu löschenden Positionen werden gesammelt:

    • die einzelne ID aus SupplierOrderLineId (der Wert 0 wird wie NULL behandelt);
    • alle IDs aus der kommagetrennten Liste SupplierOrderLineIds. Die Elemente werden getrimmt, leere Elemente ignoriert und Duplikate entfernt.

    Beide Parameter lassen sich kombinieren.

  4. pixi.SupplierOrderLineDelete wird mit Benutzer-ID, Einzel-ID und ID-Liste aufgerufen.

  5. Es wird geprüft, ob eine der angeforderten IDs noch in SupplierOrderLine existiert. In diesem Fall lautet das Ergebnis WARNING mit der Meldung Some Purchase Orderlines items from list were not deleted., sonst SUCCESS.

  6. Die Transaktion wird bestätigt und eine Statuszeile mit ReturnCode und ErrorMessage geliefert.

Tritt ein Fehler auf, wird die Transaktion zurückgerollt und eine Zeile mit ReturnCode = ERROR und dem SQL-Fehlertext zurückgegeben.

Hinweise

  • Die Definition von pixi.SupplierOrderLineDelete liegt nicht vor. Offen bleibt daher:
    • welche Tabellen sie ändert;
    • unter welchen Bedingungen sie das Löschen einer Position verweigert, etwa bei bereits gebuchtem Wareneingang;
    • ob sie den Kopf der Lieferantenbestellung aktualisiert.
  • WARNING führt nicht zu einem Rollback. Löschbare Positionen bleiben gelöscht und die Transaktion wird bestätigt.
  • Die Existenzprüfung nach dem Löschen liest SupplierOrderLine mit NOLOCK.
  • Jedes nicht leere Element von SupplierOrderLineIds muss eine Ganzzahl sein. Ein nicht numerisches Element führt zu einem Konvertierungsfehler. Der gesamte Aufruf wird dann zurückgerollt und liefert ERROR.
  • AppName ist Pflicht, wird von der Prozedur aber nicht verwendet.
  • UserName hat keinen Standardwert und muss immer übergeben werden, auch wenn UserId gesetzt ist.
  • Läuft die Prozedur innerhalb einer äußeren Transaktion, liefert sie bei Erfolg keine Statuszeile. Das betrifft normale SOAP-Aufrufe nicht.
  • Tritt innerhalb einer äußeren, noch bestätigbaren Transaktion ein Fehler auf, wird der Savepoint nicht zurückgerollt.

Parameter

Parameter Typ Standardwert Beschreibung
AppName
Pflicht
varchar(255)
string
–

Name der aufrufenden Anwendung. Pflichtparameter, wird von der Prozedur aber nicht verwendet.

Beispiel: MyShopConnector

UserId
int NULL

ID des Pixi-Benutzers, der das Löschen ausführt. Bei NULL wird die ID aus UserName ermittelt.

Beispiel: 12

UserName
Pflicht
varchar(50)
string
–

Pixi-Benutzername. Dient zur Ermittlung der Benutzer-ID, wenn UserId nicht gesetzt ist. Existiert der Name nicht, wird der Benutzer pixiAdministration verwendet.

Beispiel: api.user

SupplierOrderLineId
int NULL

ID einer einzelnen zu löschenden Lieferantenbestellposition. 0 wird wie NULL behandelt.

Beispiel: 45871

SupplierOrderLineIds
varchar(8000)
string
–

Kommagetrennte Liste der zu löschenden Lieferantenbestellpositions-IDs. Leerzeichen um die Elemente werden entfernt, leere Elemente ignoriert. Alle Elemente müssen Ganzzahlen sein. Kombinierbar mit SupplierOrderLineId.

Beispiel: 45872,45873,45874

Antwort

Result-Set 1 · Bei normalen SOAP-Aufrufen immer. Bei Erfolg innerhalb einer äußeren Transaktion nicht geliefert.

Statuszeile mit dem Ergebnis des Löschvorgangs.

Spalte Typ Beschreibung
ReturnCode varchar(20)
string

SUCCESS, wenn alle angeforderten Positionen gelöscht wurden. WARNING, wenn mindestens eine angeforderte Position noch existiert. ERROR, wenn ein Fehler auftrat und die Transaktion zurückgerollt wurde.

(Hinweis: Der englische Begriff steht für den Rückgabewert; die Bedeutung ist identisch.)

ErrorMessage
Kann leer sein
nvarchar(4000)
string

Bei SUCCESS NULL. Bei WARNING der Warnungstext. Bei ERROR die SQL-Fehlermeldung.

Fehlermeldungen

Status Meldung Ursache
WARNING Some Purchase Orderlines items from list were not deleted. Mindestens eine der angeforderten Lieferantenbestellpositions-IDs existiert nach dem Löschen noch. Die interne Prozedur hat sie nicht gelöscht; der Grund ist in diesem Code nicht ersichtlich. Andere Positionen wurden gelöscht und die Änderungen bestätigt. Vor einem erneuten Versuch den Status der verbliebenen Positionen prüfen.
ERROR {ERROR_MESSAGE()} Beliebiger SQL-Fehler während der Verarbeitung, zum Beispiel ein Konvertierungsfehler, wenn `SupplierOrderLineIds` ein nicht numerisches Element enthält, oder ein von `pixi.SupplierOrderLineDelete` ausgelöster Fehler. Die Transaktion wird zurückgerollt. In der Liste nur ganzzahlige IDs übergeben.

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:pixiSupplierOrderLineDelete>
      <AppName>MyShopConnector</AppName>
      <!-- <UserId>12</UserId> -->
      <UserName>api.user</UserName>
      <!-- <SupplierOrderLineId>45871</SupplierOrderLineId> -->
      <!-- <SupplierOrderLineIds>45872,45873,45874</SupplierOrderLineIds> -->
    </ns1:pixiSupplierOrderLineDelete>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

SupplierOrderLine · Lesen UCS_USERS · Lesen
SQL-Objekt:
dbo.pipiSupplierOrderLineDelete
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben