Postman-Collection
Suppliers Schreiben

pixiSupplierOrderLineUpdate

Aktualisiert Lieferantenpreis, voraussichtliches Lieferdatum und Kommentar einer Lieferantenbestellposition.

Aktualisiert eine einzelne Lieferantenbestellposition, die über SupplierOrderLineId bestimmt wird. Die eigentliche Änderung erfolgt in der internen Prozedur pixi.SupplierOrderLineUpdate, die mit ReturnUpdatedIds = 1 aufgerufen wird.

Ablauf:

  1. Startet eine Transaktion oder setzt einen Savepoint, falls beim Aufruf bereits eine Transaktion offen ist.
  2. Ermittelt den Benutzer: Ist UserId angegeben, wird dieser Wert direkt verwendet; andernfalls wird der Benutzer über UserName mit inf.UserGetByName gesucht. Existiert der Benutzername nicht, wird der Benutzer pixiAdministration verwendet.
  3. Normalisiert die Eingabewerte:
    • SupplierPrice: Ein Wert, der einem Leerstring entspricht, wird zu NULL.
    • EstimatedDeliveryDate: Der Zeitanteil wird entfernt, nur das Datum wird weitergegeben.
    • Comment: Ein Leerstring wird zu NULL.
  4. Ruft pixi.SupplierOrderLineUpdate mit Benutzer, Positions-ID und den drei Werten auf.
  5. Bestätigt die selbst gestartete Transaktion.

Bei einem Fehler wird die Transaktion bzw. der Savepoint zurückgerollt und eine Zeile mit ReturnCode = ERROR und der SQL-Fehlermeldung geliefert.

Hinweise

  • Die interne Prozedur pixi.SupplierOrderLineUpdate liegt nicht vor. Welche Tabellen sie ändert, wie NULL-Werte behandelt werden (z. B. ob NULL "unverändert lassen" bedeutet) und die genauen Spalten der Erfolgs-Ergebnismenge (angefordert über ReturnUpdatedIds = 1) lassen sich aus diesem Code nicht ableiten.
  • Stolperfalle: SupplierPrice ist ein money-Wert, der mit einem Leerstring verglichen wird; SQL Server wandelt den Leerstring in 0 um. Ein Preis von 0 wird daher zu NULL und kann nicht explizit gesetzt werden.
  • Ebenso wird ein leerer Comment zu NULL; ein Kommentar lässt sich mit einem Leerstring daher möglicherweise nicht löschen.
  • EstimatedDeliveryDate wird auf das Datum gekürzt; ein Zeitanteil geht verloren.
  • AppName ist Pflicht, wird im Code aber nicht verwendet. UserName ist Pflicht, wird aber nur ausgewertet, wenn UserId nicht angegeben ist.
  • Verwendet eine benannte Transaktion bzw. einen Savepoint und kann daher innerhalb einer äußeren Transaktion laufen; im Fehlerfall wird nur die eigene Arbeit zurückgerollt (sofern die Transaktion nicht unbrauchbar ist).

Parameter

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

Name der aufrufenden Anwendung. Pflicht, wird im Code aber nicht verwendet.

Beispiel: MyShopConnector

UserId
int NULL

ID des Pixi-Benutzers, der die Änderung durchführt. Fehlt der Wert, wird der Benutzer über UserName ermittelt.

Beispiel: 12

UserName
Pflicht
varchar(50)
string
–

Pixi-Benutzername. Wird nur verwendet, wenn UserId fehlt; unbekannte Namen führen zum Benutzer pixiAdministration.

Beispiel: jdoe

SupplierOrderLineId
Pflicht
int –

ID der zu aktualisierenden Lieferantenbestellposition.

Beispiel: 45871

SupplierPrice
money
decimal
NULL

Neuer Lieferanten-(Einkaufs-)preis der Position. Der Wert 0 wird zu NULL umgewandelt.

Beispiel: 12.50

EstimatedDeliveryDate
datetime
dateTime
NULL

Neues voraussichtliches Lieferdatum. Der Zeitanteil wird entfernt.

Beispiel: 2024-07-15T00:00:00

Comment
nvarchar(2000)
string
NULL

Neuer Kommentar zur Position. Ein Leerstring wird zu NULL umgewandelt.

Beispiel: Supplier confirmed delivery for week 29

Antwort

Result-Set 1 · Bei Erfolg (geliefert von der internen Prozedur pixi.SupplierOrderLineUpdate mit ReturnUpdatedIds = 1)

Ergebnis der internen Update-Prozedur, vermutlich die IDs der aktualisierten Datensätze. Die Spalten sind im vorliegenden Code nicht sichtbar.

Result-Set 2 · Im Fehlerfall

Statuszeile mit der Fehlermeldung nach dem Rollback.

Spalte Typ Beschreibung
ReturnCode varchar(5)
string

Immer ERROR.

ErrorMessage
Kann leer sein
nvarchar(4000)
string

SQL-Fehlermeldung des aufgetretenen Fehlers.

Fehlermeldungen

Status Meldung Ursache
ERROR {ERROR_MESSAGE()} Jeder Fehler bei der Benutzerermittlung oder in `pixi.SupplierOrderLineUpdate` (z. B. ungültige Positions-ID oder verletzte Geschäftsregel). Die Meldung ist der ursprüngliche SQL-Fehlertext; Positions-ID und Werte vor einem erneuten Versuch prüfen.

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:pixiSupplierOrderLineUpdate>
      <AppName>MyShopConnector</AppName>
      <!-- <UserId>12</UserId> -->
      <UserName>jdoe</UserName>
      <SupplierOrderLineId>45871</SupplierOrderLineId>
      <!-- <SupplierPrice>12.50</SupplierPrice> -->
      <!-- <EstimatedDeliveryDate>2024-07-15T00:00:00</EstimatedDeliveryDate> -->
      <!-- <Comment>Supplier confirmed delivery for week 29</Comment> -->
    </ns1:pixiSupplierOrderLineUpdate>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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