pixiGetSupplierOrder
Liefert Lieferantenbestellungen positionsweise, optional gefiltert nach Lieferant, Bestellnummer, Zeitraum und Status, mit einfachem zeilenbasiertem Paging.
Liefert eine Zeile pro Position einer Lieferantenbestellung, zusammen mit Kopfdaten der Bestellung, dem Lieferanten, dem Artikel, dem Lieferlager (Location) und den Benutzern, die die Datensätze angelegt bzw. zuletzt geändert haben.
Filter (alle per UND verknüpft):
SupplNr: nur Bestellungen dieses Lieferanten. Ein Leerstring gilt als nicht gesetzt.SupplOrderNr: nur die Bestellung mit dieser internen Nummer (InternalNumber).0gilt als nicht gesetzt.Status: nur Bestellungen mit diesem Statuscode, z. B.NEW,CLS,BES,CON. Ein Leerstring gilt als nicht gesetzt.DateFrom/DateTo: verglichen wird das Bestelldatum; fehlt es, wird das Anlagedatum der Bestellung verwendet.DateFromwird auf den Tagesbeginn abgerundet. Fehlt der Wert oder liegt er vor dem 01.01.1970, wird 01.01.1970 00:00 verwendet.DateTowird auf das Tagesende (23:59:59.997) erweitert. Fehlt der Wert oder liegt er vor dem 01.01.1970, wird das aktuelle Datum mit Uhrzeit verwendet.
Paging: Die Zeilen werden über RowNr aufsteigend nach der internen ID der Lieferantenbestellung nummeriert. Zurückgegeben werden nur Zeilen mit RowNr größer als Start, höchstens RowCount Zeilen. Für die nächste Seite wird Start um RowCount erhöht.
Berechnete Spalten:
OrderQtyist die noch offene Menge: bestellte Menge abzüglich nicht gelieferter und gelieferter Menge.SupplPriceist der Preis der Position; ist dieser 0 oder leer, wird der Lieferantenpreis aus den Zusatz-Lieferantendaten des Artikels für diesen Lieferanten verwendet, ansonsten der Lieferantenpreis aus dem Artikelstamm.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, daher können nicht festgeschriebene Daten geliefert werden. - Das Paging zählt Bestellpositionen, nicht Bestellungen: Eine Bestellung mit mehreren Positionen kann auf zwei Seiten verteilt werden.
RowNrwird nur nach der ID der Lieferantenbestellung vergeben; Positionen derselben Bestellung erhalten Nummern in nicht definierter Reihenfolge, und das Endergebnis hat keinORDER BY. Das Paging innerhalb einer Bestellung ist daher nicht streng deterministisch.- Alle Joins sind Inner Joins: Bestellungen ohne Positionen sowie Bestellungen oder Positionen, deren Typ, Status, Lieferlager, Lieferant, Artikel oder anlegender/ändernder Benutzer nicht aufgelöst werden kann, werden nicht geliefert.
- Ohne
DateToist die aktuelle Uhrzeit (nicht das Tagesende) die Obergrenze. - Der Spaltenname
SupplierOrderLineUpateUserenthält einen Tippfehler (Upate) und muss genau so ausgelesen werden. SupplierOrderlineKeyundSupplierOrderlineIdenthalten denselben Wert, ebensoSupplierOrderNRExternalundExtOrderNr.- Der Ersatzpreis aus den Zusatz-Lieferantendaten wird per
TOP 1ohne Sortierung ermittelt; bei mehreren Einträgen für Artikel und Lieferant ist nicht definiert, welcher verwendet wird. - Die Statuswerte
NEW,CLS,BES,CONsind nur in einem Code-Kommentar genannt; die tatsächlichen Codes stammen aus der Statustabelle der Lieferantenbestellungen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer. Nur Bestellungen dieses Lieferanten werden geliefert. NULL oder Leerstring: alle Lieferanten. Beispiel: |
SupplOrderNr
|
int | NULL |
Interne Nummer der Lieferantenbestellung. NULL oder 0: alle Bestellungen. Beispiel: |
DateFrom
|
datetime dateTime |
NULL |
Beginn des Zeitraums (Bestelldatum, bzw. Anlagedatum ohne Bestelldatum). Wird auf den Tagesbeginn abgerundet; NULL oder vor dem 01.01.1970 bedeutet 01.01.1970. Beispiel: |
DateTo
|
datetime dateTime |
NULL |
Ende des Zeitraums. Wird auf das Ende des angegebenen Tages erweitert; NULL oder vor dem 01.01.1970 bedeutet aktuelles Datum mit Uhrzeit. Beispiel: |
Status
|
varchar(3) string |
NULL |
Statuscode der Lieferantenbestellung. NULL oder Leerstring: alle Status. Der Code-Kommentar nennt NEW, CLS, BES und CON. Erlaubte Werte
Beispiel: |
RowCount
|
int | 1000 |
Maximale Anzahl zurückgegebener Zeilen (Bestellpositionen). Beispiel: |
Start
|
int | 0 |
Paging-Offset: Nur Zeilen mit Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Eine Zeile pro Position einer Lieferantenbestellung, die den Filtern entspricht, begrenzt durch RowCount und Start.
| Spalte | Typ | Beschreibung |
|---|---|---|
RowNr
|
bigint long |
Laufende Zeilennummer für das Paging, nach ID der Lieferantenbestellung. |
SupplierOrderlineKey
|
int |
ID der Bestellposition. |
SupplierOrderNR
Kann leer sein |
int |
Interne Nummer der Lieferantenbestellung. |
SupplierOrderNRExternal
Kann leer sein |
string |
Externer Code der Lieferantenbestellung. |
OrderDate
Kann leer sein |
datetime dateTime |
Bestelldatum. |
SupplNr
Kann leer sein |
string |
Lieferantennummer. |
Status
Kann leer sein |
varchar(3) string |
Statuscode der Lieferantenbestellung. |
EstimatedDelivery
Kann leer sein |
datetime dateTime |
Voraussichtlicher Liefertermin der Position. |
Note
Kann leer sein |
varchar(1024) string |
Hinweis für den Lieferanten aus dem Bestellkopf. |
EANUPC
Kann leer sein |
string |
EAN/UPC des Artikels. |
ItemNrSuppl
Kann leer sein |
string |
Lieferanten-Artikelnummer der Position. |
OrderQty
|
decimal |
Offene Menge: bestellte abzüglich nicht gelieferter und gelieferter Menge. |
VPE
Kann leer sein |
decimal |
Verpackungseinheit der Position. |
ItemName
Kann leer sein |
string |
Artikelbezeichnung. |
SupplierOrderUpdateDate
Kann leer sein |
datetime dateTime |
Letztes Änderungsdatum des Bestellkopfs. |
SupplierOrderUpdateUser
Kann leer sein |
string |
Benutzer, der den Bestellkopf zuletzt geändert hat. |
SupplierOrderlineUpdateDate
Kann leer sein |
datetime dateTime |
Letztes Änderungsdatum der Position. |
SupplierOrderLineUpateUser
Kann leer sein |
string |
Benutzer, der die Position zuletzt geändert hat (Spaltenname mit Tippfehler). |
ItemKey
|
int |
Interner Artikelschlüssel. |
SupplPrice
Kann leer sein |
decimal |
Lieferantenpreis: Positionspreis, sonst Preis aus Zusatz-Lieferantendaten, sonst Lieferantenpreis des Artikels. |
OrderedQty
Kann leer sein |
decimal |
Bestellte Menge. |
UndeliveredQty
Kann leer sein |
decimal |
Als nicht geliefert markierte Menge. |
DeliveredQty
Kann leer sein |
decimal |
Gelieferte Menge. |
SupplierOrderType
Kann leer sein |
string |
Name des Bestelltyps. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemCodeInternal
Kann leer sein |
string |
Interner Artikelcode an der Position. |
DeliveryLocation
Kann leer sein |
string |
Location-ID des Lieferlagers. |
ExtOrderNr
Kann leer sein |
string |
Externer Code der Lieferantenbestellung (wie |
SupplierOrderId
|
int |
Interne ID der Lieferantenbestellung. |
SupplierOrderlineId
|
int |
ID der Position (wie |
SupplierOrderCreateDate
Kann leer sein |
dateTime |
Anlagedatum der Lieferantenbestellung. |
SupplierOrderCreateUser
Kann leer sein |
string |
Benutzer, der die Lieferantenbestellung angelegt hat. |
Comment
Kann leer sein |
nvarchar(2000) string |
Kommentar der Position. |
Beispielantwort
<SqlRowSet1>
<row>
<RowNr>1</RowNr>
<SupplierOrderlineKey>88231</SupplierOrderlineKey>
<SupplierOrderNR>10452</SupplierOrderNR>
<SupplierOrderNRExternal>PO-2024-0117</SupplierOrderNRExternal>
<OrderDate>2024-02-12T09:15:00</OrderDate>
<SupplNr>L001</SupplNr>
<Status>BES</Status>
<EstimatedDelivery>2024-02-26T00:00:00</EstimatedDelivery>
<Note>Please deliver on pallets</Note>
<EANUPC>4006381333931</EANUPC>
<ItemNrSuppl>SUP-7781</ItemNrSuppl>
<OrderQty>40</OrderQty>
<VPE>10</VPE>
<ItemName>Ballpoint pen blue</ItemName>
<SupplierOrderUpdateDate>2024-02-12T09:20:00</SupplierOrderUpdateDate>
<SupplierOrderUpdateUser>mmueller</SupplierOrderUpdateUser>
<SupplierOrderlineUpdateDate>2024-02-12T09:18:00</SupplierOrderlineUpdateDate>
<SupplierOrderLineUpateUser>mmueller</SupplierOrderLineUpateUser>
<ItemKey>5123</ItemKey>
<SupplPrice>0.45</SupplPrice>
<OrderedQty>50</OrderedQty>
<UndeliveredQty>0</UndeliveredQty>
<DeliveredQty>10</DeliveredQty>
<SupplierOrderType>Standard</SupplierOrderType>
<ItemNrInt>100245</ItemNrInt>
<ItemCodeInternal>100245</ItemCodeInternal>
<DeliveryLocation>001</DeliveryLocation>
<ExtOrderNr>PO-2024-0117</ExtOrderNr>
<SupplierOrderId>3310</SupplierOrderId>
<SupplierOrderlineId>88231</SupplierOrderlineId>
<SupplierOrderCreateDate>2024-02-12T09:10:00</SupplierOrderCreateDate>
<SupplierOrderCreateUser>mmueller</SupplierOrderCreateUser>
<Comment/>
</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:pixiGetSupplierOrder>
<!-- <SupplNr>L001</SupplNr> -->
<!-- <SupplOrderNr>10452</SupplOrderNr> -->
<!-- <DateFrom>2024-01-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-03-31T00:00:00</DateTo> -->
<!-- <Status>BES</Status> -->
<!-- <RowCount>500</RowCount> -->
<!-- <Start>0</Start> -->
</ns1:pixiGetSupplierOrder>
</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:pixiGetSupplierOrder>
<!-- <SupplNr>L001</SupplNr> -->
<!-- <SupplOrderNr>10452</SupplOrderNr> -->
<!-- <DateFrom>2024-01-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-03-31T00:00:00</DateTo> -->
<!-- <Status>BES</Status> -->
<!-- <RowCount>500</RowCount> -->
<!-- <Start>0</Start> -->
</ns1:pixiGetSupplierOrder>
</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 = [
// 'SupplNr' => 'L001',
// 'SupplOrderNr' => '10452',
// 'DateFrom' => '2024-01-01T00:00:00',
// 'DateTo' => '2024-03-31T00:00:00',
// 'Status' => 'BES',
// 'RowCount' => '500',
// 'Start' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetSupplierOrder', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetSupplierOrder