pixiDispoGetOpenSupplierOrders
Liefert offene Lieferantenbestellpositionen und Auftragspositionen im Status ANG mit offener Menge und erwartetem Liefertermin, seitenweise nach Positionsschlüssel.
Sammelt offene Bestellmengen für die Disposition aus zwei Quellen und liefert sie als gemeinsame Liste.
Typ 1200 – Lieferantenbestellpositionen (pixi.SupplierOrderLine):
- Nur Positionen, deren Lieferantenbestellung einen Status mit
IsOrderedConfirmed = 1hat (bestellt bzw. bestätigt). - Nur Positionen mit einer offenen Menge ungleich 0. Die offene Menge ist
Qty - DeliveredQty - UndeliveredQty, fehlende Werte zählen als 0. EstimatedDeliveryDateist der erwartete Liefertermin der Position oder'0', wenn keiner gesetzt ist.SupplOrderNRist die interne Nummer der Lieferantenbestellung.SupplOrderDateist das Anlagedatum der Position.
Typ 2200 – Auftragspositionen im Status ANG (Orderlines):
- Nur Positionen mit
Status = 'ANG'und einer Menge ungleich 0. QtyundQtyOrderedentsprechen der Positionsmenge.QtyReceivedundQtyNotDeliveredsind immer 0.EstimatedDeliveryDateist das heutige Datum plusDefaultDeliveryDaysdes Lieferanten. Ohne Wert beim Lieferanten wird 1 Tag verwendet.SupplOrderNRist die Auftragsnummer.SupplOrderDateist das Anlagedatum der Position.
Für beide Typen stammen die Artikeldaten (SupplNr, ItemNrInt, ItemNrSuppl) per Left Join aus Items. ItemNrSuppl fällt auf ItemNrInt zurück, wenn der Artikel keine Lieferantenartikelnummer hat.
Paging: Es werden nur Positionen geliefert, deren Schlüssel größer als SOrderlineKeyStart ist. Die gemeinsame Liste wird aufsteigend nach SOrderlineKey sortiert und auf RowCount Zeilen begrenzt. Für die nächste Seite wird der zuletzt erhaltene SOrderlineKey als neuer SOrderlineKeyStart übergeben.
Alle Datumswerte werden als Text im Format dd.mm.yyyy geliefert.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, daher kann das Ergebnis nicht festgeschriebene Daten enthalten. SOrderlineKeystammt aus zwei verschiedenen Schlüsselräumen:SupplierOrderLine.Idfür Typ1200undOrderlines.OrderlineKeyfür Typ2200. Derselbe Schlüsselwert kann daher in beiden Typen vorkommen.- Das Paging verwendet eine gemeinsame Schwelle für beide Quellen.
- Endet eine Seite mitten in einem solchen doppelten Schlüssel, wird die verbleibende Zeile mit diesem Schlüssel auf der nächsten Seite übersprungen.
Typesollte immer zusammen mitSOrderlineKeyausgewertet werden.
- Die beiden Quellen werden mit
UNIONverbunden, vollständig identische Zeilen erscheinen daher nur einmal. - Ist
RowCountNULL, wird 10000 verwendet. EstimatedDeliveryDatefür Typ2200wird aus dem aktuellen Serverdatum zum Zeitpunkt des Aufrufs berechnet.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SOrderlineKeyStart
|
int | 0 |
Es werden nur Positionen mit einem Schlüssel größer als dieser Wert geliefert. Dient dem Paging; NULL wird als 0 behandelt. Beispiel: |
RowCount
|
int | 10000 |
Maximale Anzahl gelieferter Zeilen. NULL wird als 10000 behandelt. Beispiel: |
Antwort
Result-Set 1 · Immer
Offene Lieferantenbestellpositionen (Typ 1200) und Auftragspositionen im Status ANG (Typ 2200), aufsteigend sortiert nach SOrderlineKey.
| Spalte | Typ | Beschreibung |
|---|---|---|
SOrderlineKey
|
int |
Schlüssel der Position: SupplierOrderLine.Id bei Typ 1200, Orderlines.OrderlineKey bei Typ 2200. |
ItemKey
Kann leer sein |
int |
Schlüssel des Artikels. |
EstimatedDeliveryDate
Kann leer sein |
varchar(10) string |
Erwarteter Liefertermin als dd.mm.yyyy. Bei Typ 1200 '0', wenn nicht gesetzt; bei Typ 2200 heute plus DefaultDeliveryDays des Lieferanten (Standard 1). |
Qty
Kann leer sein |
int |
Offene Menge: bestellt minus geliefert minus nicht geliefert (Typ 1200) bzw. Positionsmenge (Typ 2200). |
Type
|
varchar(4) string |
Herkunft der Zeile: '1200' = Lieferantenbestellposition, '2200' = Auftragsposition im Status ANG. |
SupplNr
Kann leer sein |
string |
Lieferantennummer aus den Artikelstammdaten. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrSuppl
Kann leer sein |
string |
Lieferantenartikelnummer; fällt auf ItemNrInt zurück, wenn leer. |
SupplOrderDate
Kann leer sein |
varchar(10) string |
Anlagedatum der Position als dd.mm.yyyy. |
SupplOrderNR
Kann leer sein |
string |
Interne Nummer der Lieferantenbestellung (Typ 1200) bzw. Auftragsnummer (Typ 2200). |
QtyOrdered
Kann leer sein |
int |
Bestellte Menge der Position. |
QtyReceived
|
int |
Bereits gelieferte Menge (Typ 1200); bei Typ 2200 immer 0. |
QtyNotDelivered
|
int |
Als nicht geliefert markierte Menge (Typ 1200); bei Typ 2200 immer 0. |
Beispielantwort
<SqlRowSet1>
<row>
<SOrderlineKey>10452</SOrderlineKey>
<ItemKey>2381</ItemKey>
<EstimatedDeliveryDate>15.07.2024</EstimatedDeliveryDate>
<Qty>8</Qty>
<Type>1200</Type>
<SupplNr>104</SupplNr>
<ItemNrInt>ART-4711</ItemNrInt>
<ItemNrSuppl>LF-88231</ItemNrSuppl>
<SupplOrderDate>02.07.2024</SupplOrderDate>
<SupplOrderNR>B-2024-0815</SupplOrderNR>
<QtyOrdered>10</QtyOrdered>
<QtyReceived>2</QtyReceived>
<QtyNotDelivered>0</QtyNotDelivered>
</row>
<row>
<SOrderlineKey>10467</SOrderlineKey>
<ItemKey>5120</ItemKey>
<EstimatedDeliveryDate>11.07.2024</EstimatedDeliveryDate>
<Qty>3</Qty>
<Type>2200</Type>
<SupplNr>217</SupplNr>
<ItemNrInt>ART-9902</ItemNrInt>
<ItemNrSuppl>ART-9902</ItemNrSuppl>
<SupplOrderDate>08.07.2024</SupplOrderDate>
<SupplOrderNR>500123</SupplOrderNR>
<QtyOrdered>3</QtyOrdered>
<QtyReceived>0</QtyReceived>
<QtyNotDelivered>0</QtyNotDelivered>
</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:pixiDispoGetOpenSupplierOrders>
<!-- <SOrderlineKeyStart>0</SOrderlineKeyStart> -->
<!-- <RowCount>5000</RowCount> -->
</ns1:pixiDispoGetOpenSupplierOrders>
</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:pixiDispoGetOpenSupplierOrders>
<!-- <SOrderlineKeyStart>0</SOrderlineKeyStart> -->
<!-- <RowCount>5000</RowCount> -->
</ns1:pixiDispoGetOpenSupplierOrders>
</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 = [
// 'SOrderlineKeyStart' => '0',
// 'RowCount' => '5000',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiDispoGetOpenSupplierOrders', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiDispoGetOpenSupplierOrders