pixiGetExpiredReservations
Liefert Aufträge eines POS-Standorts, deren Auftragspositionen älter als die Reservierungsfrist sind und keine Reservierung haben.
Liefert die eindeutigen Auftragsnummern und Kundenreferenzen der Aufträge an einem POS-Standort, deren Reservierungsfrist abgelaufen ist.
Eine Auftragsposition wird berücksichtigt, wenn alle folgenden Bedingungen erfüllt sind:
LocationIDder Auftragsposition entspricht@LocationId(dem POS-Standort).- Dem POS-Standort ist ein Reservierungsstandort zugeordnet (
Location.ResLocID), und dieser Standort existiert inLocation. - Der über
CustRefreferenzierte Kunde existiert inCustomers. - Zur Auftragsposition existiert kein Eintrag in
Reservation(ResOrderlineRef). - Der Status der Auftragsposition ist
ANGoderHAL. - Seit
OrderDatesind mehr ganze Tage vergangen als die Reservierungsfrist. Die Frist istResExpDaysdes Reservierungsstandorts. Ist dieser Wert NULL, gilt die globale EinstellungReservationExpiry. - Jede Auftragsposition desselben Auftrags hat einen
ItemLocationSpecific-Datensatz für den Reservierungsstandort. Fehlt dieser Datensatz auch nur bei einer Position, wird der gesamte Auftrag ausgeschlossen.
Jeder Auftrag erscheint nur einmal. Die Ausgabe ist aufsteigend nach ordernr sortiert.
Hinweise
- Wird
LocationIdweggelassen (NULL), ist der VergleichLocationID = NULLnie wahr und das Ergebnis immer leer. Es sollte daher immer ein Standort übergeben werden. - So wird die Reservierungsfrist aus der Einstellung
ReservationExpiryermittelt:- Die Einstellung wird über
fpixi_GetSettinggelesen. Diese Funktion liefert'0', wenn die Einstellung nicht existiert. - Eine fehlende Einstellung ergibt damit eine Frist von 0 Tagen, nicht 14. Dann qualifiziert sich jede Auftragsposition, die älter als einen Tag ist.
- Der Ersatzwert von 14 Tagen greift nur, wenn die Einstellung mit leerem Wert existiert.
- Ein nicht numerischer Wert der Einstellung führt zu einem Konvertierungsfehler.
- Die Einstellung wird über
- Alle Tabellen werden mit
NOLOCKgelesen, daher können nicht festgeschriebene Daten geliefert werden. - Der Kopfkommentar der Prozedur ("orders ready to pick up") passt nicht zu Name und Logik. Die hier beschriebene Funktionsweise folgt dem Code.
- Die Prozedur liest nur Daten. Sie storniert keine Aufträge und ändert keine Daten.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
LocationId
|
varchar(50) string |
NULL |
ID des POS-Standorts ( Beispiel: |
Antwort
Result-Set 1 · Immer; leer, wenn kein Auftrag passt oder LocationId NULL ist.
Eine Zeile je Auftrag mit abgelaufener Reservierungsfrist, sortiert nach Auftragsnummer.
| Spalte | Typ | Beschreibung |
|---|---|---|
ordernr
|
int |
Auftragsnummer ( |
CustRef
|
int |
Kundenschlüssel des Auftrags ( |
Beispielantwort
<SqlRowSet1>
<row>
<ordernr>100245</ordernr>
<CustRef>5821</CustRef>
</row>
<row>
<ordernr>100312</ordernr>
<CustRef>6110</CustRef>
</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:pixiGetExpiredReservations>
<!-- <LocationId>P01</LocationId> -->
</ns1:pixiGetExpiredReservations>
</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:pixiGetExpiredReservations>
<!-- <LocationId>P01</LocationId> -->
</ns1:pixiGetExpiredReservations>
</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 = [
// 'LocationId' => 'P01',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetExpiredReservations', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetExpiredReservations