Postman-Collection
Suppliers Schreiben

pixiUpdateSupplier

Aktualisiert Stammdaten, Hauptansprechpartner sowie Sperr- und Deaktivierungskennzeichen eines bestehenden Lieferanten anhand seiner Lieferantennummer.

Führt eine Teilaktualisierung eines Lieferanten in Suppliers durch, identifiziert über SupplNr.

  1. Leere Zeichenketten in den meisten Parametern werden in NULL umgewandelt. SupplCtry wird vorher getrimmt. Ein Parameter mit NULL oder Leerwert lässt den gespeicherten Wert unverändert (ISNULL(neu, alt)).
  2. Der Lieferant wird über SupplNr gesucht. Existiert er nicht, wird eine Fehlerzeile zurückgegeben.
  3. Bei IsLocked = 1 oder IsDisabled = 1 ist SupplierNote Pflicht. Ist die Notiz angegeben, wird in SupplierNote eine Notiz mit dem Titel Supplier Locked by UserId: {id} bzw. Supplier Disabled by UserId: {id} angelegt. Als Benutzer dient der Pixi-Benutzer api, ersatzweise pixiAdministration. Sind beide Kennzeichen 1, entstehen zwei Notizen.
  4. Innerhalb einer Transaktion (bzw. eines Savepoints bei bereits offener Transaktion des Aufrufers):
    • Hat der Lieferant noch keine ContactId, wird ein leerer Contact-Datensatz angelegt und verknüpft.
    • Die Lieferantenfelder werden aktualisiert. UpdateDate erhält den aktuellen Zeitpunkt, UpdateEmp den Wert API.
    • Der verknüpfte Kontakt wird mit den MainContact_*-Werten aktualisiert.
  5. Es wird eine Statuszeile mit RowsAffected, ReturnCode, Message und ErrorMessage zurückgegeben.

CanDoDirectFulfillment akzeptiert Y/N. Andere Werte lassen das Kennzeichen unverändert. IsLocked = 0 bzw. IsDisabled = 0 entsperren bzw. aktivieren den Lieferanten ohne Pflichtnotiz.

Hinweise

  • Notizen außerhalb der Transaktion: Das Anlegen der SupplierNote beim Sperren oder Deaktivieren erfolgt vor Beginn der Transaktion. Es wird bei einem späteren Fehler im Update nicht zurückgerollt. Es wird auch versucht, wenn der Lieferant nicht existiert; SupplierId ist dann NULL. Datenbankfehler dieses Inserts werden nicht abgefangen und kommen als SqlMessage zurück.
  • Fehlende SupplNr: Die Meldung für eine leere SupplNr wird durch die Meldung "does not exist" überschrieben. Diese wird durch Verkettung mit NULL selbst NULL. Der Aufrufer erhält ReturnCode = Error mit leerem bzw. NULL-ErrorMessage.
  • Vorrang der Fehler: Ein Fehler wegen fehlender Notiz beim Sperren oder Deaktivieren überschreibt die Meldung "does not exist" in ErrorMessage.
  • Nullwerte: DefaultDeliveryDays und CurrencyId werden mit '' verglichen, was zu 0 konvertiert wird. Der Wert 0 gilt daher als "nicht angegeben" und kann nicht gesetzt werden.
  • Felder lassen sich nicht leeren: Eine leere Zeichenkette leert kein Feld, da sie als "keine Änderung" behandelt wird.
  • Ungenutzter Parameter: SupplGroup ist deklariert, wird aber nicht verwendet.
  • Meldungstext: Die generische Meldung enthält den Tippfehler conntact.
  • Sperrhinweise: Lesezugriffe nutzen NOLOCK, Updates ROWLOCK. XACT_ABORT ist aktiv. Bei einem abgefangenen Fehler wird die Transaktion bzw. der Savepoint zurückgerollt und eine Fehlerzeile geliefert.
  • Kontakt-Update: RowVersion des Kontakts wird immer auf 1 gesetzt.

Parameter

Parameter Typ Standardwert Beschreibung
SupplNr
varchar(4)
string
NULL

Lieferantennummer des zu aktualisierenden Lieferanten. Faktisch Pflicht; ohne sie wird eine Fehlerzeile geliefert.

Beispiel: L001

SupplName
varchar(60)
string
NULL

Neuer Lieferantenname (SupplName). Leer oder NULL behält den aktuellen Wert.

Beispiel: Muster Großhandel GmbH

SupplNameExt
varchar(50)
string
NULL

Namenszusatz (SupplNameExt).

Beispiel: Abteilung Einkauf

SupplGroup
varchar(4)
string
NULL

Lieferantengruppe. Deklariert, aber im Code nicht verwendet.

DefaultDeliveryDays
int NULL

Standard-Lieferzeit in Tagen (DefaultDeliveryDays). Der Wert 0 gilt als nicht angegeben.

Beispiel: 5

SupplFaxNR
varchar(100)
string
NULL

Faxnummer (SupplFaxNr).

Beispiel: +49 30 1234567

CustNR
varchar(20)
string
NULL

Eigene Kundennummer beim Lieferanten (CustNr).

Beispiel: K-98765

eMail
varchar(60)
string
NULL

Allgemeine E-Mail-Adresse, gespeichert in MailBox.

Beispiel: info@muster-grosshandel.de

SupAnrede
varchar(20)
string
NULL

Anrede (SupAnrede).

Beispiel: Firma

SupName2
varchar(60)
string
NULL

Zweite Namenszeile (SupName2).

Beispiel: Niederlassung Berlin

SupAddress
varchar(50)
string
NULL

Straße und Hausnummer (SupAddress).

Beispiel: Hauptstraße 12

SupZip
varchar(20)
string
NULL

Postleitzahl (SupZip).

Beispiel: 10115

SupPhone1
varchar(50)
string
NULL

Erste Telefonnummer (SupPhone1).

Beispiel: +49 30 1234560

CanDoDirectFulfillment
varchar(1)
string
NULL

Ob der Lieferant Direktversand (Streckengeschäft) durchführen kann. Andere Werte lassen das Kennzeichen unverändert.

Erlaubte Werte

  • Y – Setzt `CanDoDirectFulfillment` auf 1.
  • N – Setzt `CanDoDirectFulfillment` auf 0.

Beispiel: Y

SupCity
varchar(50)
string
NULL

Ort (SupCity).

Beispiel: Berlin

SupPhone2
varchar(50)
string
NULL

Zweite Telefonnummer (SupPhone2).

Beispiel: +49 30 1234561

SupplCtry
varchar(3)
string
NULL

Ländercode (SupplCtry). Führende und nachfolgende Leerzeichen werden entfernt.

Beispiel: DE

CurrencyId
smallint
int
NULL

Währungs-ID des Lieferanten (CurrencyId). Der Wert 0 gilt als nicht angegeben.

Beispiel: 1

eMailSupplOrder
varchar(255)
string
NULL

E-Mail-Adresse für Lieferantenbestellungen (eMailSupplOrder).

Beispiel: bestellung@muster-grosshandel.de

HomePageUrl
nvarchar(2000)
string
NULL

URL der Website (HomePageUrl).

Beispiel: https://www.muster-grosshandel.de

MainContact_Title
nvarchar(100)
string
NULL

Titel des Hauptansprechpartners (Contact.Title).

Beispiel: Dr.

MainContact_FirstName
nvarchar(20)
string
NULL

Vorname des Hauptansprechpartners.

Beispiel: Anna

MainContact_LastName
nvarchar(200)
string
NULL

Nachname des Hauptansprechpartners.

Beispiel: Schmidt

MainContact_JobTitle
nvarchar(200)
string
NULL

Positionsbezeichnung des Hauptansprechpartners.

Beispiel: Key Account Manager

MainContact_JobFunction
nvarchar(200)
string
NULL

Funktion des Hauptansprechpartners.

Beispiel: Vertrieb

MainContact_Phone
varchar(200)
string
NULL

Telefonnummer des Hauptansprechpartners.

Beispiel: +49 30 1234562

MainContact_MobilePhone
varchar(200)
string
NULL

Mobilnummer des Hauptansprechpartners.

Beispiel: +49 170 1234567

MainContact_Fax
nvarchar(200)
string
NULL

Faxnummer des Hauptansprechpartners.

Beispiel: +49 30 1234569

MainContact_Email
nvarchar(200)
string
NULL

E-Mail-Adresse des Hauptansprechpartners.

Beispiel: a.schmidt@muster-grosshandel.de

SupplierComment
varchar(8000)
string
NULL

Lieferantenkommentar, gespeichert in SupplComment.

Beispiel: Mindestbestellwert 250 EUR

SupplierNote
varchar(8000)
string
NULL

Text der Lieferantennotiz. Pflicht bei IsLocked = 1 oder IsDisabled = 1, sonst ohne Wirkung.

Beispiel: Gesperrt wegen offener Reklamationen.

IsDisabled
bit
boolean
NULL

Setzt das Kennzeichen Disabled. NULL lässt es unverändert.

Erlaubte Werte

  • 1 – Deaktiviert den Lieferanten; erfordert `SupplierNote` und legt eine Notiz an.
  • 0 – Aktiviert den Lieferanten; keine Notiz erforderlich.

Beispiel: 0

IsLocked
bit
boolean
NULL

Setzt das Kennzeichen Locked. NULL lässt es unverändert.

Erlaubte Werte

  • 1 – Sperrt den Lieferanten; erfordert `SupplierNote` und legt eine Notiz an.
  • 0 – Entsperrt den Lieferanten; keine Notiz erforderlich.

Beispiel: 1

Antwort

Result-Set 1 · Immer (eine Statuszeile, außer bei einem nicht abgefangenen Fehler beim Anlegen einer Notiz vor der Transaktion).

Statuszeile der Aktualisierung. Bei Erfolg ist ReturnCode = OK und ErrorMessage leer. Bei Fehler ist ReturnCode = Error, Message ein generischer Text und ErrorMessage enthält die Details.

Spalte Typ Beschreibung
RowsAffected int

Anzahl aktualisierter Lieferantenzeilen (1 bei Erfolg, 0 bei Fehler).

ReturnCode varchar(100)
string

OK oder Error.

Message
Kann leer sein
varchar(4000)
string

Erfolgsmeldung mit Lieferantennummer oder der generische Fehlertext.

ErrorMessage
Kann leer sein
nvarchar(4000)
string

Leer bei Erfolg; Validierungs- oder SQL-Fehlermeldung bei Fehler. Kann NULL sein, wenn SupplNr fehlte.

Fehlermeldungen

Status Meldung Ursache
Error Supplier with SupplNr: "{SupplNr}" does not exist. Es existiert kein Lieferant mit der angegebenen `SupplNr`. Wird in `ErrorMessage` geliefert. Lieferantennummer prüfen.
Error SupplierNote (comment) needs to be provided when locking the Supplier. `IsLocked = 1` wurde ohne `SupplierNote` übergeben. Notiztext angeben.
Error SupplierNote (comment) needs to be provided when disabling the Supplier. `IsDisabled = 1` wurde ohne `SupplierNote` übergeben. Notiztext angeben.
Error Something went wrong. Please conntact pixi* support. Generische `Message` jeder Fehlerzeile. Wurde der Fehler beim Update abgefangen, enthält `ErrorMessage` den SQL-Fehlertext. Fehlte `SupplNr` oder war sie leer, ist `ErrorMessage` NULL.

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:pixiUpdateSupplier>
      <!-- <SupplNr>L001</SupplNr> -->
      <!-- <SupplName>Muster Großhandel GmbH</SupplName> -->
      <!-- <SupplNameExt>Abteilung Einkauf</SupplNameExt> -->
      <!-- <SupplGroup>?</SupplGroup> -->
      <!-- <DefaultDeliveryDays>5</DefaultDeliveryDays> -->
      <!-- <SupplFaxNR>+49 30 1234567</SupplFaxNR> -->
      <!-- <CustNR>K-98765</CustNR> -->
      <!-- <eMail>info@muster-grosshandel.de</eMail> -->
      <!-- <SupAnrede>Firma</SupAnrede> -->
      <!-- <SupName2>Niederlassung Berlin</SupName2> -->
      <!-- <SupAddress>Hauptstraße 12</SupAddress> -->
      <!-- <SupZip>10115</SupZip> -->
      <!-- <SupPhone1>+49 30 1234560</SupPhone1> -->
      <!-- <CanDoDirectFulfillment>Y</CanDoDirectFulfillment> -->
      <!-- <SupCity>Berlin</SupCity> -->
      <!-- <SupPhone2>+49 30 1234561</SupPhone2> -->
      <!-- <SupplCtry>DE</SupplCtry> -->
      <!-- <CurrencyId>1</CurrencyId> -->
      <!-- <eMailSupplOrder>bestellung@muster-grosshandel.de</eMailSupplOrder> -->
      <!-- <HomePageUrl>https://www.muster-grosshandel.de</HomePageUrl> -->
      <!-- <MainContact_Title>Dr.</MainContact_Title> -->
      <!-- <MainContact_FirstName>Anna</MainContact_FirstName> -->
      <!-- <MainContact_LastName>Schmidt</MainContact_LastName> -->
      <!-- <MainContact_JobTitle>Key Account Manager</MainContact_JobTitle> -->
      <!-- <MainContact_JobFunction>Vertrieb</MainContact_JobFunction> -->
      <!-- <MainContact_Phone>+49 30 1234562</MainContact_Phone> -->
      <!-- <MainContact_MobilePhone>+49 170 1234567</MainContact_MobilePhone> -->
      <!-- <MainContact_Fax>+49 30 1234569</MainContact_Fax> -->
      <!-- <MainContact_Email>a.schmidt@muster-grosshandel.de</MainContact_Email> -->
      <!-- <SupplierComment>Mindestbestellwert 250 EUR</SupplierComment> -->
      <!-- <SupplierNote>Gesperrt wegen offener Reklamationen.</SupplierNote> -->
      <!-- <IsDisabled>0</IsDisabled> -->
      <!-- <IsLocked>1</IsLocked> -->
    </ns1:pixiUpdateSupplier>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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