pixiReportGetShippableOrders
Liefert die aus dem aktuellen Bestand versandfähigen Auftragspositionen als Details oder als Summen (Aufträge, Wert, Versandkosten, Picks), optional je Lager.
Wertet offene Aufträge aus und prüft je Position, ob genügend Bestand für den Versand vorhanden ist. Anschließend werden entweder die versandfähigen Positionen oder Summenwerte geliefert.
Kandidaten für Aufträge und Positionen
- Berücksichtigt werden nur Auftragspositionen mit Status
ANGoderEIN, gesetztemItemRefundQty> 0. - Der Kunde des Auftrags muss zu
ShopIdgehören (Customers.CustomerOf). Ein leererShopIdbedeutet alle Shops. - Ausgeschlossen werden Aufträge, deren Rechnungsadresse (
AddrRef) oder Lieferadresse (ShipAdrRef) gesperrt ist (ASlocked = 'Y'). - Ebenfalls ausgeschlossen werden Aufträge, die selbst gesperrt sind (
OhSLocked = 'Y'). - Ohne
IncludeOrdersWithAnyShipDate = 1werden nur Aufträge ohneShipdateoder mitShipdatevor morgen (heute oder früher) berücksichtigt.
Bestandsprüfung
Die interne Prozedur pixi_CalculateStockForOrderLines setzt für jede Kandidatenposition ein Kennzeichen für die Versandfähigkeit. Sie läuft mit übersprungenen Nullbestands-Artikeln, d. h. Positionen von Artikeln ohne Bestand sind nicht versandfähig.
- In die Berechnung fließen der Bestand in Lagern mit
SpecialStock = 0, bestehende Reservierungen und frühere nicht reservierte Auftragspositionen ein. - Positionen mit Status
EINgelten immer als versandfähig. - Ein Auftrag gilt als teilweise oder nicht versandfähig, wenn mindestens eine seiner Kandidatenpositionen nicht versandfähig ist.
Filter nach Liefermodus
OnlyPartDelivery = 0,IncludePartDelivery = 0: nur Positionen von Aufträgen, deren Kandidatenpositionen alle versandfähig sind (vollständige Aufträge).OnlyPartDelivery = 0,IncludePartDelivery = 1: alle versandfähigen Positionen aus vollständigen und teilweisen Aufträgen.OnlyPartDelivery = 1: nur die versandfähigen Positionen von Teillieferungs-Aufträgen.IncludePartDeliverywird in diesem Fall ignoriert.
Währung
Ist die Einstellung MultiCurrencyEnabled gleich 1, werden Price und ShipCost in die Datenbankwährung umgerechnet. Verwendet wird der Wechselkurs der Datenbank-Kursquelle mit gleicher Währung und gleichem Datum wie der Kurs des Auftrags. Gibt es keinen solchen Kurs, erfolgt keine Umrechnung. dbCurrency enthält dann den Code der Datenbankwährung, sonst NULL.
Ausgabe
Es wird genau eine Ergebnismenge geliefert, abhängig von ViewDetails und PerLocation:
ViewDetails = 1: eine Zeile je versandfähiger Position, sortiert nachOrderNrundOrderlineRef. BeiPerLocation = 1kommt die SpalteLocationIdhinzu.ViewDetails = 0,PerLocation = 0: eine Summenzeile.ViewDetails = 0,PerLocation = 1: eine Summenzeile je Lager.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; die Werte können daher nicht festgeschriebene Daten enthalten. - Die Einstellung
UseFIFObyLocationsteuert die Bestandsbasis inpixi_CalculateStockForOrderLines:0: Gesamtbestand aller Lager mitSpecialStock = 0.1: Bestand im Lager der jeweiligen Position.
- Nur Positionen im Status
ANG/EINentscheiden, ob ein Auftrag vollständig ist. Positionen desselben Auftrags in anderen Status werden sowohl bei der Prüfung als auch in der Ausgabe ignoriert. ShipCostsind die Versandkosten aus dem Auftragskopf. In den Detail-Ergebnismengen werden sie in jeder Position des Auftrags wiederholt. In den Summen zählen sie einmal je Auftrag, beiPerLocation = 1einmal je Auftrag und Lager. Ein Auftrag mit Positionen in mehreren Lagern geht daher mit seinen Versandkosten in jedes dieser Lager ein.OrderTotalwird alsSUM(Price * Qty)berechnet.NULL-Werte der Bit-Parameter werden als 0 behandelt.PerLocationist im Code als "old way" gekennzeichnet.- Die Hilfsprozedur ruft
log.EventDurationInsertauf (Definition nicht beigefügt), das vermutlich einen Laufzeit-Logeintrag schreibt. - Bei großen Datenbeständen kann der Aufruf aufwendig sein, da der Bestand für alle offenen Positionen berechnet wird.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ViewDetails
|
bit boolean |
NULL |
1 liefert eine Zeile je versandfähiger Position; 0 (oder NULL) liefert Summen. Erlaubte Werte
Beispiel: |
IncludePartDelivery
|
bit boolean |
NULL |
1 berücksichtigt zusätzlich zu vollständigen Aufträgen auch die versandfähigen Positionen von Teillieferungs-Aufträgen. Wird bei Erlaubte Werte
Beispiel: |
OnlyPartDelivery
|
bit boolean |
NULL |
1 liefert nur die versandfähigen Positionen von Aufträgen, die nicht vollständig versandt werden können. Erlaubte Werte
Beispiel: |
ShopId
|
varchar(3) string |
– |
Beschränkt das Ergebnis auf Aufträge von Kunden dieses Shops ( Beispiel: |
IncludeOrdersWithAnyShipDate
|
bit boolean |
0 |
1 berücksichtigt auch Aufträge mit einem Versanddatum in der Zukunft. Erlaubte Werte
Beispiel: |
PerLocation
|
bit boolean |
0 |
1 ergänzt das Lager in den Details bzw. gruppiert die Summen nach Lager (im Code als "old way" markiert). Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn ViewDetails = 1 und PerLocation = 0
Eine Zeile je versandfähiger Auftragsposition, sortiert nach OrderNr, OrderlineRef.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderlineRef
|
int |
Schlüssel der Auftragsposition |
OrderNr
Kann leer sein |
int |
Auftragsnummer |
Qty
|
int |
Menge der Position |
ItemRef
|
int |
Artikelschlüssel |
Status
Kann leer sein |
varchar(3) string |
Positionsstatus ( |
ShipCost
Kann leer sein |
money decimal |
Versandkosten des Auftrags, bei aktivierter Mehrwährung in Datenbankwährung |
Price
Kann leer sein |
money decimal |
Positionspreis, bei aktivierter Mehrwährung in Datenbankwährung |
Shippable
|
int |
Immer 1 |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst NULL |
Result-Set 2 · Wenn ViewDetails = 0 und PerLocation = 0
Eine Zeile mit Summen über alle versandfähigen Positionen.
| Spalte | Typ | Beschreibung |
|---|---|---|
Orders
|
int |
Anzahl unterschiedlicher Aufträge |
OrderTotal
Kann leer sein |
money decimal |
Summe von |
ShipCost
|
money decimal |
Summe der Versandkosten, je Auftrag einmal gezählt |
Picks
Kann leer sein |
int |
Summe der Mengen |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst NULL |
Result-Set 3 · Wenn ViewDetails = 1 und PerLocation = 1
Wie die obigen Detailzeilen, ergänzt um das Lager jeder Position.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderlineRef
|
int |
Schlüssel der Auftragsposition |
OrderNr
Kann leer sein |
int |
Auftragsnummer |
LocationId
Kann leer sein |
varchar(3) string |
Lager der Auftragsposition |
Qty
|
int |
Menge der Position |
ItemRef
|
int |
Artikelschlüssel |
Status
Kann leer sein |
varchar(3) string |
Positionsstatus ( |
ShipCost
Kann leer sein |
money decimal |
Versandkosten des Auftrags |
Price
Kann leer sein |
money decimal |
Positionspreis |
Shippable
|
int |
Immer 1 |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst NULL |
Result-Set 4 · Wenn ViewDetails = 0 und PerLocation = 1
Eine Summenzeile je Lager; keine Zeilen, wenn nichts versandfähig ist.
| Spalte | Typ | Beschreibung |
|---|---|---|
Orders
|
int |
Anzahl unterschiedlicher Aufträge im Lager |
LocationId
Kann leer sein |
varchar(3) string |
Lager |
OrderTotal
Kann leer sein |
money decimal |
Summe von |
ShipCost
Kann leer sein |
money decimal |
Summe der Versandkosten, je Auftrag und Lager einmal gezählt |
Picks
Kann leer sein |
int |
Summe der Mengen im Lager |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst NULL |
Beispielantwort
<SqlRowSet1>
<row>
<Orders>42</Orders>
<OrderTotal>3875.4000</OrderTotal>
<ShipCost>209.5800</ShipCost>
<Picks>118</Picks>
<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:pixiReportGetShippableOrders>
<!-- <ViewDetails>1</ViewDetails> -->
<!-- <IncludePartDelivery>0</IncludePartDelivery> -->
<!-- <OnlyPartDelivery>0</OnlyPartDelivery> -->
<!-- <ShopId>HOH</ShopId> -->
<!-- <IncludeOrdersWithAnyShipDate>0</IncludeOrdersWithAnyShipDate> -->
<!-- <PerLocation>0</PerLocation> -->
</ns1:pixiReportGetShippableOrders>
</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:pixiReportGetShippableOrders>
<!-- <ViewDetails>1</ViewDetails> -->
<!-- <IncludePartDelivery>0</IncludePartDelivery> -->
<!-- <OnlyPartDelivery>0</OnlyPartDelivery> -->
<!-- <ShopId>HOH</ShopId> -->
<!-- <IncludeOrdersWithAnyShipDate>0</IncludeOrdersWithAnyShipDate> -->
<!-- <PerLocation>0</PerLocation> -->
</ns1:pixiReportGetShippableOrders>
</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',
// 'IncludePartDelivery' => '0',
// 'OnlyPartDelivery' => '0',
// 'ShopId' => 'HOH',
// 'IncludeOrdersWithAnyShipDate' => '0',
// 'PerLocation' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportGetShippableOrders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportGetShippableOrders