pixiGetShippedOrdersPerLocation
Liefert versendete Aufträge (auf Basis von Rechnungen) eines Zeitraums je Lager, entweder als Detailzeilen oder als Anzahl und Summe je Lager und Währung.
Ermittelt versendete Aufträge über ihre Rechnungen und gibt sie je Lager (LocationID der Auftragspositionen) aus.
Schritt 1 – Rechnungen auswählen. Eine Rechnung wird berücksichtigt, wenn:
- mindestens eine ihrer Rechnungspositionen zu einer Auftragsposition gehört, die einen
OrderHistory-Eintrag mit StatusEINhat, - ihr Datum zwischen
@FromDateund@ToDateliegt (inklusive). Bei@SearchByScanOutDate = 1wird das Scan-Out-Datum (ScanOutDate) verwendet, sonst das Rechnungsdatum (InvDate), - ihr
totalgrößer als 0 ist. Mit@IncludeOrdersWithTotalZero = 1werden zusätzlich Rechnungen mit Summe genau 0 einbezogen. Negative Summen werden nie berücksichtigt, - bei gesetztem
@CustomerNrExternal(Leerzeichen werden entfernt, leer bedeutet kein Filter) der Kunde der Rechnung diese externe Kundennummer hat.
Schritt 2 – Aufträge je Rechnung und Lager. Für jede ausgewählte Rechnung werden die eindeutigen Kombinationen aus LocationID und OrderNrExternal der Auftragspositionen auf der Rechnung gesammelt. Ist @LocId gesetzt, werden nur Auftragspositionen dieses Lagers berücksichtigt. Jede Kombination wird je Rechnung nach OrderNrExternal durchnummeriert.
Schritt 3 – Ausgabe.
@ShowDetails = 1(Standard): eine Zeile je Rechnung, Lager und externer Auftragsnummer mit Rechnungsdaten, Kundenname, Lieferadresse, Währung, Versanddienstleister und Tracking-ID. Rechnungswerte wiederholen sich, wenn eine Rechnung mehrere externe Aufträge oder Lager enthält. Sortiert nachInvDate.- Jeder andere Wert: eine Zeile je Lager und Währung mit der Anzahl der Zeilen (
NrOfOrders) und der Summe der Rechnungsbeträge (Total). Eine Sortierung ist nicht festgelegt.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen; das Ergebnis kann nicht festgeschriebene Daten enthalten. @FromDateund@ToDatesindvarchar-Werte, die mitBETWEENverglichen werden. Ein@ToDateohne Uhrzeit (z. B.2024-01-31) bedeutet Mitternacht, spätere Rechnungen dieses Tages fehlen dann. Besser2024-01-31 23:59:59oder den Folgetag übergeben. Ein eindeutiges Format wieyyyy-mm-dd hh:mi:ssverwenden.- Im Summenmodus zählt
NrOfOrdersdie Kombinationen aus Rechnung, Lager und externer Auftragsnummer, nicht eindeutige Rechnungen. - Im Summenmodus wird ein Rechnungsbetrag nur einmal je Rechnung gezählt: Er wird dem Lager der Kombination mit der alphabetisch ersten
OrderNrExternalder Rechnung zugeordnet. Enthält eine Rechnung Auftragspositionen mehrerer Lager, fällt der gesamte Betrag nur einem Lager zu. Bei gesetztem@LocIderfolgt die Nummerierung nur über die gefilterten Zeilen, sodass der volle Rechnungsbetrag diesem Lager zugerechnet wird. - Rechnungen ohne zugehörigen Kunden werden ausgeschlossen; im Detailmodus zusätzlich Rechnungen ohne passende Lieferadresse (
ShipAdrRef) oder Währung (Inner Joins). - Rechnungen, deren Auftragspositionen keinen
OrderHistory-StatusEINhaben, werden unabhängig vom Datum nicht geliefert.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ShowDetails
|
int | 1 |
Ausgabemodus: Erlaubte Werte
Beispiel: |
FromDate
Pflicht
|
varchar(25) string |
– |
Beginn des Zeitraums (inklusive), verglichen mit Rechnungsdatum oder Scan-Out-Datum. Beispiel: |
ToDate
Pflicht
|
varchar(25) string |
– |
Ende des Zeitraums (inklusive). Ohne Uhrzeit bedeutet der Wert Mitternacht zu Beginn dieses Tages. Beispiel: |
CustomerNrExternal
|
varchar(60) string |
– |
Optionale externe Kundennummer; nur Rechnungen dieses Kunden werden geliefert. Leer bedeutet kein Filter. Beispiel: |
IncludeOrdersWithTotalZero
|
bit boolean |
0 |
Bei Erlaubte Werte
Beispiel: |
SearchByScanOutDate
|
bit boolean |
0 |
Legt fest, auf welches Datum sich der Zeitraum bezieht. Erlaubte Werte
Beispiel: |
LocId
|
varchar(3) string |
– |
Optionale Lager-ID; nur Auftragspositionen dieses Lagers werden berücksichtigt. Leer bedeutet alle Lager. Beispiel: |
Antwort
Result-Set 1 · Wenn @ShowDetails = 1
Eine Zeile je Rechnung, Lager und externer Auftragsnummer, sortiert nach Rechnungsdatum.
| Spalte | Typ | Beschreibung |
|---|---|---|
InvoiceNr
Kann leer sein |
string |
Rechnungsnummer |
InvDate
Kann leer sein |
dateTime |
Rechnungsdatum |
ScanOutDate
Kann leer sein |
dateTime |
Scan-Out-Datum der Rechnung |
total
Kann leer sein |
decimal |
Rechnungssumme (wiederholt sich für jede Zeile derselben Rechnung) |
ShipmentTrackingID
Kann leer sein |
string |
Sendungsverfolgungsnummer |
SName
Kann leer sein |
string |
Kundenname |
SAddress
Kann leer sein |
string |
Straße der Lieferadresse |
SCity
Kann leer sein |
string |
Ort der Lieferadresse |
SZIP
Kann leer sein |
string |
Postleitzahl der Lieferadresse |
SCountry
Kann leer sein |
string |
Land der Lieferadresse |
OrderNrExternal
Kann leer sein |
varchar(50) string |
Externe Auftragsnummer |
CurrencyCode
Kann leer sein |
string |
Währungscode der Rechnung |
ShipVendor
Kann leer sein |
string |
Versanddienstleister der Rechnung |
CustomerNrExternal
Kann leer sein |
string |
Externe Kundennummer |
LocationID
Kann leer sein |
varchar(3) string |
Lager der Auftragspositionen |
Result-Set 2 · Wenn @ShowDetails ungleich 1
Eine Zeile je Lager und Währung mit Anzahl und Summe.
| Spalte | Typ | Beschreibung |
|---|---|---|
NrOfOrders
|
int |
Anzahl der Kombinationen aus Rechnung, Lager und externer Auftragsnummer |
LocationID
Kann leer sein |
varchar(3) string |
Lager |
Total
Kann leer sein |
decimal |
Summe der Rechnungsbeträge, jede Rechnung einmal gezählt |
CurrencyCode
Kann leer sein |
string |
Währungscode |
Beispielantwort
<SqlRowSet1>
<row>
<InvoiceNr>240117</InvoiceNr>
<InvDate>2024-01-15T10:22:00</InvDate>
<ScanOutDate>2024-01-15T14:05:00</ScanOutDate>
<total>89.90</total>
<ShipmentTrackingID>00340434161234567890</ShipmentTrackingID>
<SName>Max Mustermann</SName>
<SAddress>Hauptstr. 12</SAddress>
<SCity>München</SCity>
<SZIP>80331</SZIP>
<SCountry>DE</SCountry>
<OrderNrExternal>SHOP-100512</OrderNrExternal>
<CurrencyCode>EUR</CurrencyCode>
<ShipVendor>DHL</ShipVendor>
<CustomerNrExternal>K-100245</CustomerNrExternal>
<LocationID>001</LocationID>
</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:pixiGetShippedOrdersPerLocation>
<!-- <ShowDetails>1</ShowDetails> -->
<FromDate>2024-01-01 00:00:00</FromDate>
<ToDate>2024-01-31 23:59:59</ToDate>
<!-- <CustomerNrExternal>K-100245</CustomerNrExternal> -->
<!-- <IncludeOrdersWithTotalZero>0</IncludeOrdersWithTotalZero> -->
<!-- <SearchByScanOutDate>0</SearchByScanOutDate> -->
<!-- <LocId>001</LocId> -->
</ns1:pixiGetShippedOrdersPerLocation>
</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:pixiGetShippedOrdersPerLocation>
<!-- <ShowDetails>1</ShowDetails> -->
<FromDate>2024-01-01 00:00:00</FromDate>
<ToDate>2024-01-31 23:59:59</ToDate>
<!-- <CustomerNrExternal>K-100245</CustomerNrExternal> -->
<!-- <IncludeOrdersWithTotalZero>0</IncludeOrdersWithTotalZero> -->
<!-- <SearchByScanOutDate>0</SearchByScanOutDate> -->
<!-- <LocId>001</LocId> -->
</ns1:pixiGetShippedOrdersPerLocation>
</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 = [
// 'ShowDetails' => '1',
'FromDate' => '2024-01-01 00:00:00',
'ToDate' => '2024-01-31 23:59:59',
// 'CustomerNrExternal' => 'K-100245',
// 'IncludeOrdersWithTotalZero' => '0',
// 'SearchByScanOutDate' => '0',
// 'LocId' => '001',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetShippedOrdersPerLocation', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetShippedOrdersPerLocation