pixiReportScanInPerTimeQuant
Liefert die Anzahl der Einscannungen (Auftragshistorie-Status `EIN`) je Zeitabschnitt einer wählbaren Länge in Stunden innerhalb eines Zeitraums, optional für einen Shop.
Erstellt eine Zeitreihe der Einscannungen für Dashboards.
- Standardwerte: Ist
startDateTimeNULL, wird der Beginn des aktuellen Tages (Mitternacht) verwendet; istendDateTimeNULL, das aktuelle Datum mit Uhrzeit; wirdtimePeriodexplizit als NULL übergeben, wird1verwendet (der deklarierte Standard bei Weglassen des Parameters ist2). - Der Zeitraum von
startDateTimebisendDateTimewird in aufeinanderfolgende Abschnitte vontimePeriodStunden aufgeteilt (Bruchteile wie0.5für 30 Minuten sind möglich). Der letzte Abschnitt wird beiendDateTimeabgeschnitten. - Je Abschnitt werden die Einträge in
orderHistorymitstatus = 'EIN'gezählt, derenStatusChangeDatezwischen Abschnittsbeginn und Abschnittsende liegt (beide Grenzen eingeschlossen). - Ist
shopIDleer oder NULL, werden alle Shops gezählt, sonst nur Historieneinträge dieses Shops. - Je Abschnitt wird eine Zeile in chronologischer Reihenfolge geliefert, auch Abschnitte mit Anzahl
0.
Liegt startDateTime nicht vor endDateTime, ist die Ergebnismenge leer.
Hinweise
orderHistorywird mitWITH (NOLOCK)gelesen; die Zählung kann nicht festgeschriebene Daten enthalten.- Da
BETWEENbeide Grenzen einschließt, wird ein Historieneintrag genau auf einer Abschnittsgrenze in zwei benachbarten Abschnitten gezählt. startTimePeriodundendTimePeriodsind Zeichenketten ausCONVERT(VARCHAR, …)im Standardformat (z. B.Jan 15 2024 8:00AM); Sekunden fehlen und das Format hängt von der Serversprache ab. Die Werte sind entsprechend zu parsen oder die Abschnittszeiten clientseitig zu berechnen.- Die Spalte
shopIDgibt den übergebenen Parameter zurück und ist daher leer (bzw. NULL), wenn alle Shops gezählt werden. - Achtung: Ein
timePeriodvon0oder ein negativer Wert führt zu einer Endlosschleife; es ist immer ein positiver Wert zu übergeben. - Große Zeiträume mit kleinen Abschnitten führen je Abschnitt eine Zählabfrage aus und können langsam sein.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
startDateTime
|
datetime dateTime |
NULL |
Beginn des ausgewerteten Zeitraums. NULL bedeutet Beginn des aktuellen Tages (00:00). Beispiel: |
endDateTime
|
datetime dateTime |
NULL |
Ende des ausgewerteten Zeitraums. NULL bedeutet aktuelles Datum mit Uhrzeit. Beispiel: |
timePeriod
|
float decimal |
2 |
Länge eines Zeitabschnitts in Stunden; Bruchteile sind erlaubt. Explizites NULL wird als 1 behandelt. Muss größer als 0 sein. Beispiel: |
shopID
|
varchar(3) string |
– |
Shop, dessen Einscannungen gezählt werden. Leer oder NULL zählt alle Shops. Beispiel: |
Antwort
Result-Set 1 · Immer; leer, wenn startDateTime nicht vor endDateTime liegt.
Eine Zeile je Zeitabschnitt in chronologischer Reihenfolge mit der Anzahl der Einscannungen.
| Spalte | Typ | Beschreibung |
|---|---|---|
shopID
Kann leer sein |
varchar(3) string |
Wert des Parameters |
SUMScanIn
Kann leer sein |
int |
Anzahl der |
startTimePeriod
Kann leer sein |
varchar(50) string |
Beginn des Abschnitts als Text im SQL-Server-Standardformat (z. B. |
endTimePeriod
Kann leer sein |
varchar(50) string |
Ende des Abschnitts als Text im SQL-Server-Standardformat; der letzte Abschnitt endet bei |
Beispielantwort
<SqlRowSet1>
<row>
<shopID>SHP</shopID>
<SUMScanIn>42</SUMScanIn>
<startTimePeriod>Jan 15 2024 6:00AM</startTimePeriod>
<endTimePeriod>Jan 15 2024 7:00AM</endTimePeriod>
</row>
<row>
<shopID>SHP</shopID>
<SUMScanIn>57</SUMScanIn>
<startTimePeriod>Jan 15 2024 7:00AM</startTimePeriod>
<endTimePeriod>Jan 15 2024 8:00AM</endTimePeriod>
</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:pixiReportScanInPerTimeQuant>
<!-- <startDateTime>2024-01-15T06:00:00</startDateTime> -->
<!-- <endDateTime>2024-01-15T18:00:00</endDateTime> -->
<!-- <timePeriod>1</timePeriod> -->
<!-- <shopID>SHP</shopID> -->
</ns1:pixiReportScanInPerTimeQuant>
</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:pixiReportScanInPerTimeQuant>
<!-- <startDateTime>2024-01-15T06:00:00</startDateTime> -->
<!-- <endDateTime>2024-01-15T18:00:00</endDateTime> -->
<!-- <timePeriod>1</timePeriod> -->
<!-- <shopID>SHP</shopID> -->
</ns1:pixiReportScanInPerTimeQuant>
</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 = [
// 'startDateTime' => '2024-01-15T06:00:00',
// 'endDateTime' => '2024-01-15T18:00:00',
// 'timePeriod' => '1',
// 'shopID' => 'SHP',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportScanInPerTimeQuant', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportScanInPerTimeQuant