Postman-Collection
Suppliers Schreiben

pixiCreateSupplierOrderFromProfile

Legt Lieferantenbestellungen anhand eines gespeicherten Bestellvorschlagsprofils an und liefert die Nummern der erzeugten Bestellungen.

Führt den Bestellvorschlag für ein gespeichertes Profil aus und bestätigt das Ergebnis in einem Schritt. Dadurch werden Lieferantenbestellungen angelegt oder erweitert.

Ablauf:

  1. Prüft, ob ProfileId übergeben wurde und ob ein Pixi-Benutzer mit dem Namen API existiert. Dieser Benutzer wird als ausführender Benutzer weitergegeben.
  2. Liest das Profil-XML aus pixi.SupplierOrderSuggestionProfile.Data zur angegebenen Id. Fehlen Profil oder Daten, wird eine Fehlerzeile geliefert.
  3. Überträgt die Profileinstellungen unter /SuggestionProfileDbo auf die Parameter des Bestellvorschlags:
    • OrderMethod: OrderOnDemand = 1, OrderForTargetStock = 2, OrderOnStockTurnover = 3.
    • SupplierPriority: LowestPrice = 1 (Standard), FastestDelivery = 2, LatestDelivery = 3.
    • CalculationSuggestionLocation: CalculateSuggestionForEachLocationSeparately = 0 (Standard), CalculateSuggestionsBasedOnSummarizedParametersForSelectedLocations = 1.
    • ConsiderationOfSuppliers: FromSelectedSuppliers = 0 (Standard), IfSelectedSupplierIsOptimal = 1.
    • SupplierOrdersCreation: CreateOnlyNewSupplierOrders = 0 (Standard), AddSuggestedItemsToOpenSupplierOrders = 1.
    • SelectedLocations/int, SelectedSuppliers/int sowie die Tag-IDs in TagKeysOr, TagKeysAnd und TagKeysNot werden zu kommagetrennten Listen zusammengefasst.
    • ConsiderPackagingUnit, ConsiderMinimumOrderAmount, DeliveryLocationId, OrderLocationId, ExcludeSuppliersWithZeroPrice und IncludeOversoldItems werden direkt übernommen.
    • Nur bei OrderOnStockTurnover: TurnoverInDays, ConsiderReorderLevel und der Verkaufszeitraum. Bei StockTurnoverSalesOption = SalesPerDayForLastXDays umfasst der Zeitraum die letzten SalesForLastXDays Tage bis jetzt, sonst gelten SalesFrom/SalesTo.
  4. Erzeugt aus der aktuellen Uhrzeit eine Laufnummer (yyMMddHHmmss) und ruft pixi.SupplierOrderSuggestionPrepareData und danach pixi.SupplierOrderSuggestionConfirmData auf. Die Validierung wird beim Bestätigen übersprungen.
  5. Liefert je Lieferantenbestellung dieses Laufs eine Zeile mit der internen Bestellnummer und der Lieferantennummer. Wurde keine Bestellung verknüpft, wird eine INFO-Zeile geliefert.

Hinweise

  • Das eigentliche Anlegen der Lieferantenbestellungen erfolgt in pixi.SupplierOrderSuggestionPrepareData und pixi.SupplierOrderSuggestionConfirmData. Deren Definitionen liegen nicht vor, daher sind die beschriebenen Tabellen und die genauen Regeln hier nicht dokumentiert. Beide werden mit @ShowOutputSet = 0 aufgerufen, was vermutlich deren eigene Ergebnismengen unterdrückt.
  • Die gesamte Verarbeitung läuft in einer Transaktion. Besteht beim Aufrufer bereits eine offene Transaktion, wird stattdessen ein Savepoint gesetzt. Bei einer Ausnahme wird zurückgerollt und statt eines SQL-Fehlers eine ERROR-Zeile geliefert.
  • Der Benutzer API muss in UCS_USERS vorhanden sein. Es gibt keinen Rückgriff auf einen anderen Benutzer.
  • Die Laufnummer wird sekundengenau aus der aktuellen Uhrzeit gebildet. Zwei Aufrufe in derselben Sekunde können dieselbe Nummer erhalten und ihre Ergebnisse vermischen.
  • Werte im Profil, die nicht den genannten Texten entsprechen, lassen die Standardwerte unverändert. Bei unbekannter OrderMethod bleibt die Bestellmethode NULL.
  • Enthält eine Tag-Liste keine Einträge, wird dafür NULL statt einer leeren Zeichenkette übergeben.
  • Profil und Ergebnis werden mit NOLOCK gelesen.

Parameter

Parameter Typ Standardwert Beschreibung
ProfileId
smallint
int
NULL

Id des Bestellvorschlagsprofils in pixi.SupplierOrderSuggestionProfile. Fachlich erforderlich; ohne Angabe wird eine Fehlerzeile geliefert.

Beispiel: 3

Antwort

Result-Set 1 · Wenn ProfileId fehlt, der Benutzer API nicht existiert oder das Profil nicht gefunden wird

Statuszeile mit dem Validierungsfehler.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer ERROR.

Message varchar(53)
string

Fehlertext.

Result-Set 2 · Bei Erfolg, wenn mindestens eine Lieferantenbestellung mit dem Vorschlagslauf verknüpft ist

Eine Zeile je Lieferantenbestellung, die durch diesen Lauf angelegt oder erweitert wurde.

Spalte Typ Beschreibung
SupplOrderNr
Kann leer sein
string

Interne Nummer der Lieferantenbestellung (SupplierOrder.InternalNumber).

SupplNr
Kann leer sein
string

Lieferantennummer (Suppliers.SupplNr).

Result-Set 3 · Wenn keine Lieferantenbestellung angelegt wurde oder eine Ausnahme auftritt

Statuszeile mit INFO (nichts angelegt) oder ERROR (Ausnahme, Änderungen zurückgerollt).

Spalte Typ Beschreibung
Status varchar(5)
string

INFO oder ERROR.

Message nvarchar(4000)
string

Infotext oder Fehlertext einschließlich der SQL-Fehlermeldung.

Fehlermeldungen

Status Meldung Ursache
ERROR Profile Id is a mandatory parameter. `ProfileId` wurde nicht übergeben oder ist NULL. Die Profil-Id immer angeben.
ERROR UserName "API" does not exist. Es gibt keinen Pixi-Benutzer `API` in `UCS_USERS`. Diesen Benutzer vor der Nutzung des Calls anlegen.
ERROR Supplier/purchase order suggestion profile not found. Es existiert kein Profil mit dieser Id oder dessen `Data` ist leer. Profil-Id prüfen.
INFO No supplier/purchase orders created. Der Vorschlagslauf hat keine Lieferantenbestellungen erzeugt, z. B. weil mit den Profileinstellungen kein Artikel bestellt werden muss.
ERROR Unhandled exception occured: {error} Beim Vorbereiten oder Bestätigen des Vorschlags ist ein SQL-Fehler aufgetreten. Alle Änderungen werden zurückgerollt; `{error}` enthält die ursprüngliche SQL-Meldung.

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:pixiCreateSupplierOrderFromProfile>
      <!-- <ProfileId>3</ProfileId> -->
    </ns1:pixiCreateSupplierOrderFromProfile>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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