Postman-Collection
Reports Lesen

pixiReportStockSalesOverview

Liefert pro Artikel eine Übersicht über aktuellen Bestand, Lagerbewegungen, fakturierte Verkäufe und Retouren seit einem Stichtag, mit Paging über den Artikelschlüssel.

Erstellt einen Bestands- und Verkaufsbericht für alle Artikel aus Items.

Pro Artikel werden berechnet:

  • Durchschnittlicher Lieferanten-EK (SupplPrice): Durchschnitt von SupplPrice aus AddItems für die IntLinkNr1 des Artikels. Lieferant MGS sowie leere Preise und Nullpreise werden ignoriert. Wird kein Preis gefunden, ist der Wert 0.
  • Aktueller Bestand (StockQty): Summe von BinItemQty über alle Lagerplätze in InvBinItem, 0 ohne Lagerplatzeintrag.
  • Zugänge / Abgänge (StockInc, StockDec): Summe der positiven bzw. negativen Mengen im Lagerplatzprotokoll InvBinItemLog mit UpdateDate >= @StatDateFrom.
  • Erste Einlagerung (FirstPutToStock): frühester Protokolleintrag mit positiver Menge. Dieser Wert berücksichtigt @StatDateFrom nicht.
  • Verkaufte / retournierte Menge (ItemQtySold, ItemQtyReturned): Summe der positiven bzw. negativen ItemQty aus Rechnungspositionen (InvLines) mit CreateDate >= @StatDateFrom.
  • Letztes Verkaufsdatum (LastSaleDate): späteste CreateDate dieser Rechnungspositionen.

Der Kategorietext stammt aus TontrArten und wird über den ConfigType des Artikels zugeordnet.

Filter:

  • @StatDateFrom: Beginn des Auswertungszeitraums. Bei NULL wird 1970-01-01 verwendet, also die gesamte Historie.
  • @ItemKeyStart: nur Artikel mit ItemKey >= @ItemKeyStart. NULL bedeutet keine Untergrenze.
  • @OnlyItemsOnStock = 1: nur Artikel mit aktuellem Bestand größer 0.

Sortierung nach ItemKey aufsteigend. SET ROWCOUNT @RowCount begrenzt die Zeilenanzahl. Für Paging wird im nächsten Aufruf der zuletzt gelieferte ItemKey + 1 als @ItemKeyStart übergeben.

Hinweise

  • Alle Tabellen werden mit NOLOCK gelesen. Die Werte können daher nicht festgeschriebene Daten enthalten.
  • Die Aggregationen in den CTEs laufen über alle Artikel. Die Filter @ItemKeyStart und @OnlyItemsOnStock greifen erst im abschließenden SELECT. Je nach Optimizer kann der Aufruf bei großen Datenbeständen langsam sein. Zusätzlich wird die Skalarfunktion fPixi_GetAverageSupplPrice pro Artikel ausgewertet.
  • StockDec und ItemQtyReturned sind negative Werte oder 0.
  • LastSaleDate ist NULL, wenn im Zeitraum keine Rechnungspositionen vorhanden sind. FirstPutToStock ist NULL, wenn der Artikel nie eingelagert wurde.
  • @RowCount = 0 hebt die Zeilenbegrenzung auf, da SET ROWCOUNT 0 so arbeitet.

Parameter

Parameter Typ Standardwert Beschreibung
StatDateFrom
datetime
dateTime
NULL

Beginn des Auswertungszeitraums für Lagerbewegungen und Rechnungspositionen. Bei NULL wird 1970-01-01 verwendet.

Beispiel: 2024-01-01T00:00:00

ItemKeyStart
int NULL

Liefert nur Artikel mit ItemKey größer oder gleich diesem Wert. Dient dem Paging. NULL bedeutet keine Untergrenze.

Beispiel: 1001

OnlyItemsOnStock
bit
boolean
0

Beschränkt das Ergebnis auf Artikel mit aktuellem Bestand größer 0.

Erlaubte Werte

  • 0 – Alle Artikel
  • 1 – Nur Artikel mit Bestand > 0

Beispiel: 1

RowCount
int 1000

Maximale Anzahl gelieferter Zeilen, umgesetzt über SET ROWCOUNT. 0 bedeutet keine Begrenzung.

Beispiel: 500

Antwort

Result-Set 1 · Immer

Eine Zeile pro Artikel, sortiert nach ItemKey.

Spalte Typ Beschreibung
ItemKey int

Interner Artikelschlüssel

ItemNrInt
Kann leer sein
string

Interne Artikelnummer

ItemNrSuppl
Kann leer sein
string

Lieferantenartikelnummer

SupplNr
Kann leer sein
string

Lieferantennummer des Artikels

ItemName
Kann leer sein
string

Artikelbezeichnung

Category
Kann leer sein
string

Text aus TontrArten zum ConfigType des Artikels

Price
Kann leer sein
decimal

Artikelpreis aus Items

SupplPrice money
decimal

Durchschnittlicher Lieferanten-EK aus AddItems (ohne Lieferant MGS), 0 wenn kein Preis gefunden wird

StockQty int

Aktueller Bestand, summiert über alle Lagerplätze

StockInc int

Summe der Lagerzugänge seit @StatDateFrom

StockDec int

Summe der Lagerabgänge seit @StatDateFrom (negativ oder 0)

ItemQtySold
Kann leer sein
int

Fakturierte Menge (positive Rechnungspositionen) seit @StatDateFrom

ItemQtyReturned
Kann leer sein
int

Retournierte Menge (negative Rechnungspositionen) seit @StatDateFrom, negativ oder 0

FirstPutToStock
Kann leer sein
datetime
dateTime

Datum des ersten Lagerzugangs im Protokoll, unabhängig von @StatDateFrom

LastSaleDate
Kann leer sein
datetime
dateTime

Erstelldatum der letzten Rechnungsposition seit @StatDateFrom

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:pixiReportStockSalesOverview>
      <!-- <StatDateFrom>2024-01-01T00:00:00</StatDateFrom> -->
      <!-- <ItemKeyStart>1001</ItemKeyStart> -->
      <!-- <OnlyItemsOnStock>1</OnlyItemsOnStock> -->
      <!-- <RowCount>500</RowCount> -->
    </ns1:pixiReportStockSalesOverview>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Items · Lesen InvBinItem · Lesen InvBinItemLog · Lesen InvLines · Lesen TontrArten · Lesen AddItems · Lesen
SQL-Objekt:
dbo.pipiReportStockSalesOverview
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben