pixiGetChangedItemStockSince
Liefert Artikel, deren Bestand seit einem Zeitpunkt neu berechnet wurde, mit physischem und verfügbarem Bestand, Liefertermin und offener Lieferantenbestellmenge, seitenweise.
Delta-Export der Artikelbestände auf Basis der Artikelspalte LastCalculateStockDate.
- Ist
SinceNULL, wird0(1900-01-01) verwendet, d. h. alle Artikel werden berücksichtigt. EinNULLinStartwird als0behandelt. - Die ersten
Start + RowcountArtikel mitLastCalculateStockDate >= Sincewerden ermittelt, sortiert nachLastCalculateStockDateund dannItemKey. Jede Zeile erhält in dieser Reihenfolge eine fortlaufendeRowNr. - Für die Zeilen mit
RowNr > Startwerden die Artikeldaten ergänzt: Artikelnummern, EAN, physischer Bestand (Quantity), Mindestbestand, Aktiv-Kennzeichen, Stücklisten-/Bundle-Kennzeichen, der voraussichtliche Liefertermin aus der Tabelle der Liefertermine sowie der verfügbare Bestand. - Verfügbarer Bestand ist der Exportbestand der Lagerplätze des Artikels abzüglich eines von Einstellungen abhängigen Abzugs:
- Ist
StockExportUsePhysicalStockgleich'1', wird nichts abgezogen. - Andernfalls wird, wenn Reservierungen (
ReservePrepaymentOrders='1') deaktiviert sind oder aktiv sind undExportAvailableStock_WhenReservationsAreEnabled=1gilt, die Menge offener Auftragspositionen abgezogen. - Andernfalls wird bei aktiven Reservierungen die Menge offener Reservierungen abgezogen.
- Bei Bundle-Artikeln erfolgt nie ein Abzug.
- Ist
- Die offene Lieferantenbestellmenge wird je Artikel als Summe aus bestellter minus gelieferter minus nicht gelieferter Menge über Lieferantenbestellpositionen berechnet, deren Lieferantenbestellung einen als offen gekennzeichneten Status (
IsAllOpen = 1) hat und deren Berücksichtigungs-Startdatum leer oder nicht in der Zukunft liegt. - Zurückgegeben werden bis zu
RowcountZeilen mitRowNr > Start, sortiert nachRowNr.
Paging: Start ist die Anzahl zu überspringender Zeilen, Rowcount die Seitengröße. Für die nächste Seite Start + Rowcount mit gleichem Since übergeben oder mit dem letzten UpdateDate als neuem Since neu beginnen.
Hinweise
- Alle Lesezugriffe erfolgen mit
NOLOCK; Ergebnisse können nicht festgeschriebene Daten enthalten und sich zwischen Paging-Aufrufen verschieben, wenn Bestände zwischenzeitlich neu berechnet werden (die Reihenfolge hängt vonLastCalculateStockDateab). - Der Filter lautet
>= Since; wird mit dem letztenUpdateDatealsSincefortgesetzt, werden Artikel mit genau diesem Zeitstempel erneut geliefert. - Die Spalte
OpenSupplierOrderQTYwird nie befüllt und ist immer0. Die tatsächliche offene Lieferantenbestellmenge steht inOpenSupplOrdersQty; sie istNULL, wenn der Artikel keine offenen Lieferantenbestellpositionen hat. Rowcountdarf nichtNULLsein;TOPmitNULLführt zu einem SQL-Fehler.- Einstellungen werden über
fpixi_GetSettinggelesen; fehlende Einstellungen gelten als'0'. Die EinstellungExportAvailableStock_WhenReservationsAreEnabledwird nachintkonvertiert, ein nicht numerischer Wert führt zu einem Konvertierungsfehler. - Der Aufwand steigt mit
Start, da bei jedem AufrufStart + RowcountZeilen vorbereitet werden.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Since
Pflicht
|
datetime dateTime |
– |
Untergrenze (inklusive) für das Datum der letzten Bestandsberechnung des Artikels. Beispiel: |
Rowcount
|
int | 1000 |
Maximale Anzahl zurückgegebener Zeilen (Seitengröße). Beispiel: |
Start
|
int | 0 |
Anzahl zu überspringender Zeilen; nur Zeilen mit Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein).
Eine Zeile je Artikel, dessen Bestand seit Since neu berechnet wurde, sortiert nach RowNr.
| Spalte | Typ | Beschreibung |
|---|---|---|
RowNr
|
int |
Fortlaufende Zeilennummer in der Reihenfolge |
ItemKey
|
int |
Interner Schlüssel des Artikels. |
ItemNrInt
Kann leer sein |
varchar(50) string |
Interne Artikelnummer. |
EANUPC
Kann leer sein |
varchar(13) string |
EAN/UPC des Artikels. |
ItemNrSuppl
Kann leer sein |
varchar(50) string |
Lieferanten-Artikelnummer. |
PhysicalStock
Kann leer sein |
int |
Physischer Bestand ( |
AvailableStock
Kann leer sein |
int |
Exportbestand der Lagerplätze abzüglich offener Auftragspositionen oder offener Reservierungen je nach Einstellungen; kein Abzug bei Bundles oder bei konfiguriertem Export des physischen Bestands. |
EstimatedDelivery
Kann leer sein |
datetime dateTime |
Voraussichtlicher Liefertermin für den Export; |
MinStockQty
Kann leer sein |
int |
Mindestbestand des Artikels. |
Enabled
Kann leer sein |
bit boolean |
Gibt an, ob der Artikel aktiv ist. |
OpenSupplierOrderQTY
Kann leer sein |
int |
Wird vom Code nicht befüllt; immer |
UpdateDate
Kann leer sein |
datetime dateTime |
Datum der letzten Bestandsberechnung des Artikels ( |
BundleItem
Kann leer sein |
bit boolean |
Gibt an, ob der Artikel ein Bundle ist. |
OpenSupplOrdersQty
Kann leer sein |
int |
Offene Menge aus offenen Lieferantenbestellungen (bestellt minus geliefert minus nicht geliefert); |
Beispielantwort
<SqlRowSet1>
<row>
<RowNr>1</RowNr>
<ItemKey>10452</ItemKey>
<ItemNrInt>ART-10452</ItemNrInt>
<EANUPC>4006381333931</EANUPC>
<ItemNrSuppl>SUP-7781</ItemNrSuppl>
<PhysicalStock>25</PhysicalStock>
<AvailableStock>21</AvailableStock>
<EstimatedDelivery>2024-05-10T00:00:00</EstimatedDelivery>
<MinStockQty>5</MinStockQty>
<Enabled>true</Enabled>
<OpenSupplierOrderQTY>0</OpenSupplierOrderQTY>
<UpdateDate>2024-05-01T08:15:22.380</UpdateDate>
<BundleItem>false</BundleItem>
<OpenSupplOrdersQty>40</OpenSupplOrdersQty>
</row>
<row>
<RowNr>2</RowNr>
<ItemKey>10987</ItemKey>
<ItemNrInt>ART-10987</ItemNrInt>
<EANUPC>4006381345675</EANUPC>
<ItemNrSuppl>SUP-9012</ItemNrSuppl>
<PhysicalStock>0</PhysicalStock>
<AvailableStock>0</AvailableStock>
<MinStockQty>0</MinStockQty>
<Enabled>true</Enabled>
<OpenSupplierOrderQTY>0</OpenSupplierOrderQTY>
<UpdateDate>2024-05-01T08:16:03.120</UpdateDate>
<BundleItem>false</BundleItem>
</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:pixiGetChangedItemStockSince>
<Since>2024-05-01T08:00:00</Since>
<!-- <Rowcount>500</Rowcount> -->
<!-- <Start>0</Start> -->
</ns1:pixiGetChangedItemStockSince>
</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:pixiGetChangedItemStockSince>
<Since>2024-05-01T08:00:00</Since>
<!-- <Rowcount>500</Rowcount> -->
<!-- <Start>0</Start> -->
</ns1:pixiGetChangedItemStockSince>
</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',
// 'Rowcount' => '500',
// 'Start' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetChangedItemStockSince', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetChangedItemStockSince