pixiGetChangedItems
Liefert alle seit einem Zeitpunkt geänderten Artikel mit verfügbarem Bestand und frühestem erwarteten Liefertermin aus offenen Lieferantenbestellungen.
Liefert je Artikel aus Items, dessen UpdateDate größer oder gleich @Since ist, eine Zeile. Damit eignet sich der Aufruf für einen Delta-Abgleich von Beständen, z. B. mit einem Onlineshop.
Je Artikel wird berechnet:
AvailableStock: Artikelbestand (Items.Quantity) abzüglich offener Auftragsmengen und offener Reservierungen. Negative Ergebnisse werden als0geliefert.- Offene Aufträge ermittelt
fPIXI_OpenOrdersCountForItem_ForStockExport. Die Funktion summiertOrderLines.Qtyfür Positionen mit StatusANGoderBESsowie für Positionen mit StatusHAL, deren Bestelldatum höchstensHalOrdersActiveDaysTage zurückliegt. - Offene Reservierungen sind die Summe von
InvBinItem.BinItemQtyüber Picklistenpositionen, deren Picklistenkopf eineReservedOrderNrund ein Ablaufdatum (PLHexpiryDate) in der Zukunft hat.
- Offene Aufträge ermittelt
EstimatedDelivery: frühesterEstimatedDeliveryDateder Lieferantenbestellpositionen des Artikels mit offener Restmenge, also bestellt minus geliefert minus nicht geliefert größer 0. Berücksichtigt werden nur Lieferantenbestellungen, deren StatusIsOrderedConfirmed = 1hat; ein Code-Kommentar nennt diese als bestellt/bestätigt. Der Wert istNULL, wenn keine solche Position existiert.
Die Zeilen werden nicht sortiert, und es gibt kein Paging.
Hinweise
- Alle Tabellen werden
WITH (NOLOCK)gelesen; das Ergebnis kann daher nicht festgeschriebene Daten enthalten. - Das HAL-Zeitfenster stammt aus der Einstellung
HalOrdersActiveDays, gelesen überfPIXI_GetSetting(nicht beigefügt). Ist die Einstellung0oder leer, gelten 7 Tage. - Ein Artikel wird nur über Änderungen an
Items.UpdateDateausgewählt. Aus dem Code geht nicht hervor, ob neue Aufträge, Reservierungen oder Lieferantenbestellungen diese Spalte aktualisieren. Bestandsänderungen durch solche Datensätze werden daher möglicherweise nicht gemeldet. - Ist
@SinceNULL, werden keine Zeilen geliefert. - Die Berechnung führt je Artikel eine Skalarfunktion und zwei Unterabfragen aus. Ein möglichst aktueller Wert für
@Sincehält das Ergebnis klein.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Since
Pflicht
|
datetime dateTime |
– |
Untergrenze für Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Eine Zeile je seit @Since geändertem Artikel mit verfügbarem Bestand und frühestem erwarteten Liefertermin.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemKey
|
int |
Interner Schlüssel des Artikels. |
EANUPC
Kann leer sein |
string |
EAN/UPC-Code des Artikels. |
ItemNrSuppl
Kann leer sein |
string |
Artikelnummer des Lieferanten. |
AvailableStock
|
int |
Bestand abzüglich offener Aufträge und offener Reservierungen; nie kleiner als 0. |
EstimatedDelivery
Kann leer sein |
datetime dateTime |
Frühester erwarteter Liefertermin offener, bestellter/bestätigter Lieferantenbestellpositionen des Artikels; |
Beispielantwort
<SqlRowSet1>
<row>
<ItemNrInt>A-10023</ItemNrInt>
<ItemKey>10023</ItemKey>
<EANUPC>4012345678901</EANUPC>
<ItemNrSuppl>SUP-7781</ItemNrSuppl>
<AvailableStock>14</AvailableStock>
<EstimatedDelivery>2024-05-15T00:00:00</EstimatedDelivery>
</row>
<row>
<ItemNrInt>A-10045</ItemNrInt>
<ItemKey>10045</ItemKey>
<EANUPC>4012345678925</EANUPC>
<ItemNrSuppl>SUP-7790</ItemNrSuppl>
<AvailableStock>0</AvailableStock>
</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:pixiGetChangedItems>
<Since>2024-05-01T08:00:00</Since>
</ns1:pixiGetChangedItems>
</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:pixiGetChangedItems>
<Since>2024-05-01T08:00:00</Since>
</ns1:pixiGetChangedItems>
</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 = [
'Since' => '2024-05-01T08:00:00',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetChangedItems', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetChangedItems