pixiGetSOrderlines
Liefert die Positionen einer Lieferantenbestellung mit Artikel-, Preis-, Liefer- und Bestandsdaten sowie Bedarfs- und Verkaufszahlen je Artikel.
Liefert alle Positionen der Lieferantenbestellung, deren ID in SOrderRef übergeben wird. Intern wird Pixi_GetSorderlines mit allen optionalen Feldern ausgeführt, die Zeilen werden in einer temporären Tabelle zwischengespeichert und unverändert zurückgegeben.
Je Position enthält das Ergebnis:
- Positionsdaten: Artikelname, Bestellmenge, Statuscode der Lieferantenbestellung, Kommentar, voraussichtliches Lieferdatum, Ersteller und letzter Bearbeiter mit Zeitstempeln.
- Artikeldaten: EAN (
ArtNr), Lieferanten-Artikelnummer und interne Artikelnummer aus den lieferantenspezifischen Artikeldaten des Lieferanten der Bestellung, Verkaufspreis (VKPrice), Bestelleinheit, zum Erstellungsdatum der Position gültiger MwSt-Satz. - Einkaufspreise:
EKpriceist der auf der Position gespeicherte Lieferantenpreis. Ist der Bestellstatus als neu gekennzeichnet und der Positionspreis 0 oder leer, wird stattdessen der Lieferantenpreis aus den lieferantenspezifischen Artikeldaten verwendet.EKValueist Menge ×EKprice.FinalPriceist Lieferantenpreis × Menge abzüglich des Positionsrabatts. - Lieferdaten: gelieferte und nicht lieferbare Menge der Position sowie die über alle Wareneingangsdetails summierte Eingangsmenge (
TotalQtyReceived). - Bestand und Bedarf am Lieferlager der Bestellung: Lagerbestand am Lager, Mindestbestell- und Mindestbestandsmenge, Menge in Auftragspositionen mit Status
HAL(Hal_Cust_O) bzw.ANG,BES,BOR(Open_Cust_O), Menge in anderen offenen, bestellten/bestätigten Lieferantenbestellungen (Open_Suppl_O) sowie Verkaufsmengen der letzten 30, 120 und 365 Tage (L30,L120,L365, alle Auftragspositionen außer StatusSTO).
Bei OpenOrderlines = 1 werden nur Positionen geliefert, deren Bestellmenge größer ist als gelieferte plus nicht lieferbare Menge. Die Positionen werden in der Reihenfolge der Positions-ID erzeugt.
Es werden nur Positionen geliefert, für die Artikel, der lagerspezifische Artikeldatensatz am Lieferlager der Bestellung, Lieferant sowie anlegender und ändernder Benutzer existieren (Inner Joins).
Hinweise
LocIDwird an die innere Prozedur übergeben, in der Abfrage aber nicht verwendet. Lagerbezogene Werte beziehen sich immer auf das Lieferlager der Lieferantenbestellung, unabhängig vonLocID.- Ist die Einstellung
Include_FUT_StatusInOpenOrdersForSupplierOrderingauf1gesetzt, werden inOpen_Cust_Oauch Auftragspositionen mit StatusFUTgezählt. - Alle Lesezugriffe erfolgen mit
NOLOCK; die Werte können nicht festgeschriebene Daten enthalten. - Die Abfrage wird als dynamisches SQL aufgebaut; die vielen korrelierten Unterabfragen (Verkäufe 30/120/365 Tage, offene Aufträge) können den Aufruf bei großen Bestellungen verlangsamen.
- Feste Werte:
Detail,Detail2undPricesind immer 0,ReceiveDateist immer leer.StockQtyentsprichtSummaryQuantity. SOrderlineNrenthält tatsächlich die ID der Lieferantenbestellung (wieSOrderRef), keine Positionsnummer. Zur Identifikation einer PositionSOrderlineKeyverwenden.- Die Sortierung nach Positions-ID erfolgt in der inneren Abfrage; das abschließende Select aus der temporären Tabelle hat kein explizites
ORDER BY. - Mehrere Spalten der internen temporären Tabelle sind als
NOT NULLdeklariert (z. B.VKPrice,FinalPrice). Enthalten die Quelldaten dort NULL (z. B. Position ohne Lieferantenpreis), kann das Einfügen mit einem SQL-Fehler fehlschlagen. - Wird
SOrderRefweggelassen (Standard 0), werden keine Zeilen geliefert.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SOrderRef
|
int | 0 |
ID der Lieferantenbestellung, deren Positionen geliefert werden. NULL wird als 0 behandelt. Beispiel: |
LocID
|
char(3) string |
001 |
Lager-ID. Wird intern weitergereicht, hat aber keinen Einfluss auf das Ergebnis; Lagerwerte beziehen sich immer auf das Lieferlager der Bestellung. Beispiel: |
OpenOrderlines
|
bit boolean |
0 |
Schränkt das Ergebnis auf noch nicht vollständig gelieferte Positionen ein. NULL wird als 0 behandelt. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (leer, wenn die Lieferantenbestellung keine passenden Positionen hat).
Eine Zeile je Position der Lieferantenbestellung.
| Spalte | Typ | Beschreibung |
|---|---|---|
Detail
|
int |
Immer 0. |
Detail2
|
int |
Immer 0. |
ArtNr
Kann leer sein |
varchar(13) string |
EAN/UPC aus den lieferantenspezifischen Artikeldaten des Lieferanten der Bestellung. |
ArtName
Kann leer sein |
varchar(200) string |
Auf der Position gespeicherter Artikelname. |
OrderQty
|
int |
Bestellmenge (0, wenn leer). |
ReceiveDate
Kann leer sein |
datetime dateTime |
Immer NULL. |
Status
|
char(3) string |
Statuscode der Lieferantenbestellung. |
CreateDate
Kann leer sein |
datetime dateTime |
Erstellungszeitpunkt der Position. |
CreateEmp
|
varchar(30) string |
Name des Benutzers, der die Position angelegt hat. |
UpdateDate
Kann leer sein |
datetime dateTime |
Zeitpunkt der letzten Änderung der Position. |
UpdateEmp
|
varchar(30) string |
Name des Benutzers, der die Position zuletzt geändert hat. |
SOrderlineKey
|
int |
ID der Lieferantenbestellposition. |
SitemRef
|
int |
Artikel-ID (ItemKey). |
SOrderRef
|
int |
ID der Lieferantenbestellung. |
XMLconfirm
Kann leer sein |
bit boolean |
Kennzeichen für XML-Bestätigung (Direct Fulfillment) der Position. |
SOrderlineNr
|
int |
Enthält die ID der Lieferantenbestellung der Position (gleicher Wert wie SOrderRef). |
Note
Kann leer sein |
varchar(2000) string |
Kommentar der Position. |
EstimatedDelivery
Kann leer sein |
datetime dateTime |
Voraussichtliches Lieferdatum der Position. |
VKPrice
|
money decimal |
Verkaufspreis des Artikels. |
SummaryQuantity
|
int |
Gesamtbestand des Artikels. |
LocationQuantity
|
int |
Bestand des Artikels am Lieferlager der Bestellung. |
QtyReceived
|
int |
Auf der Position gespeicherte gelieferte Menge. |
QtyNotDelivered
|
int |
Als nicht lieferbar gekennzeichnete Menge. |
MinOrderQty
|
int |
Mindestbestellmenge am Lieferlager. |
MinStockQty
|
int |
Mindestbestand am Lieferlager. |
OrderUnit
|
varchar(50) string |
Bestelleinheit des Artikels ('0', wenn leer). |
ItemNrSuppl
Kann leer sein |
varchar(50) string |
Lieferanten-Artikelnummer aus den lieferantenspezifischen Artikeldaten. |
ItemNrInt
Kann leer sein |
varchar(50) string |
Interne Artikelnummer aus den lieferantenspezifischen Artikeldaten. |
VATperc
Kann leer sein |
float decimal |
Zum Erstellungsdatum der Position gültiger MwSt-Satz in Prozent. |
EKprice
Kann leer sein |
money decimal |
Einkaufspreis; bei neuen Bestellungen ohne Positionspreis der Lieferantenpreis aus den Artikeldaten. |
EKValue
|
money decimal |
Menge × Einkaufspreis (0, wenn leer). |
Hal_Cust_O
Kann leer sein |
int |
Menge des Artikels in Auftragspositionen mit Status HAL am Lieferlager. |
Open_Cust_O
Kann leer sein |
int |
Menge in offenen Auftragspositionen (ANG, BES, BOR, optional FUT) am Lieferlager. |
Open_Suppl_O
|
int |
Menge in bestellten/bestätigten, nicht abgeschlossenen Lieferantenbestellungen für dasselbe Lieferlager (einschließlich dieser Bestellung, falls zutreffend). |
L30
Kann leer sein |
int |
Von Kunden in den letzten 30 Tagen am Lieferlager bestellte Menge (ohne Status STO). |
L120
Kann leer sein |
int |
Von Kunden in den letzten 120 Tagen bestellte Menge (ohne Status STO). |
L365
Kann leer sein |
int |
Von Kunden in den letzten 365 Tagen bestellte Menge (ohne Status STO). |
StockQty
|
int |
Gesamtbestand des Artikels (wie SummaryQuantity). |
Price
|
money decimal |
Immer 0 (aus Kompatibilitätsgründen). |
TotalQtyReceived
|
int |
Summe der gelieferten Mengen aller Wareneingangsdetails zu dieser Position. |
FinalPrice
|
money decimal |
Lieferantenpreis × Menge abzüglich Rabattbetrag der Position. |
Beispielantwort
<SqlRowSet1>
<row>
<Detail>0</Detail>
<Detail2>0</Detail2>
<ArtNr>4006381333931</ArtNr>
<ArtName>Kugelschreiber blau</ArtName>
<OrderQty>100</OrderQty>
<Status>BES</Status>
<CreateDate>2024-03-04T09:12:00</CreateDate>
<CreateEmp>mmueller</CreateEmp>
<UpdateDate>2024-03-05T14:30:00</UpdateDate>
<UpdateEmp>mmueller</UpdateEmp>
<SOrderlineKey>18233</SOrderlineKey>
<SitemRef>5521</SitemRef>
<SOrderRef>4711</SOrderRef>
<XMLconfirm>false</XMLconfirm>
<SOrderlineNr>4711</SOrderlineNr>
<EstimatedDelivery>2024-03-15T00:00:00</EstimatedDelivery>
<VKPrice>2.9900</VKPrice>
<SummaryQuantity>40</SummaryQuantity>
<LocationQuantity>25</LocationQuantity>
<QtyReceived>60</QtyReceived>
<QtyNotDelivered>0</QtyNotDelivered>
<MinOrderQty>50</MinOrderQty>
<MinStockQty>20</MinStockQty>
<OrderUnit>Stk</OrderUnit>
<ItemNrSuppl>KS-100-B</ItemNrSuppl>
<ItemNrInt>A-5521</ItemNrInt>
<VATperc>19</VATperc>
<EKprice>0.8500</EKprice>
<EKValue>85.0000</EKValue>
<Hal_Cust_O>3</Hal_Cust_O>
<Open_Cust_O>12</Open_Cust_O>
<Open_Suppl_O>100</Open_Suppl_O>
<L30>45</L30>
<L120>160</L120>
<L365>520</L365>
<StockQty>40</StockQty>
<Price>0.0000</Price>
<TotalQtyReceived>60</TotalQtyReceived>
<FinalPrice>80.0000</FinalPrice>
</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:pixiGetSOrderlines>
<!-- <SOrderRef>4711</SOrderRef> -->
<!-- <LocID>001</LocID> -->
<!-- <OpenOrderlines>1</OpenOrderlines> -->
</ns1:pixiGetSOrderlines>
</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:pixiGetSOrderlines>
<!-- <SOrderRef>4711</SOrderRef> -->
<!-- <LocID>001</LocID> -->
<!-- <OpenOrderlines>1</OpenOrderlines> -->
</ns1:pixiGetSOrderlines>
</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 = [
// 'SOrderRef' => '4711',
// 'LocID' => '001',
// 'OpenOrderlines' => '1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetSOrderlines', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetSOrderlines