pixiReport_LogisticQuality_Details
Liefert den Logistikqualitäts-Report: Tage von Auftragsanlage bis Versand je Auftrag oder eine prozentuale Verteilung für das Versandsiegel.
Misst, wie viele Tage (in 24-Stunden-Schritten) der Versand von Aufträgen gedauert hat, die in den letzten DaysBack Tagen angelegt wurden.
Zeitraum: FromDate ist der Tagesbeginn vor DaysBack Tagen, ToDate das Ende des heutigen Tages.
Auftragsauswahl:
- Aufträge, deren Kopf-
CreateDateam oder nachFromDateliegt. - Das Anlagedatum des Auftrags ist der früheste
ANG-Eintrag inOrderHistoryinnerhalb des Zeitraums. Das Versanddatum ist das frühesteShipDateder Auftragspositionen. - Das
ShipDateim Auftragskopf mussNULLsein. - Mindestens eine Auftragsposition muss den Status
ANGoderAUShaben. IstShopIDgesetzt, muss diese Position zusätzlich zu diesem Shop gehören (OrdShopID). - Aufträge von Kunden, die nach
FromDateinCustomersHistgesperrt wurden (HSLocked = 'Y'), werden ausgeschlossen.
Weitere Ausschlüsse (der gesamte Auftrag entfällt, sobald eine Position betroffen ist):
- Auftragspositionen, deren Anlagezeitpunkte mehr als 5 Minuten auseinanderliegen. Solche Aufträge gelten als nach dem Import manuell geändert.
- Nicht ausreichender Bestand zum Auftragsdatum. Der Bedarf wird je Artikel aus Anlage- und Versandereignissen kumuliert. Der Bestand wird aus
InvBinItemLogin Lagern ohne Sonderbestand (SpecialStock = 0) berechnet. Ist der Bedarf größer oder gleich dem Bestand, entfällt der Auftrag. - Positionen auf
ANG, deren verfügbarer Bestand<= 1ist. Als verfügbarer Bestand giltItemLocationSpecific.LocationQuantity, wenn Sonderbestandslager existieren, sonstItems.Quantity. BeiCalcSeal = 0werden frühere Reservierungen offener Aufträge (nicht finale Status außerEIN,FUT,FUS) abgezogen.
Datumsanpassungen:
- Aufträge, die an einem Freitag, Samstag oder Sonntag angelegt wurden, werden auf den folgenden Montag verschoben. Die Uhrzeit bleibt erhalten.
- Als Feiertage gelten Tage ohne Rechnungen mit positivem Betrag. Ein Auftrag wird auf den ersten Rechnungszeitpunkt des nächsten Tages mit Rechnungen verschoben, wenn einer dieser Fälle zutrifft:
- sein Anlagetag hat keine solchen Rechnungen;
- der Folgetag hat keine solchen Rechnungen.
Ausgabe (nur Aufträge mit Versanddatum):
CalcSeal = 0(pixi* Report-Client): eine Zeile je Auftrag mitDaysToShip, Auftragsnummer und Datumswerten, sortiert nachDaysToShipundCreateDate. MitExcludeZeros = 1werden nur Aufträge mitDaysToShip > 0geliefert.CalcSeal = 1(Seal-/Dashboard-Apps): eine Zeile jeDaysToShip-Wert mit der Anzahl der Aufträge, ihrem Anteil an allen Paketen und der Gesamtzahl. Zusätzlich wird immer eine Zeile mitDaysToShip = 99und Nullwerten angefügt. Die Zeilen sind nachDaysToShipsortiert.
Hinweise
- Der Parameter
OnlyItemsOnStockist deklariert, wird im Code aber nirgends verwendet. - Alle permanenten Tabellen werden mit
NOLOCKgelesen, das Ergebnis kann daher nicht festgeschriebene Daten enthalten. - Innerhalb der Prozedur wird
SET DATEFIRST 1gesetzt. Die Wochentage 5–7 sind Freitag bis Sonntag. - Das ausgegebene
CreateDateist das angepasste Datum (Wochenend-/Feiertagsverschiebung), nicht das ursprüngliche Auftragsdatum. - Aufträge mit gesetztem
ShipDateim Auftragskopf werden nicht berücksichtigt. Als Versanddatum dient das frühesteShipDateder Positionen. - Aufträge, deren
ANG-Positionen keinen passendenItemLocationSpecific-Eintrag für das Lager der Position haben, werden von der Reservierungsbestandsprüfung nicht entfernt. - Die Feiertagserkennung basiert auf Rechnungen mit
total > 0. Tage ohne Rechnungen gelten als Feiertage. - Laut Codekommentar müssen Änderungen auch in
pixiReport_LogisticQuality_NonCachednachgezogen werden. - Die Berechnung läuft über viele temporäre Tabellen und Fensterfunktionen. Große
DaysBack-Werte können langsam sein.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DaysBack
|
int | 14 |
Anzahl der Tage ab heute rückwärts, die den Auswertungszeitraum bilden. Beispiel: |
ShopID
|
varchar(3) string |
– |
Beschränkt den Report auf Aufträge mit einer Beispiel: |
ExcludeZeros
|
bit boolean |
0 |
Nur bei Erlaubte Werte
Beispiel: |
OnlyItemsOnStock
|
bit boolean |
1 |
Wird im Code nicht verwendet. Beispiel: |
CalcSeal
|
bit boolean |
0 |
Wählt den Ausgabemodus: Detailzeilen je Auftrag oder aggregierte Verteilung für das Versandsiegel. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn CalcSeal = 0 (Standard)
Eine Zeile je ausgewertetem, versendetem Auftrag, sortiert nach DaysToShip und CreateDate.
| Spalte | Typ | Beschreibung |
|---|---|---|
DaysToShip
|
int |
Volle 24-Stunden-Zeiträume zwischen angepasstem Anlagedatum und Versanddatum. Negative Werte werden 0, fehlende 999. |
OrderNr
Kann leer sein |
int |
Auftragsnummer. |
CreateDate
Kann leer sein |
datetime dateTime |
Anlagedatum des Auftrags (erster |
Shipdate
|
datetime dateTime |
Frühestes Versanddatum der Auftragspositionen. |
par_ShopId
|
varchar(6) string |
Verwendeter Shopfilter oder |
par_DaysBack
Kann leer sein |
int |
Verwendeter Wert von |
Result-Set 2 · Wenn CalcSeal = 1
Verteilung der versendeten Aufträge je DaysToShip plus eine zusätzliche Zeile mit DaysToShip = 99, sortiert nach DaysToShip.
| Spalte | Typ | Beschreibung |
|---|---|---|
DaysToShip
Kann leer sein |
int |
Volle 24-Stunden-Zeiträume von angepasster Anlage bis Versand (negative Werte werden 0). 99 kennzeichnet die angefügte Zusatzzeile. |
NRofORders
|
int |
Anzahl der Aufträge mit diesem |
Percentage
Kann leer sein |
float decimal |
Anteil an allen Paketen als Bruchteil (0–1). |
AllPackages
Kann leer sein |
float decimal |
Gesamtzahl der ausgewerteten versendeten Aufträge. |
Beispielantwort
<SqlRowSet1>
<row>
<DaysToShip>0</DaysToShip>
<OrderNr>100234</OrderNr>
<CreateDate>2024-05-06T09:12:00</CreateDate>
<Shipdate>2024-05-06T15:40:00</Shipdate>
<par_ShopId>-alle-</par_ShopId>
<par_DaysBack>14</par_DaysBack>
</row>
<row>
<DaysToShip>1</DaysToShip>
<OrderNr>100251</OrderNr>
<CreateDate>2024-05-07T11:05:00</CreateDate>
<Shipdate>2024-05-08T14:20:00</Shipdate>
<par_ShopId>-alle-</par_ShopId>
<par_DaysBack>14</par_DaysBack>
</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:pixiReport_LogisticQuality_Details>
<!-- <DaysBack>14</DaysBack> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <ExcludeZeros>0</ExcludeZeros> -->
<!-- <OnlyItemsOnStock>1</OnlyItemsOnStock> -->
<!-- <CalcSeal>0</CalcSeal> -->
</ns1:pixiReport_LogisticQuality_Details>
</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:pixiReport_LogisticQuality_Details>
<!-- <DaysBack>14</DaysBack> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <ExcludeZeros>0</ExcludeZeros> -->
<!-- <OnlyItemsOnStock>1</OnlyItemsOnStock> -->
<!-- <CalcSeal>0</CalcSeal> -->
</ns1:pixiReport_LogisticQuality_Details>
</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 = [
// 'DaysBack' => '14',
// 'ShopID' => 'SHP',
// 'ExcludeZeros' => '0',
// 'OnlyItemsOnStock' => '1',
// 'CalcSeal' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReport_LogisticQuality_Details', $soapArguments);
Verwandte Calls
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReport_LogisticQuality_Details