pixiReportShippingEfficiency
Liefert die durchschnittliche Durchlaufzeit von Aufträgen in Tagen und den Anteil der innerhalb von 24 Stunden versendeten Aufträge der letzten N Tage.
Berechnet zwei Versandeffizienz-Kennzahlen für das CEO-Dashboard. Die Werte werden als eine Zeile und zusätzlich über die beiden OUTPUT-Parameter zurückgegeben.
- Betrachtungszeitraum: Der Zeitraum beginnt um Mitternacht des Tages, der
@SamplingPeriodTage vor heute liegt, und endet zum aktuellen Zeitpunkt. Ist@SamplingPeriodNULL, werden 7 Tage verwendet. - Berücksichtigte Aufträge: Ein Auftrag gilt als versendet, wenn er mindestens eine Auftragsposition mit Status
AUSund einemShipDateim Zeitraum hat und keine seiner Positionen einen anderen Status alsAUShat. Teilweise versendete Aufträge und Aufträge mit Positionen in einem anderen Status werden ignoriert. - Durchlaufzeit je Auftrag: Für die im Zeitraum versendeten Positionen werden die
ANG- undAUS-Einträge aus der Auftragshistorie gelesen. Die Durchlaufzeit eines Auftrags ist die Differenz in Stunden (DATEDIFF(hh, …)) zwischen dem frühestenANG-Statuswechsel und dem spätestenAUS-Statuswechsel. - Kennzahlen:
AVGThroughputTimeInDays: Summe der in Tage umgerechneten Durchlaufzeiten je Auftrag (hoursPassed / 24), geteilt durch die Anzahl versendeter Aufträge. Das Ergebnis wird auf 2 Nachkommastellen gerundet.PercThroughputTimeIn24h: Anzahl der Aufträge mit einer Durchlaufzeit von höchstens 24 Stunden, geteilt durch die Anzahl versendeter Aufträge und multipliziert mit 100. Das Ergebnis wird auf 2 Nachkommastellen gerundet.
- Werden keine versendeten Aufträge gefunden, sind beide Werte
0.
Hinweise
- Alle Lesezugriffe erfolgen mit
NOLOCK, die Werte können daher nicht festgeschriebene Daten enthalten. hoursPassedist ein Integer, daher isthoursPassed / 24eine Ganzzahldivision. Jeder Auftrag geht nur mit vollen Tagen in den Durchschnitt ein, Tagesbruchteile werden abgeschnitten. Ein Auftrag mit 30 Stunden zählt als 1 Tag, ein Auftrag mit 20 Stunden als 0 Tage.DATEDIFF(hh, …)zählt überschrittene Stundengrenzen. Es misst nicht die exakt verstrichene Zeit.- Der Divisor ist die Anzahl aller vollständig versendeten Aufträge. Dazu zählen auch Aufträge ohne
ANG/AUS-Einträge in der Historie. Solche Aufträge haben keine Durchlaufzeit oder eine DurchlaufzeitNULL. Sie senken beide Kennzahlen. - Sonderfall: Gibt es versendete Aufträge, aber keiner hat passende Historieneinträge, ist die Summe
NULL.AVGThroughputTimeInDayswird dann alsNULLundPercThroughputTimeIn24hals0geliefert. - Für den frühesten
ANG- und den spätestenAUS-Zeitpunkt werden nur Positionen mitShipDateim Zeitraum herangezogen. - Bei großer Auftragshistorie kann der Aufruf aufwendig sein, da
orderhistorynach allenANG/AUS-Einträgen durchsucht wird.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SamplingPeriod
|
int | 7 |
Anzahl der Tage ab heute rückwärts, über die die Kennzahlen berechnet werden. Der Zeitraum beginnt um Mitternacht dieses Tages. Beispiel: |
AVGThroughputTimeInDays
OUTPUT
|
float decimal |
NULL |
Ausgabe: durchschnittliche Durchlaufzeit in Tagen (volle Tage je Auftrag), auf 2 Nachkommastellen gerundet. Ein übergebener Wert wird ignoriert. |
PercThroughputTimeIn24h
OUTPUT
|
float decimal |
NULL |
Ausgabe: prozentualer Anteil der versendeten Aufträge mit einer Durchlaufzeit von höchstens 24 Stunden, auf 2 Nachkommastellen gerundet. Ein übergebener Wert wird ignoriert. |
Antwort
Result-Set 1 · Immer
Eine Zeile mit den beiden berechneten Kennzahlen.
| Spalte | Typ | Beschreibung |
|---|---|---|
AVGThroughputTimeInDays
Kann leer sein |
float decimal |
Durchschnittliche Durchlaufzeit von |
PercThroughputTimeIn24h
Kann leer sein |
float decimal |
Prozentualer Anteil (0–100) der versendeten Aufträge mit einer Durchlaufzeit von höchstens 24 Stunden, auf 2 Nachkommastellen gerundet. |
Beispielantwort
<SqlRowSet1>
<row>
<AVGThroughputTimeInDays>1.37</AVGThroughputTimeInDays>
<PercThroughputTimeIn24h>62.5</PercThroughputTimeIn24h>
</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:pixiReportShippingEfficiency>
<!-- <SamplingPeriod>30</SamplingPeriod> -->
<!-- <AVGThroughputTimeInDays>?</AVGThroughputTimeInDays> -->
<!-- <PercThroughputTimeIn24h>?</PercThroughputTimeIn24h> -->
</ns1:pixiReportShippingEfficiency>
</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:pixiReportShippingEfficiency>
<!-- <SamplingPeriod>30</SamplingPeriod> -->
<!-- <AVGThroughputTimeInDays>?</AVGThroughputTimeInDays> -->
<!-- <PercThroughputTimeIn24h>?</PercThroughputTimeIn24h> -->
</ns1:pixiReportShippingEfficiency>
</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 = [
// 'SamplingPeriod' => '30',
// 'AVGThroughputTimeInDays' => '?',
// 'PercThroughputTimeIn24h' => '?',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportShippingEfficiency', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportShippingEfficiency