pixiDFGetOrderlines_new
Liefert die Direct-Fulfillment-Auftragspositionen (Status FUT) eines Auftrags für einen berechtigten Streckenlieferanten inklusive Artikel-, Historien- und Währungsdaten.
Schnittstellenaufruf für Direct-Fulfillment-Lieferanten (Streckengeschäft), um die zu erfüllenden Positionen eines einzelnen Auftrags abzurufen.
Berechtigung
- Leere Strings in
SupplNrundSecretwerden alsNULLbehandelt. - In
Supplierswird ein Lieferant gesucht, dessenSupplNrgleichSupplNrund dessenCustNrgleichSecretist, der nicht deaktiviert ist undCanDoDirectFulfillment = 1hat. - Wird kein solcher Lieferant gefunden und ist die Einstellung
DFAPIAllowFullAccessWithoutSecretgleich0(oder nicht vorhanden), wird ausschließlich eine Fehlerzeile mitError = 403geliefert. - Andernfalls werden die Auftragspositionen geliefert.
Auswahl der Positionen
- Nur Positionen des Auftrags
OrderNRmit PositionsstatusFUT. - Jede Position wird mit ihrem neuesten
OrderHistory-Eintrag mit StatusFUTverknüpft; dieser Status muss inOrderStatesein Fulfillment-Status sein (FulfilmentStatus = 'Y'). - Standardmäßig werden nur noch nicht bestätigte Positionen geliefert (
ClientNotified = 'N'); mitAllOrderlines = 1auch bereits bestätigte. - Ist
SupplNrangegeben, werden nur Positionen geliefert, derenSupplInfogleichSupplNrist und deren Lieferant ein Direct-Fulfillment-Lieferant ist. IstSupplNrleer (nur möglich, wenn Vollzugriff ohne Secret erlaubt ist), werden Positionen aller Lieferanten geliefert. - Positionen werden ausgeschlossen, wenn die Lieferadresse gesperrt ist (
ASLocked = 'Y') oder der Kunde gesperrt ist (SLocked = 'Y'). - Positionen ohne passende Rechnungsadresse, Kunde, Auftragskopf oder Währung werden nicht geliefert (Inner Joins).
Artikeldaten
Der Artikel wird aus Items gelesen; der lieferantenspezifische Zusatzartikel-Datensatz in AddItems (passend zum Lieferanten der Position, neuester nach UpdateDate) liefert ItemNrSuppl vorrangig, während EANUPC zuerst vom Artikel und nur ersatzweise aus AddItems stammt.
Das Ergebnis ist DISTINCT und hat keine definierte Sortierung.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen; nicht festgeschriebene Daten können geliefert werden. - Das
Secretwird mit dem FeldCustNrdes Lieferanten verglichen (die Kundennummer von Pixi beim Lieferanten). - Ist die Einstellung
DFAPIAllowFullAccessWithoutSecretungleich0, ist die Secret-Prüfung faktisch abgeschaltet: Jeder Aufrufer erhält Daten, bei leererSupplNrsogar die Positionen aller Lieferanten des Auftrags. - Der Aufruf ist rein lesend:
ClientNotifiedwird nicht gesetzt. Das Bestätigen von Positionen erfordert einen separaten Aufruf; die SpalteOrderlineConfirmedzeigt nur den aktuellen Wert. - Die Fehlerzeile hat andere Spalten (
Error,ErrorMsg) als die Datenzeilen; Clients müssen prüfen, welche Spalten vorhanden sind.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNR
Pflicht
|
int | – |
Pixi-Auftragsnummer, deren Positionen geliefert werden. Beispiel: |
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer des Direct-Fulfillment-Lieferanten. Dient der Berechtigung und schränkt die Positionen auf diesen Lieferanten ein. Leerer String wird als NULL behandelt. Beispiel: |
Secret
|
varchar(20) string |
NULL |
Secret des Lieferanten; muss mit der beim Lieferanten hinterlegten Beispiel: |
AllOrderlines
|
bit boolean |
0 |
Steuert, ob bereits bestätigte Positionen enthalten sind. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn die Prüfung von Lieferant/Secret fehlschlägt und DFAPIAllowFullAccessWithoutSecret gleich 0 ist.
Einzelne Fehlerzeile.
| Spalte | Typ | Beschreibung |
|---|---|---|
Error
|
varchar(3) string |
Fehlercode, immer |
ErrorMsg
|
varchar(47) string |
Fehlertext. |
Result-Set 2 · Wenn die Berechtigung erfolgreich ist oder Vollzugriff ohne Secret erlaubt ist.
Eine Zeile je passender Direct-Fulfillment-Position des Auftrags.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderLineRef
|
int |
Schlüssel der Auftragsposition ( |
OrderNr
|
int |
Pixi-Auftragsnummer. |
ArtName
Kann leer sein |
string |
Artikelbezeichnung der Position. |
EANUPC
Kann leer sein |
string |
EAN/UPC des Artikels; aus |
ItemNrSuppl
Kann leer sein |
string |
Lieferantenartikelnummer; aus dem lieferantenspezifischen |
itemNrExternal
Kann leer sein |
string |
Externe Artikelnummer der Position. |
Qty
Kann leer sein |
int |
Bestellte Menge. |
Price
Kann leer sein |
decimal |
Preis der Position. |
Status
|
string |
Positionsstatus, immer |
OrderHistKey
|
int |
Schlüssel des neuesten FUT-Historieneintrags der Position. |
StatusChangeDate
Kann leer sein |
datetime dateTime |
Datum des Statuswechsels auf FUT. |
OrderDate
Kann leer sein |
datetime dateTime |
Auftragsdatum. |
OrderNrExternal
Kann leer sein |
string |
Externe (Shop-)Auftragsnummer. |
oItemSpecialNote
Kann leer sein |
string |
Sonderhinweis zur Position. |
SupplInfo
Kann leer sein |
string |
Der Position zugeordnete Lieferantennummer. |
InvoiceNrExternal
Kann leer sein |
string |
Externe Rechnungsnummer. |
DF_Type
Kann leer sein |
string |
Direct-Fulfillment-Typ der Position. |
ItemRef
|
int |
Artikelschlüssel ( |
OrderlineConfirmed
Kann leer sein |
string |
Kennzeichen |
OrderCurrencyCode
Kann leer sein |
string |
Währungscode des Auftrags ( |
BundleOrderlineRef
Kann leer sein |
int |
Verweis auf die übergeordnete Bundle-Position, falls vorhanden. |
ItemNrInt
Kann leer sein |
string |
Interne Pixi-Artikelnummer. |
Beispielantwort
<SqlRowSet1>
<row>
<OrderLineRef>587341</OrderLineRef>
<OrderNr>104523</OrderNr>
<ArtName>Gartenstuhl Teak natur</ArtName>
<EANUPC>4012345678901</EANUPC>
<ItemNrSuppl>GS-TK-100</ItemNrSuppl>
<itemNrExternal>SHOP-55821</itemNrExternal>
<Qty>2</Qty>
<Price>89.90</Price>
<Status>FUT</Status>
<OrderHistKey>2210457</OrderHistKey>
<StatusChangeDate>2024-05-14T09:12:33</StatusChangeDate>
<OrderDate>2024-05-13T18:47:02</OrderDate>
<OrderNrExternal>400017722</OrderNrExternal>
<oItemSpecialNote/>
<SupplInfo>DF01</SupplInfo>
<InvoiceNrExternal/>
<DF_Type>1</DF_Type>
<ItemRef>33012</ItemRef>
<OrderlineConfirmed>N</OrderlineConfirmed>
<OrderCurrencyCode>EUR</OrderCurrencyCode>
<BundleOrderlineRef/>
<ItemNrInt>GS100</ItemNrInt>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 403 | Not Authorized. Secret or SupplNr is incorrect. | Kein aktiver Direct-Fulfillment-Lieferant passt zu `SupplNr` und `Secret` (`CustNr`), und die Einstellung `DFAPIAllowFullAccessWithoutSecret` ist `0`. Korrekte Lieferantennummer und korrektes Secret übergeben. |
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:pixiDFGetOrderlines_new>
<OrderNR>104523</OrderNR>
<!-- <SupplNr>DF01</SupplNr> -->
<!-- <Secret>K-778812</Secret> -->
<!-- <AllOrderlines>0</AllOrderlines> -->
</ns1:pixiDFGetOrderlines_new>
</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:pixiDFGetOrderlines_new>
<OrderNR>104523</OrderNR>
<!-- <SupplNr>DF01</SupplNr> -->
<!-- <Secret>K-778812</Secret> -->
<!-- <AllOrderlines>0</AllOrderlines> -->
</ns1:pixiDFGetOrderlines_new>
</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' => '104523',
// 'SupplNr' => 'DF01',
// 'Secret' => 'K-778812',
// 'AllOrderlines' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiDFGetOrderlines_new', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiDFGetOrderlines_new