pixiGetSOrders
Liefert Lieferantenbestellungen eines Standorts, gefiltert nach Status, überfälligen/fehlenden Lieferterminen, Statusänderungsdatum und externen Bestellnummern.
Liefert Lieferantenbestellungen aus pixi.SupplierOrder zusammen mit Lieferant, Status, Standort, anlegendem/änderndem Benutzer und den zugehörigen Wareneingängen. Die Abfrage wird als dynamisches SQL aufgebaut und mit sp_executesql ausgeführt.
Filter
- Nur Bestellungen, deren Lieferstandort die
LocID=LocationIDhat (Standard001). - Es werden höchstens
RLimitZeilen geliefert (TOP (@RLimit)). Der Standardwert0liefert keine Zeilen; daher muss ein positiver Wert übergeben werden. - Statusfilter:
- Sind
ShowDueDateundShowNoDatebeide0, werden die Flags per ODER verknüpft:ShowNew→ StatusflagIsNew,ShowOrd→IsOrdered,ShowCon→IsConfirmed,ShowCls→IsClosed. - Bei
ShowNoDate=1werden nur bestellte Bestellungen (IsOrdered) geliefert, die mindestens eine Position ohne voraussichtlichen Liefertermin haben. Dieser Filter hat Vorrang vorShowDueDate. - Bei
ShowDueDate=1(undShowNoDate=0) werden nur bestellte Bestellungen geliefert, die mindestens eine Position mit voraussichtlichem Liefertermin vor dem aktuellen Zeitpunkt haben. - In beiden Terminmodi werden
ShowNew,ShowOrd,ShowConundShowClsignoriert. - Sind alle sechs Flags
0, entfällt der Statusfilter.
- Sind
- Statusänderungsdatum: Ist
StatusChangeDateFromund/oderStatusChangeDateTogesetzt, werden nur Bestellungen geliefert, deren letzter Historieneintrag inhist.pixi_SupplierOrder(MAX(AuditDate)) im Bereich>= Fromund< Toliegt. - Externe Bestellnummern: Ist
ExtOrderNrsgesetzt (XML-Liste), werden nur Bestellungen geliefert, derenExternalCodeeiner der übergebenen Nummern entspricht.
Wareneingänge
Für jeden Wareneingang in SDelHeader wird das Feld SDelHextOrderNr am ; aufgeteilt. Numerische Teile werden der InternalNumber der Bestellung zugeordnet. Die Wareneingangsnummern (SDelHNr) werden in GoodsReceipts als mit ; getrennte Liste geliefert.
Sortierung nach OrderDate absteigend.
Hinweise
- Stolperfalle
RLimit: Der Standardwert0führt zuTOP (0)und damit zu einem leeren Ergebnis. Einen Wert für „unbegrenzt“ gibt es nicht. - Stolperfalle Statusänderungsdatum: Wird nur
StatusChangeDateFromübergeben, fällt die Obergrenze aufMAX(AuditDate)zurück. Die BedingungMAX(AuditDate) < MAX(AuditDate)ist nie erfüllt, daher werden keine Bestellungen geliefert. ZusätzlichStatusChangeDateTooder nurStatusChangeDateToübergeben. Die Obergrenze ist exklusiv. NULLfür die Flags,LocationIDundRLimitwird durch die Standardwerte ersetzt. Ein leeres oder nur aus Leerzeichen bestehendesExtOrderNrswird alsNULLbehandelt.ExtOrderNrswird elementbasiert perOPENXMLunter dem Pfad/ExtOrders/ExtOrdergelesen, mit dem KindelementExtOrderNr. Das XML-Dokument wird nicht mitsp_xml_removedocumentfreigegeben.- Alle Tabellen werden mit
NOLOCKgelesen; nicht festgeschriebene Daten können enthalten sein. - Bestellungen werden per
INNER JOINmit Lieferant, Status, Standort und für anlegenden wie ändernden Benutzer mitucs_usersverknüpft. Bestellungen ohne passenden Datensatz fehlen im Ergebnis. GoodsReceiptswird über einevarchar(100)-Konvertierung gebildet; lange Listen werden abgeschnitten. Die Wareneingangsliste wird bei jedem Aufruf über die gesamte TabelleSDelHeaderberechnet, was bei großen Datenbanken langsam sein kann.RecordBatchNrundPixiOrderCreatedsind immerNULLund dienen nur der Kompatibilität.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
LocationID
|
varchar(3) string |
001 |
Standortkürzel ( Beispiel: |
RLimit
|
int | 0 |
Maximale Anzahl Zeilen ( Beispiel: |
ShowNew
|
bit boolean |
1 |
Bestellungen mit Status „neu“ ( Beispiel: |
ShowOrd
|
bit boolean |
1 |
Bestellte Bestellungen ( Beispiel: |
ShowCon
|
bit boolean |
1 |
Bestätigte Bestellungen ( Beispiel: |
ShowCls
|
bit boolean |
1 |
Abgeschlossene Bestellungen ( Beispiel: |
ShowDueDate
|
bit boolean |
0 |
Bei Beispiel: |
ShowNoDate
|
bit boolean |
0 |
Bei Beispiel: |
StatusChangeDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv) für die letzte Änderung in der Bestellhistorie. Allein übergeben liefert der Parameter keine Zeilen (siehe Hinweise). Beispiel: |
StatusChangeDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv) für die letzte Änderung in der Bestellhistorie. Beispiel: |
ExtOrderNrs
|
varchar(max) xml |
NULL |
Optionale XML-Liste externer Bestellnummern. Nur Bestellungen mit passendem Beispiel:
|
Antwort
Result-Set 1 · Immer (leer bei RLimit = 0 oder ohne Treffer)
Lieferantenbestellungen, absteigend nach Bestelldatum sortiert.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderNr
|
int |
Interne Bestellnummer ( |
SupplNr
Kann leer sein |
string |
Lieferantennummer. |
SupplGroup
Kann leer sein |
string |
Lieferantengruppe. |
OrderDate
Kann leer sein |
datetime dateTime |
Bestelldatum. |
Status
Kann leer sein |
varchar(3) string |
Statuscode, z. B. BES, CON, CLS. |
CreateDate
Kann leer sein |
datetime dateTime |
Anlagezeitpunkt. |
CreateEmp
Kann leer sein |
string |
Benutzername des Anlegers. |
UpdateDate
Kann leer sein |
datetime dateTime |
Zeitpunkt der letzten Änderung. |
UpdateEmp
Kann leer sein |
string |
Benutzername des letzten Bearbeiters. |
SOrderLocation
|
string |
Standortkürzel ( |
RecordBatchNr
Kann leer sein |
int |
Immer |
SOrderKey
|
int |
Technischer Schlüssel der Bestellung ( |
ExtOrderNr
Kann leer sein |
string |
Externe Bestellnummer ( |
XMLsent
Kann leer sein |
boolean |
Kennzeichen, ob das Direct-Fulfillment-XML versendet wurde ( |
SupplierFulfillment
Kann leer sein |
boolean |
Kennzeichen für eine Streckenbestellung ( |
SOrdersNote
Kann leer sein |
varchar(1024) string |
Notiz für den Lieferanten. |
SupplName
Kann leer sein |
string |
Lieferantenname. |
PixiOrderCreated
Kann leer sein |
bit boolean |
Immer |
GoodsReceipts
Kann leer sein |
varchar(8000) string |
Zugeordnete Wareneingangsnummern ( |
Beispielantwort
<SqlRowSet1>
<row>
<OrderNr>10452</OrderNr>
<SupplNr>70001</SupplNr>
<SupplGroup>A</SupplGroup>
<OrderDate>2024-05-14T09:12:00</OrderDate>
<Status>BES</Status>
<CreateDate>2024-05-14T09:10:00</CreateDate>
<CreateEmp>mmueller</CreateEmp>
<UpdateDate>2024-05-15T11:30:00</UpdateDate>
<UpdateEmp>mmueller</UpdateEmp>
<SOrderLocation>001</SOrderLocation>
<SOrderKey>8831</SOrderKey>
<ExtOrderNr>PO-2024-0012</ExtOrderNr>
<XMLsent>false</XMLsent>
<SupplierFulfillment>false</SupplierFulfillment>
<SOrdersNote>Bitte Liefertermin bestätigen</SOrdersNote>
<SupplName>Muster Buchvertrieb GmbH</SupplName>
<GoodsReceipts>5521; 5530</GoodsReceipts>
</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:pixiGetSOrders>
<!-- <LocationID>001</LocationID> -->
<!-- <RLimit>500</RLimit> -->
<!-- <ShowNew>1</ShowNew> -->
<!-- <ShowOrd>1</ShowOrd> -->
<!-- <ShowCon>1</ShowCon> -->
<!-- <ShowCls>0</ShowCls> -->
<!-- <ShowDueDate>0</ShowDueDate> -->
<!-- <ShowNoDate>0</ShowNoDate> -->
<!-- <StatusChangeDateFrom>2024-05-01T00:00:00</StatusChangeDateFrom> -->
<!-- <StatusChangeDateTo>2024-06-01T00:00:00</StatusChangeDateTo> -->
<!-- <ExtOrderNrs><![CDATA[<ExtOrders><ExtOrder><ExtOrderNr>PO-2024-0012</ExtOrderNr></ExtOrder><ExtOrder><ExtOrderNr>PO-2024-0013</ExtOrderNr></ExtOrder></ExtOrders>]]></ExtOrderNrs> -->
</ns1:pixiGetSOrders>
</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:pixiGetSOrders>
<!-- <LocationID>001</LocationID> -->
<!-- <RLimit>500</RLimit> -->
<!-- <ShowNew>1</ShowNew> -->
<!-- <ShowOrd>1</ShowOrd> -->
<!-- <ShowCon>1</ShowCon> -->
<!-- <ShowCls>0</ShowCls> -->
<!-- <ShowDueDate>0</ShowDueDate> -->
<!-- <ShowNoDate>0</ShowNoDate> -->
<!-- <StatusChangeDateFrom>2024-05-01T00:00:00</StatusChangeDateFrom> -->
<!-- <StatusChangeDateTo>2024-06-01T00:00:00</StatusChangeDateTo> -->
<!-- <ExtOrderNrs><![CDATA[<ExtOrders><ExtOrder><ExtOrderNr>PO-2024-0012</ExtOrderNr></ExtOrder><ExtOrder><ExtOrderNr>PO-2024-0013</ExtOrderNr></ExtOrder></ExtOrders>]]></ExtOrderNrs> -->
</ns1:pixiGetSOrders>
</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' => '001',
// 'RLimit' => '500',
// 'ShowNew' => '1',
// 'ShowOrd' => '1',
// 'ShowCon' => '1',
// 'ShowCls' => '0',
// 'ShowDueDate' => '0',
// 'ShowNoDate' => '0',
// 'StatusChangeDateFrom' => '2024-05-01T00:00:00',
// 'StatusChangeDateTo' => '2024-06-01T00:00:00',
// 'ExtOrderNrs' => '<ExtOrders><ExtOrder><ExtOrderNr>PO-2024-0012</ExtOrderNr></ExtOrder><ExtOrder><ExtOrderNr>PO-2024-0013</ExtOrderNr></ExtOrder></ExtOrders>',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetSOrders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetSOrders