Postman-Collection
Suppliers Schreiben

pixiSupplierOrderChangeStatus

Ändert den Status einer oder mehrerer Lieferantenbestellungen über die interne Prozedur pixi.SupplierOrderChangeStatus und liefert eine Statuszeile.

Setzt einen neuen Status (ChangeStatusIdTo) für Lieferantenbestellungen.

  1. Benutzerermittlung: Ist UserId nicht angegeben, wird die Benutzer-ID anhand von UserName in UCS_USERS ermittelt. Existiert der Name nicht, wird die ID des Benutzers pixiAdministration verwendet.
  2. Auswahl der Bestellungen: Die Bestellungen werden über einen dieser Parameter bestimmt:
    • SupplierOrderId: ID einer einzelnen Lieferantenbestellung. Der Wert 0 wird wie NULL behandelt.
    • SupplierOrderIds: Liste von Lieferantenbestellungs-IDs, die unverändert an die interne Prozedur übergeben wird.
    • SupplierOrderNR: wird nur verwendet, wenn SupplierOrderId und SupplierOrderIds beide leer sind. Ermittelt wird die Lieferantenbestellung mit dieser InternalNumber. Passen mehrere Bestellungen, wird die mit der höchsten Id verwendet.
    • Ist keiner der drei Parameter angegeben, liefert der Aufruf Invalid parameters.
  3. Statusprüfung: Ist ChangeStatusIdTo = 3 (bestätigt, CON), muss die einzelne Bestellung in SupplierOrderId den Status 2 (bestellt, BES) haben. Andernfalls wird eine Fehlerzeile geliefert.
  4. Statusänderung: Der Aufruf führt pixi.SupplierOrderChangeStatus über sp_executesql aus. Übergeben werden Benutzer-ID, Zielstatus, die einzelne ID und die ID-Liste.
  5. Der Aufruf liefert eine Zeile mit ReturnCode = Success. Tritt ein Fehler auf, enthält die Zeile ERROR und die Fehlermeldung.

Hinweise

  • Die eigentliche Statusänderung erfolgt in pixi.SupplierOrderChangeStatus, deren Definition nicht vorliegt. Daher sind unbekannt: die genaue Logik, die geschriebenen Tabellen, die gültigen Zielstatus-IDs, das erwartete Format von SupplierOrderIds (vermutlich kommagetrennt) und eventuelle eigene Ergebnismengen.
  • Die CON/BES-Prüfung gilt nur für SupplierOrderId, auch für die über SupplierOrderNR ermittelte ID. Bestellungen, die nur in SupplierOrderIds übergeben werden, werden hier nicht geprüft.
  • Findet SupplierOrderNR keine Bestellung, wird kein Fehler geliefert. Der Aufruf läuft mit leerer ID weiter.
  • Die Statusprüfung liest SupplierOrder mit NOLOCK.
  • Der Aufruf läuft in einer eigenen Transaktion. Besteht beim Aufrufer bereits eine offene Transaktion, wird stattdessen ein Savepoint verwendet. Bei einem Fehler wird auf diesen Punkt zurückgerollt. Eine nicht mehr commitfähige Transaktion kann bei diesem Rollback einen weiteren Fehler auslösen.
  • AppName ist deklariert, wird aber nicht verwendet.
  • UserName hat keinen Standardwert und muss immer übergeben werden, auch wenn UserId angegeben ist.

Parameter

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

Name der aufrufenden Anwendung. Wird im Code nicht verwendet.

Beispiel: MyWarehouseTool

UserId
int NULL

ID des Benutzers, der die Änderung durchführt. Bei NULL wird die ID anhand von UserName ermittelt.

Beispiel: 12

UserName
Pflicht
varchar(50)
string
–

Benutzername, über den die Benutzer-ID ermittelt wird, wenn UserId leer ist. Bei unbekanntem Namen wird der Benutzer pixiAdministration verwendet.

Beispiel: jdoe

ChangeStatusIdTo
Pflicht
int –

ID des Zielstatus. 3 (bestätigt, CON) ist nur zulässig, wenn die Bestellung den Status 2 (bestellt, BES) hat. Weitere gültige Werte sind in pixi.SupplierOrderChangeStatus festgelegt.

Beispiel: 3

SupplierOrderId
int NULL

ID einer einzelnen Lieferantenbestellung. 0 wird wie NULL behandelt.

Beispiel: 4711

SupplierOrderIds
varchar(8000)
string
–

Liste von Lieferantenbestellungs-IDs für eine Massenänderung, unverändert an pixi.SupplierOrderChangeStatus übergeben. Das Format ist dort festgelegt, vermutlich kommagetrennt.

Beispiel: 4711,4712,4713

SupplierOrderNR
int NULL

Interne Nummer (InternalNumber) einer Lieferantenbestellung. Wird nur verwendet, wenn SupplierOrderId und SupplierOrderIds leer sind. Passen mehrere Bestellungen, wird die mit der höchsten Id verwendet.

Beispiel: 100234

Antwort

Result-Set 1 · Immer, genau eine Statuszeile (Erfolg oder Fehler)

Statuszeile des Aufrufs.

Spalte Typ Beschreibung
ReturnCode varchar(7)
string

Success oder ERROR. ”

ErrorMessage
Kann leer sein
nvarchar(4000)
string

Fehlertext. Bei Erfolg NULL.

Fehlermeldungen

Status Meldung Ursache
ERROR Invalid parameters Weder `SupplierOrderId` noch `SupplierOrderIds` noch `SupplierOrderNR` wurde angegeben. Mindestens einen davon übergeben.
ERROR Status confirmed (CON) can only be set when order has status ordered (BES) `ChangeStatusIdTo` = 3 wurde angefordert, die Lieferantenbestellung hat aber nicht den Status 2 (bestellt). Die Bestellung zuerst auf bestellt setzen.
ERROR {ERROR_MESSAGE()} In `pixi.SupplierOrderChangeStatus` ist ein SQL-Fehler aufgetreten, z. B. ein ungültiger Statusübergang. Die Meldung wird durchgereicht und die Änderungen werden zurückgerollt.

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:pixiSupplierOrderChangeStatus>
      <AppName>MyWarehouseTool</AppName>
      <!-- <UserId>12</UserId> -->
      <UserName>jdoe</UserName>
      <ChangeStatusIdTo>3</ChangeStatusIdTo>
      <!-- <SupplierOrderId>4711</SupplierOrderId> -->
      <!-- <SupplierOrderIds>4711,4712,4713</SupplierOrderIds> -->
      <!-- <SupplierOrderNR>100234</SupplierOrderNR> -->
    </ns1:pixiSupplierOrderChangeStatus>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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