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
- Auftragspositionen müssen den Status
ANGoderHALhaben, ein gesetztesItemRefundQty > 0. - Berücksichtigt werden nur Aufträge mit mindestens einer solchen Position in einem Lager mit
SpecialStock = 0. IstLocIDangegeben, muss es dieses Lager sein. Ein Leerstring gilt als kein Filter. - Bei
IncludeCustLock=0oder nicht gesendet werden zwei Arten von Aufträgen ausgeschlossen:- Aufträge, deren Kunde
SLockedmit einem anderen Wert alsN/NULL hat - Aufträge, deren Lieferadresse gesperrt ist (
ASlocked = 'Y')
- Aufträge, deren Kunde
- Bei
IncludeCustLock=1werden gesperrte Kunden und Adressen einbezogen. - Für alle
ANG/HAL-Positionen der Kandidatenaufträge berechnet die interne Prozedurpixi_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ägeOrderTotal: Summe der PositionspreiseShipCost: Summe der Versandkosten, je Auftrag einmal gezähltDiffrentCustomers: Anzahl verschiedener KundenMissingArticles: Summe der MengenDiffrentArticles: Anzahl verschiedener ArtikeldbCurrency
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
ViewDetailsimmer explizit senden. Der Wrapper prüftViewDetails = 0. Ein NULL-Wert (Standard) führt daher in den Detailzweig. Die innere Prozedur behandelt NULL jedoch als0und liefert die Summenzeile mit 7 Spalten. DasINSERT ... EXECin 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 PositionsstatusANGundHALund prüft den Auftragsstatus nicht. - Der Filter
LocIDwählt nur die Kandidatenaufträge aus. Ist ein Auftrag qualifiziert, werden alle seineANG/HAL-Positionen ausgewertet, auch solche in anderen Lagern. - Die Versendbarkeitslogik liegt in
pixi_CalculateStockForOrderLines, das nicht beigefügt ist. Der Aufruf erfolgt mitSkipZeroStockItemsCalc = 1. Die genauen Bestands- und Reservierungsregeln lassen sich hier nicht ableiten. OrderTotalundPricebasieren auf dem PositionsfeldPriceund werden nicht mitQtymultipliziert.- In der Detailliste wiederholt
ShipCostdie Versandkosten des Auftrags in jeder Position. SLockedist nicht das Sperrkennzeichen des Kunden. Es spiegelt den Parameter:YbeiIncludeCustLock = 1, sonstN.Shippableist immer0.dbCurrencyist nur bei aktivemMultiCurrencyEnabledgefü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,MissingArticlesundDiffrentArticlesNULL 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
Beispiel: |
IncludeCustLock
|
bit boolean |
NULL |
Ob Aufträge gesperrter Kunden und Aufträge mit gesperrter Lieferadresse einbezogen werden. NULL wird als 0 behandelt. Erlaubte Werte
Beispiel: |
LocID
|
varchar(3) string |
NULL |
Optionale Lager-ID. Berücksichtigt werden nur Aufträge mit mindestens einer relevanten Position in diesem Lager (mit Beispiel: |
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 ( |
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 |
|
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. |
Beispielantwort
<SqlRowSet1>
<row>
<Orders>42</Orders>
<OrderTotal>3189.5000</OrderTotal>
<ShipCost>209.5800</ShipCost>
<DiffrentCustomers>39</DiffrentCustomers>
<MissingArticles>77</MissingArticles>
<DiffrentArticles>25</DiffrentArticles>
<dbCurrency>EUR</dbCurrency>
</row>
</SqlRowSet1>
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>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?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>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'ViewDetails' => '1',
// 'IncludeCustLock' => '0',
// 'LocID' => '001',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportGetUnshippableOrders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportGetUnshippableOrders