pixiGetOrderlinesForOrder
Liefert die Auftragspositionen eines oder mehrerer Aufträge, optional mit zusammengefassten Stücklisten-Positionen, inklusive Bestands-, Rechnungs- und Versanddaten.
Ermittelt die zu lesenden Aufträge und liefert deren Auftragspositionen in einer Ergebnismenge.
Auswahl der Aufträge
- Der Auftrag mit
OrderNr=@OrderNrwird immer berücksichtigt (sofern vorhanden). - Ist
@OrderXMLangegeben, wird jedes Element/ORDERS/ORDER(elementbasiert) mit den UnterelementenORDERNRundORDERNREXTERNALgelesen. Jeder Auftrag, dessenOrderNrzuORDERNRoder dessenOrderNrExternalzuORDERNREXTERNALpasst, wird hinzugefügt.
Stücklisten-Modus
@ReturnBundlebestimmt den Modus. Ist der WertNULL, wird die EinstellungAPIBundleOrderlinesverwendet (fehlende Einstellung =0).0: Jede Auftragsposition wird mit ihren eigenen Werten geliefert (ArtName,Qty,Price,Status, ...).1: Auftragspositionen, die zu einer Stückliste gehören (BundleOrderlineRefgesetzt), werden zu einer Zeile pro Stückliste zusammengefasst (die Position mit der kleinstenOrderlineKey). Bezeichnung, Menge, Preis, externe Nummern, Datum, Artikel, Notiz, Rabatte, Betrag, Steuersatz und Nettopreis werden, soweit vorhanden, aus der Stücklisten-Position (BundleOrderlines) übernommen. Der Status der Stückliste wird abhängig von der EinstellungAPIBundleOneAllAUSaus allen zugehörigen Positionen berechnet: Bei1wird der gemeinsame Status geliefert, wenn alle Positionen denselben Status haben, sonst der Status mit der kleinstenOrderStateKey; bei0der Status mit der größtenOrderStateKey.
Berechnete Spalten
StatusText: Text des Status ausOrderStates.OrderCurrency: Währungscode (CodeA) des Auftrags.VATRate:H, wenn der Steuersatz der Rechnungsposition (bzw. der Stückliste) demTaxRateHighdes Auftrags entspricht,LbeiTaxRateLow, sonstN(auch wenn keine Rechnungsposition existiert).PriceNoVAT: Nettopreis der Rechnungsposition (bzw. der Stückliste), auf 2 Nachkommastellen gerundet.AvailStockOrderLine: verfügbare Menge des Artikels am Lager der Position (Lagermenge abzüglich offener Reservierungen des Artikels).ReservedCount: der kleinere Wert ausQtyundAvailStockOrderLine, jedoch nicht kleiner als 0.ShipDate:ScanOutDateder zugehörigen Rechnung.
Das Ergebnis hat keine explizite Sortierung.
Hinweise
- Alle Tabellen werden
WITH (NOLOCK)gelesen; nicht festgeschriebene Daten können geliefert werden. @OrderNrhat keinen Standardwert und muss immer übergeben werden. Wird nur@OrderXMLverwendet, kann eine nicht existierende Nummer (z. B.0) übergeben werden.- Wird derselbe Auftrag sowohl über
@OrderNrals auch über@OrderXMLausgewählt, wird sein Schlüssel doppelt übernommen und seine Positionen erscheinen doppelt im Ergebnis. - Auftragspositionen mit mehreren Rechnungspositionen mit
ItemQty>= 0 können mehrfach erscheinen (eine Zeile pro Rechnungsposition). Rechnungspositionen mit negativer Menge (Retouren) werden ignoriert. - Im Stücklisten-Modus werden nur Positionen mit
BundleOrderlineRef IS NULLoder die erste Position einer Partition geliefert. Speichern Nicht-Stücklisten-Positionen0stattNULLinBundleOrderlineRef, würden sie zusammengefasst und nur eine davon geliefert; das hängt von den Daten ab und ist im Code nicht erkennbar. AvailStockOrderLinezieht die Anzahl der Reservierungszeilen des Artikels über alle Aufträge ab (offene Status außerEIN,FUT,FUS), nicht pro Lager. Der Wert istNULL, wenn für den Artikel keinItemLocationSpecific-Eintrag für das Lager existiert; dann ist auchReservedCountNULL.PriceNoVATist für noch nicht berechnete PositionenNULL(sofern nicht aus einer Stücklisten-Position übernommen).- Ungültiges XML in
@OrderXMLführt zu einem SQL-Fehler vonsp_xml_preparedocument.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNr
Pflicht
|
int | – |
Pixi-Auftragsnummer ( Beispiel: |
OrderXML
|
varchar(max) xml |
NULL |
Optionales XML mit weiteren Aufträgen, zugeordnet über Beispiel:
|
ReturnBundle
|
bit boolean |
NULL |
Steuert, ob Stücklisten-Positionen zusammengefasst werden. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein, wenn kein Auftrag passt).
Auftragspositionen der ausgewählten Aufträge; im Stücklisten-Modus eine Zeile pro Stückliste plus alle übrigen Positionen.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderlineKey
|
int |
Schlüssel der Auftragsposition (im Stücklisten-Modus die erste Position der Stückliste). |
ArtName
Kann leer sein |
string |
Artikelbezeichnung der Position bzw. Stückliste. |
Qty
Kann leer sein |
int |
Bestellte Menge. |
Price
Kann leer sein |
decimal |
Einzelpreis. |
Status
Kann leer sein |
char(3) string |
Statuscode der Position bzw. berechneter Stücklisten-Status. |
StatusText
Kann leer sein |
string |
Text des Status aus |
ItemNrExternal
Kann leer sein |
string |
Externe Artikelnummer. |
OrderNr
Kann leer sein |
int |
Pixi-Auftragsnummer. |
OrderNrExternal
Kann leer sein |
string |
Externe (Shop-)Auftragsnummer. |
OrderCurrency
Kann leer sein |
string |
Währungscode des Auftrags ( |
OrderDate
Kann leer sein |
dateTime |
Auftragsdatum. |
ItemRef
Kann leer sein |
int |
Artikelschlüssel ( |
oItemSpecialNote
Kann leer sein |
string |
Besondere Notiz zur Position. |
DiscountValue
Kann leer sein |
decimal |
Rabattbetrag. |
DiscountPerc
Kann leer sein |
decimal |
Rabatt in Prozent. |
FullPrice
Kann leer sein |
decimal |
Positionsbetrag ( |
VATRate
|
varchar(1) string |
|
PriceNoVAT
Kann leer sein |
decimal |
Netto-Einzelpreis aus Rechnungsposition bzw. Stückliste, auf 2 Stellen gerundet. |
AvailStockOrderLine
Kann leer sein |
int |
Verfügbare Menge des Artikels am Lager der Position abzüglich offener Reservierungen. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ShipDate
Kann leer sein |
dateTime |
Scan-Out-Datum der zugehörigen Rechnung. |
DFShipDate
Kann leer sein |
dateTime |
Versanddatum bei Direct Fulfillment. |
DFShipmentTrackingID
Kann leer sein |
string |
Tracking-ID bei Direct Fulfillment. |
ReservedCount
Kann leer sein |
int |
Kleinerer Wert aus |
ItemNrSuppl
Kann leer sein |
string |
Lieferanten-Artikelnummer. |
Beispielantwort
<SqlRowSet1>
<row>
<OrderlineKey>553201</OrderlineKey>
<ArtName>Laufschuh Pro 42</ArtName>
<Qty>1</Qty>
<Price>89.9000</Price>
<Status>AUS</Status>
<StatusText>Ausgeliefert</StatusText>
<ItemNrExternal>LS-PRO-42</ItemNrExternal>
<OrderNr>100234</OrderNr>
<OrderNrExternal>SHOP-4711</OrderNrExternal>
<OrderCurrency>EUR</OrderCurrency>
<OrderDate>2024-03-12T10:15:00</OrderDate>
<ItemRef>8812</ItemRef>
<oItemSpecialNote/>
<DiscountValue>0.0000</DiscountValue>
<DiscountPerc>0</DiscountPerc>
<FullPrice>89.9000</FullPrice>
<VATRate>H</VATRate>
<PriceNoVAT>75.55</PriceNoVAT>
<AvailStockOrderLine>14</AvailStockOrderLine>
<ItemNrInt>100-8812</ItemNrInt>
<ShipDate>2024-03-13T14:02:00</ShipDate>
<ReservedCount>1</ReservedCount>
<ItemNrSuppl>SUP-77812</ItemNrSuppl>
</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:pixiGetOrderlinesForOrder>
<OrderNr>100234</OrderNr>
<!-- <OrderXML><![CDATA[<ORDERS><ORDER><ORDERNR>100235</ORDERNR><ORDERNREXTERNAL></ORDERNREXTERNAL></ORDER><ORDER><ORDERNR></ORDERNR><ORDERNREXTERNAL>SHOP-4711</ORDERNREXTERNAL></ORDER></ORDERS>]]></OrderXML> -->
<!-- <ReturnBundle>1</ReturnBundle> -->
</ns1:pixiGetOrderlinesForOrder>
</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:pixiGetOrderlinesForOrder>
<OrderNr>100234</OrderNr>
<!-- <OrderXML><![CDATA[<ORDERS><ORDER><ORDERNR>100235</ORDERNR><ORDERNREXTERNAL></ORDERNREXTERNAL></ORDER><ORDER><ORDERNR></ORDERNR><ORDERNREXTERNAL>SHOP-4711</ORDERNREXTERNAL></ORDER></ORDERS>]]></OrderXML> -->
<!-- <ReturnBundle>1</ReturnBundle> -->
</ns1:pixiGetOrderlinesForOrder>
</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 = [
'OrderNr' => '100234',
// 'OrderXML' => '<ORDERS><ORDER><ORDERNR>100235</ORDERNR><ORDERNREXTERNAL></ORDERNREXTERNAL></ORDER><ORDER><ORDERNR></ORDERNR><ORDERNREXTERNAL>SHOP-4711</ORDERNREXTERNAL></ORDER></ORDERS>',
// 'ReturnBundle' => '1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetOrderlinesForOrder', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetOrderlinesForOrder