Postman-Collection
Reports Lesen

pixiReportGetUnshippableOrders

Liefert offene Auftragspositionen, die mangels Bestand nicht versendet werden können, als Summenzeile oder als Detailliste je Position.

Der Aufruf ist ein Wrapper um die interne Prozedur Report_GetUnshippableOrders. Er übergibt immer OrderlineStatus = NULL und ShopId = NULL, es werden also alle Status und alle Shops ausgewertet. Das Ergebnis wird in einer temporären Tabelle zwischengespeichert, zurückgegeben wird eine Teilmenge der Spalten.

Auswahl der Auftragspositionen

  1. Auftragspositionen müssen den Status ANG oder HAL haben, ein gesetztes ItemRef und Qty > 0.
  2. Berücksichtigt werden nur Aufträge mit mindestens einer solchen Position in einem Lager mit SpecialStock = 0. Ist LocID angegeben, muss es dieses Lager sein. Ein Leerstring gilt als kein Filter.
  3. Bei IncludeCustLock = 0 oder nicht gesendet werden zwei Arten von Aufträgen ausgeschlossen:
    • Aufträge, deren Kunde SLocked mit einem anderen Wert als N/NULL hat
    • Aufträge, deren Lieferadresse gesperrt ist (ASlocked = 'Y')
  4. Bei IncludeCustLock = 1 werden gesperrte Kunden und Adressen einbezogen.
  5. Für alle ANG/HAL-Positionen der Kandidatenaufträge berechnet die interne Prozedur pixi_CalculateStockForOrderLines, ob die Position versendbar ist. Zurückgegeben werden nur Positionen mit Reservierungsinformation, die nicht versendbar sind.

Ausgabe abhängig von ViewDetails

  • 0: genau eine Summenzeile mit diesen Werten:
    • Orders: Anzahl verschiedener Aufträge
    • OrderTotal: Summe der Positionspreise
    • ShipCost: Summe der Versandkosten, je Auftrag einmal gezählt
    • DiffrentCustomers: Anzahl verschiedener Kunden
    • MissingArticles: Summe der Mengen
    • DiffrentArticles: Anzahl verschiedener Artikel
    • dbCurrency
  • 1: eine Zeile je nicht versendbarer Auftragsposition. Die Zeilen haben keine definierte Sortierung.

Alle Beträge werden in die Datenbankwährung umgerechnet, wenn die Einstellung MultiCurrencyEnabled aktiv ist.

Hinweise

  • ViewDetails immer explizit senden. Der Wrapper prüft ViewDetails = 0. Ein NULL-Wert (Standard) führt daher in den Detailzweig. Die innere Prozedur behandelt NULL jedoch als 0 und liefert die Summenzeile mit 7 Spalten. Das INSERT ... EXEC in die Detailtabelle mit 21 Spalten schlägt dann voraussichtlich mit einem Spaltenfehler fehl.
  • Der Kopfkommentar nennt Auftragsstatus OPEN/HOLD und Positionsstatus NLB. Der Code filtert nur die Positionsstatus ANG und HAL und prüft den Auftragsstatus nicht.
  • Der Filter LocID wählt nur die Kandidatenaufträge aus. Ist ein Auftrag qualifiziert, werden alle seine ANG/HAL-Positionen ausgewertet, auch solche in anderen Lagern.
  • Die Versendbarkeitslogik liegt in pixi_CalculateStockForOrderLines, das nicht beigefügt ist. Der Aufruf erfolgt mit SkipZeroStockItemsCalc = 1. Die genauen Bestands- und Reservierungsregeln lassen sich hier nicht ableiten.
  • OrderTotal und Price basieren auf dem Positionsfeld Price und werden nicht mit Qty multipliziert.
  • In der Detailliste wiederholt ShipCost die Versandkosten des Auftrags in jeder Position.
  • SLocked ist nicht das Sperrkennzeichen des Kunden. Es spiegelt den Parameter: Y bei IncludeCustLock = 1, sonst N.
  • Shippable ist immer 0.
  • dbCurrency ist nur bei aktivem MultiCurrencyEnabled gefüllt, sonst NULL. Beträge werden durch den Wechselkurs des passenden Datums geteilt. Ohne gefundenen Kurs bleibt der Wert unverändert.
  • In der Summenzeile können OrderTotal, MissingArticles und DiffrentArticles NULL bzw. 0 sein, wenn keine nicht versendbaren Positionen existieren. Eine Zeile wird trotzdem geliefert.
  • Alle Lesezugriffe erfolgen mit NOLOCK, nicht festgeschriebene Daten können daher enthalten sein.

Parameter

Parameter Typ Standardwert Beschreibung
ViewDetails
bit
boolean
NULL

Wählt das Ausgabeformat: Summenzeile oder Detailliste je Auftragsposition. Sollte immer explizit gesendet werden (siehe Hinweise).

Erlaubte Werte

  • 0 – Eine Summenzeile liefern.
  • 1 – Eine Zeile je nicht versendbarer Auftragsposition liefern.

Beispiel: 1

IncludeCustLock
bit
boolean
NULL

Ob Aufträge gesperrter Kunden und Aufträge mit gesperrter Lieferadresse einbezogen werden. NULL wird als 0 behandelt.

Erlaubte Werte

  • 0 – Gesperrte Kunden und gesperrte Lieferadressen ausschließen.
  • 1 – Gesperrte Kunden und gesperrte Lieferadressen einbeziehen.

Beispiel: 0

LocID
varchar(3)
string
NULL

Optionale Lager-ID. Berücksichtigt werden nur Aufträge mit mindestens einer relevanten Position in diesem Lager (mit SpecialStock = 0). NULL oder Leerstring bedeutet alle Lager ohne Sonderbestand.

Beispiel: 001

Antwort

Result-Set 1 · Bei ViewDetails = 0; immer genau eine Zeile.

Zusammenfassung aller nicht versendbaren Auftragspositionen.

Spalte Typ Beschreibung
Orders
Kann leer sein
int

Anzahl verschiedener Aufträge mit nicht versendbaren Positionen.

OrderTotal
Kann leer sein
money
decimal

Summe der Positionspreise (nicht mit der Menge multipliziert), in Datenbankwährung.

ShipCost
Kann leer sein
money
decimal

Summe der Versandkosten der betroffenen Aufträge, je Auftrag einmal gezählt, in Datenbankwährung.

DiffrentCustomers
Kann leer sein
int

Anzahl verschiedener Kunden.

MissingArticles
Kann leer sein
int

Summe der Mengen der nicht versendbaren Positionen.

DiffrentArticles
Kann leer sein
int

Anzahl verschiedener Artikel.

dbCurrency
Kann leer sein
varchar(3)
string

Währungscode der Datenbank; NULL, wenn Mehrwährung deaktiviert ist.

Result-Set 2 · Bei ViewDetails = 1.

Eine Zeile je nicht versendbarer Auftragsposition.

Spalte Typ Beschreibung
OrderlineKey
Kann leer sein
int

Schlüssel der Auftragsposition.

OrderNr
Kann leer sein
int

Auftragsnummer.

Qty
Kann leer sein
int

Bestellte Menge der Position.

ItemRef
Kann leer sein
int

Artikelschlüssel.

Status
Kann leer sein
varchar(3)
string

Positionsstatus (ANG oder HAL).

ShipCost
Kann leer sein
money
decimal

Versandkosten des Auftrags (je Position wiederholt), in Datenbankwährung.

Price
Kann leer sein
money
decimal

Positionspreis in Datenbankwährung.

SLocked
Kann leer sein
varchar(1)
string

Y bei IncludeCustLock = 1, sonst N; nicht das tatsächliche Sperrkennzeichen des Kunden.

CustRef
Kann leer sein
int

Kundenschlüssel der Auftragsposition.

Shippable int

Immer 0.

OrderDate
Kann leer sein
datetime
dateTime

Auftragsdatum.

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer.

dbCurrency
Kann leer sein
varchar(3)
string

Währungscode der Datenbank; NULL, wenn Mehrwährung deaktiviert ist.

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:pixiReportGetUnshippableOrders>
      <!-- <ViewDetails>1</ViewDetails> -->
      <!-- <IncludeCustLock>0</IncludeCustLock> -->
      <!-- <LocID>001</LocID> -->
    </ns1:pixiReportGetUnshippableOrders>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Location · Lesen OrderStates · Lesen Orderlines · Lesen Addresses · Lesen OrderHeader · Lesen Customers · Lesen ExchRate · Lesen Items · Lesen
SQL-Objekt:
dbo.pipiReportGetUnshippableOrders
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben