pixiReportGetStockItems
Liefert eine Lagerbewertung pro Artikel mit Lagerbestand, durchschnittlichem EK, Lagerwert, Lageralter, letzter Bestellung und Absatzmengen für drei Zeiträume.
Erstellt eine Lagerbewertung für alle Artikel, die mindestens einen Eintrag in InvBinItem haben. Laut Kopfkommentar wurde die Auswertung für die Lagerbewertung und Preisneuberechnung eines bestimmten Kunden (GCH) erstellt.
Filter
- Ist
SupplNrgesetzt, werden nur Artikel geliefert, derenItems.SupplNrdiesem Wert entspricht. BeiNULL(Standard) werden alle Artikel mit Lagerplatzeinträgen geliefert. - Artikel ohne Zeile in
InvBinItemerscheinen nicht. Artikel, deren Lagerplatzbestände in Summe 0 ergeben, erscheinen trotzdem.
Berechnete Werte pro Artikel
EK: durchschnittlicher Lieferantenpreis ausfPixi_GetAverageSupplPrice. Gemittelt wirdAddItems.SupplPricealler überIntLinkNr1verknüpften Lieferantendatensätze. Preise mitNULLoder 0 und der LieferantMGSwerden ignoriert. Gibt es keinen solchen Preis, ist der Wert0.AnzahlArtikelAufLager: Summe vonBinItemQtyüber alle Lagerplätze des Artikels.EKGesamt: Lagerbestand multipliziert mitEK.AufLagerSeit/AufLagerSeitTage: frühestesUpdateDateinInvBinItemLogmit positiver Menge und die Anzahl der Tage seitdem.LetzteBestellung/LetzteBestellungTage: spätestesOrderDateeiner Auftragsposition des Artikels und die Anzahl der Tage seitdem.soldRange1,soldRange2,soldRange3: Summe vonOrderlines.Qtyaller Auftragspositionen, derenOrderDateinnerhalb der letztenSoldRange1,SoldRange2bzw.SoldRange3Tage liegt, gerechnet ab der aktuellen Serverzeit.
Das Ergebnis hat keine festgelegte Sortierung und kein Paging.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, die Werte können daher nicht festgeschriebene Daten enthalten. - Absatzmengen und letzte Bestellung berücksichtigen alle Auftragspositionen des Artikels, unabhängig vom Status von Auftrag oder Position (z. B. werden stornierte Positionen nicht ausgeschlossen).
soldRange*,LetzteBestellung,AufLagerSeitund die Tagesspalten sindNULL, wenn keine passenden Auftragspositionen bzw. Logeinträge existieren.- Der durchschnittliche EK schließt den Lieferanten
MGSimmer aus; dies ist infPixi_GetAverageSupplPricefest codiert. Die Ausweichabfrage der Funktion ist identisch mit der ersten Abfrage, daher ergibt sich ohne gefundenen Preis faktisch0. - Pro Artikel werden mehrere korrelierte Unterabfragen und ein Aufruf einer Skalarfunktion ausgeführt. Ohne Filter auf
SupplNrkann der Aufruf bei großen Artikelbeständen lange dauern.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer ( Beispiel: |
SoldRange1
|
int | 30 |
Anzahl der Tage ab heute rückwärts für die Absatzsumme in Spalte Beispiel: |
SoldRange2
|
int | 90 |
Anzahl der Tage ab heute rückwärts für die Absatzsumme in Spalte Beispiel: |
SoldRange3
|
int | 120 |
Anzahl der Tage ab heute rückwärts für die Absatzsumme in Spalte Beispiel: |
Antwort
Result-Set 1 · Immer; eine Zeile pro Artikel mit mindestens einem InvBinItem-Eintrag, der zum Lieferantenfilter passt.
Lagerbewertung pro Artikel.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemKey
|
int |
Interner Artikelschlüssel. |
Artikelnummer
Kann leer sein |
string |
Lieferantenartikelnummer ( |
EANUPC
Kann leer sein |
string |
EAN/UPC des Artikels. |
Lieferant
Kann leer sein |
string |
Lieferantennummer des Artikels ( |
Artikelname
Kann leer sein |
string |
Artikelname. |
VK
Kann leer sein |
decimal |
Verkaufspreis ( |
EK
|
money decimal |
Durchschnittlicher Lieferantenpreis über die verknüpften Lieferantendatensätze ohne Lieferant |
AnzahlArtikelAufLager
Kann leer sein |
int |
Gesamter Lagerbestand über alle Lagerplätze. |
EKGesamt
Kann leer sein |
money decimal |
Lagerwert: Lagerbestand × |
AufLagerSeit
Kann leer sein |
datetime dateTime |
Frühestes Einlagerungsdatum (erster |
AufLagerSeitTage
Kann leer sein |
int |
Tage seit |
LetzteBestellung
Kann leer sein |
datetime dateTime |
Spätestes Auftragsdatum einer Auftragsposition des Artikels. |
LetzteBestellungTage
Kann leer sein |
int |
Tage seit |
soldRange1
Kann leer sein |
int |
Bestellte Menge innerhalb der letzten |
soldRange2
Kann leer sein |
int |
Bestellte Menge innerhalb der letzten |
soldRange3
Kann leer sein |
int |
Bestellte Menge innerhalb der letzten |
Beispielantwort
<SqlRowSet1>
<row>
<ItemKey>10452</ItemKey>
<Artikelnummer>MG-4711</Artikelnummer>
<EANUPC>4006381333931</EANUPC>
<Lieferant>MGS</Lieferant>
<Artikelname>Steckdosenleiste 6-fach</Artikelname>
<VK>24.9900</VK>
<EK>11.2500</EK>
<AnzahlArtikelAufLager>38</AnzahlArtikelAufLager>
<EKGesamt>427.5000</EKGesamt>
<AufLagerSeit>2023-02-14T09:31:00</AufLagerSeit>
<AufLagerSeitTage>412</AufLagerSeitTage>
<LetzteBestellung>2024-03-28T16:05:12</LetzteBestellung>
<LetzteBestellungTage>4</LetzteBestellungTage>
<soldRange1>12</soldRange1>
<soldRange2>31</soldRange2>
<soldRange3>40</soldRange3>
</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:pixiReportGetStockItems>
<!-- <SupplNr>MGS</SupplNr> -->
<!-- <SoldRange1>30</SoldRange1> -->
<!-- <SoldRange2>90</SoldRange2> -->
<!-- <SoldRange3>180</SoldRange3> -->
</ns1:pixiReportGetStockItems>
</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:pixiReportGetStockItems>
<!-- <SupplNr>MGS</SupplNr> -->
<!-- <SoldRange1>30</SoldRange1> -->
<!-- <SoldRange2>90</SoldRange2> -->
<!-- <SoldRange3>180</SoldRange3> -->
</ns1:pixiReportGetStockItems>
</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 = [
// 'SupplNr' => 'MGS',
// 'SoldRange1' => '30',
// 'SoldRange2' => '90',
// 'SoldRange3' => '180',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportGetStockItems', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportGetStockItems