pixiShopLinkGetItemsStock
Liefert den verfügbaren Bestand aller Artikel für den Shop-Bestandsexport, optional ohne Nullbestände und ohne Bestand in ausgeschlossenen Lagerplatzgruppen.
Liefert je Artikel eine Zeile mit der internen Artikelnummer und der Menge, die an den Shop exportiert werden kann.
Das Verhalten hängt von der Einstellung OldStockExport ab:
OldStockExport= 1: Die Prozedur sammeltQuantityausItemsin einer temporären Tabelle, liefert aber keine Ergebnismenge (das abschließendeSELECTsteht nur im anderen Zweig).- Sonst (Standard): Die verfügbare Menge wird je Artikel als
ItemQtyIBIExportStock_locationsabzüglich eines Abzugs berechnet:ItemQtyOpenOrderLines, wenn Reservierungen deaktiviert sind (ReservePrepaymentOrders<>1) oderExportAvailableStock_WhenReservationsAreEnabled= 1 ist, und zugleichStockExportUsePhysicalStock=0ist und der Artikel kein Bundle ist;ItemQtyOpenReservations, wenn Reservierungen aktiv sind,StockExportUsePhysicalStock=0ist und der Artikel kein Bundle ist;- kein Abzug (0) in allen anderen Fällen (Export des physischen Bestands oder Bundle-Artikel).
Filter und Korrekturen (nicht-Legacy-Zweig):
- Bei
ExcludeZeros= 1 bleiben nur Artikel mit einer berechneten Menge größer 0.NULLwird als 0 behandelt (alle Artikel). - Ist
ExcludeBinGroupsangegeben (kommagetrennte Liste von Lagerplatzgruppen), wird der Bestand je Artikel auf Lagerplätzen dieser Gruppen ausInvBinItemLogsummiert und abgezogen. Für Bundles, deren Komponenten auf diesen Lagerplätzen liegen, ist der Abzug das Minimum über die Komponenten vonCEILING(Komponentenmenge / Menge im Bundle). Die Zuordnung zur Ergebniszeile erfolgt über den Artikelcode mitCodeTypeId= 2 (Shop-Artikelnummer) gegenItemNrInt. - Negative Mengen werden auf 0 gesetzt.
Die Zeilen werden ohne definierte Sortierung geliefert.
Hinweise
- Ist die Einstellung
OldStockExport= 1, liefert der Aufruf gar keine Zeilen;ExcludeZerosundExcludeBinGroupshaben dann keine sichtbare Wirkung. ExcludeZeroswird vor dem Abzug der Lagerplatzgruppen und vor dem Begrenzen auf 0 angewendet. Artikel können daher beiExcludeZeros= 1 und gesetztemExcludeBinGroupstrotzdem mitAvailableQty= 0 erscheinen.- Der Abzug der Lagerplatzgruppen vergleicht
pixi.ItemCode.Code(Codetyp 2, Shop-Artikelnummer) mitItems.ItemNrInt. Weichen diese Nummern bei einem Artikel ab, wird für ihn nichts abgezogen. - Einstellungen werden über
fpixi_GetSettinggelesen; eine fehlende Einstellung gilt als0. - Alle Tabellen werden
WITH (NOLOCK)gelesen; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Ohne Paging liefert der Aufruf alle Artikel, was bei großen Sortimenten eine umfangreiche Antwort ergibt.
- Ein großer Block älterer Logik ist im Code auskommentiert und wird nicht ausgeführt.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ExcludeZeros
|
bit boolean |
NULL |
Bei 1 werden nur Artikel mit einer berechneten Menge größer 0 geliefert. NULL wird als 0 behandelt. Erlaubte Werte
Beispiel: |
ExcludeBinGroups
|
varchar(max) string |
NULL |
Kommagetrennte Liste von Lagerplatzgruppen ( Beispiel: |
Antwort
Result-Set 1 · Nur wenn die Einstellung OldStockExport nicht 1 ist.
Eine Zeile je Artikel mit der exportierbaren Bestandsmenge.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemNrInt
Kann leer sein |
varchar(50) string |
Interne Artikelnummer ( |
AvailableQty
Kann leer sein |
int |
Verfügbare Menge für den Bestandsexport nach Abzügen; nie negativ. |
Beispielantwort
<SqlRowSet1>
<row>
<ItemNrInt>100245</ItemNrInt>
<AvailableQty>17</AvailableQty>
</row>
<row>
<ItemNrInt>100246</ItemNrInt>
<AvailableQty>0</AvailableQty>
</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:pixiShopLinkGetItemsStock>
<!-- <ExcludeZeros>1</ExcludeZeros> -->
<!-- <ExcludeBinGroups>RETURNS,DEFECT</ExcludeBinGroups> -->
</ns1:pixiShopLinkGetItemsStock>
</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:pixiShopLinkGetItemsStock>
<!-- <ExcludeZeros>1</ExcludeZeros> -->
<!-- <ExcludeBinGroups>RETURNS,DEFECT</ExcludeBinGroups> -->
</ns1:pixiShopLinkGetItemsStock>
</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 = [
// 'ExcludeZeros' => '1',
// 'ExcludeBinGroups' => 'RETURNS,DEFECT',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiShopLinkGetItemsStock', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiShopLinkGetItemsStock