Postman-Collection
Reports Lesen

pixiReport_StockMovementsForItemsWithBnBbd

Liefert die Lagerbewegungen von Artikeln mit Chargen- bzw. MHD-Verwaltung, gefiltert nach Zeitraum, Bewegungsart, Benutzer, Lager, Tag, Kategorie und Lieferant.

Wrapper um die interne Report-Prozedur Report_StockMovementsForItemsWithBnBbd. Geliefert werden Einträge des Lagerbewegungsprotokolls (InvBinItemLog) für Artikel mit dem Artikel-Tag -6 oder -7 (Charge / MHD).

Parameterbehandlung

  • Leere Werte (sowie 0 bei den Integer-Parametern) werden als NULL behandelt, also als „kein Filter“.
  • Fehlt DateFrom, gilt der Beginn des aktuellen Tages. Fehlt DateTo, gilt das Ende des aktuellen Tages. Die Uhrzeit beider Werte wird ignoriert: DateFrom wird auf 00:00:00 und DateTo auf 23:59:59.997 des jeweiligen Tages gesetzt.

Parameterprüfungen (bei einem Fehler wird eine Zeile mit Status/Message geliefert und der Aufruf beendet)

  1. LocID muss in Location existieren.
  2. ItemTag muss, falls angegeben, -6 oder -7 sein.
  3. UserName muss als Teilstring von UpdateEmp in mindestens einem Protokolleintrag vorkommen.
  4. SMTKey muss in StockMovementTypes existieren.
  5. Category muss in TontrArten existieren.

SupplNr wird nicht geprüft.

Filter

  • Bewegungsdatum (UpdateDate) zwischen DateFrom und DateTo. Dieser Filter ist immer aktiv.
  • SMTKey: Lagerbewegungsart des Protokolleintrags.
  • UserName: Teilstring-Suche (LIKE '%…%') auf den Benutzer des Eintrags.
  • LocID: Lager des aktuellen Lagerplatzes (InvBin.BinLocID).
  • ItemTag: nur Artikel mit diesem Tag (-6 oder -7).
  • Category: ConfigType des Artikels.
  • SupplNr: Lieferant aus der zum Bewegungsdatum gültigen, jüngsten Lieferanteninformation.

Ausgabe Eine Zeile je Bewegung mit Artikel, Lagerplatz, bewegter Menge, Charge, MHD, Bewegungsart mit übersetztem Namen, Benutzer, historischem Lieferantenpreis und Datenbankwährung. Der Report sortiert die Zeilen aufsteigend nach Bewegungsdatum.

Hinweise

  • Alle Tabellen werden mit NOLOCK gelesen, daher können nicht festgeschriebene Daten im Ergebnis erscheinen.
  • Der Report selbst sortiert nach Bewegungsdatum. Das abschließende SELECT aus der temporären Tabelle enthält kein ORDER BY, die Reihenfolge ist daher nicht streng garantiert.
  • Da leere Werte auf NULL abgebildet werden, gelten SMTKey bzw. ItemTag mit dem Wert 0 sowie das Datum 1900-01-01 als „nicht gesetzt“.
  • Stock ist SUM(Items.Quantity). Das ist der Gesamtbestand des Artikels, nicht der Bestand auf dem Lagerplatz. Fallen mehrere verknüpfte Zeilen in eine Gruppe, kann der Wert ein Vielfaches dieses Bestands sein.
  • BinName enthält den aktuellen Lagerplatznamen. Bei gelöschten Lagerplätzen enthält er den historischen Namen gefolgt von Deleted. Gelöschte Lagerplätze fallen bei gesetztem LocID aus dem Ergebnis, da der Lagerfilter nur den aktuellen Lagerplatz verwendet.
  • Hat eine Bewegung weder einen aktuellen noch einen gelöschten Lagerplatzeintrag, ist BinName leer und das Einfügen in die Ergebnistabelle schlägt fehl. Dann wird die Zeile „Unexpected error“ geliefert.
  • SMTName ist die Übersetzung mit LanguageID = 2.
  • UserName ist der Teil von UpdateEmp vor dem ersten /.
  • Die Prüfung für UserName (bzw. LocID) schlägt auch fehl, wenn InvBinItemLog (bzw. Location) leer ist, selbst wenn kein Wert übergeben wurde.
  • Die Lieferantendaten stammen aus der Funktion fPixi_GetLatestSupplierInfo. Deren Definition liegt nicht vor, die genaue Auswahllogik ist hier daher nicht dokumentiert.
  • Der Report läuft als dynamisches SQL über sp_executesql.
  • Der Report berechnet zusätzlich die Spalten ParamDateFrom … ParamSupplier, diese werden aber nicht an den Aufrufer geliefert.
  • Ein Code-Kommentar nennt die Tags -6 und -7 zusammen als „BN & BBD“.

Parameter

Parameter Typ Standardwert Beschreibung
DateFrom
datetime
dateTime
NULL

Beginn des Zeitraums (Bewegungsdatum). Die Uhrzeit wird ignoriert, der Tag beginnt um 00:00:00. Standard: Beginn des aktuellen Tages.

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

DateTo
datetime
dateTime
NULL

Ende des Zeitraums (Bewegungsdatum). Die Uhrzeit wird ignoriert, der ganze Tag bis 23:59:59.997 ist eingeschlossen. Standard: Ende des aktuellen Tages.

Beispiel: 2024-03-31T00:00:00

SMTKey
int NULL

Schlüssel der Lagerbewegungsart (StockMovementTypes.SMTKey). Er muss existieren. NULL oder 0 bedeutet alle Bewegungsarten.

Beispiel: 5

UserName
varchar(100)
string
NULL

Teilstring des im Bewegungsprotokoll gespeicherten Benutzernamens (UpdateEmp). Mindestens ein Protokolleintrag muss passen.

Beispiel: mmueller

LocID
varchar(3)
string
NULL

Lager-ID (Location.LocID). Sie muss existieren. Filtert auf das Lager des aktuellen Lagerplatzes.

Beispiel: 001

ItemTag
int NULL

Schränkt auf Artikel mit diesem Tag ein. Nur -6 und -7 sind zulässig. NULL oder 0 bedeutet beide.

Erlaubte Werte

  • -6 – System-Artikel-Tag -6 (einer der Chargen-/MHD-Tags)
  • -7 – System-Artikel-Tag -7 (einer der Chargen-/MHD-Tags)

Beispiel: -6

Category
varchar(4)
string
NULL

Artikelkategorie (TontrArten.TontrArt). Sie muss existieren und wird mit Items.ConfigType verglichen.

Beispiel: STD

SupplNr
varchar(4)
string
NULL

Lieferantennummer. Sie wird mit dem Lieferanten der zum Bewegungsdatum gültigen, jüngsten Lieferanteninformation verglichen. Sie wird nicht validiert.

Beispiel: L001

Antwort

Result-Set 1 · Bei Erfolg (alle Parameterprüfungen bestanden)

Lagerbewegungen von Chargen-/MHD-Artikeln, eine Zeile je Bewegung.

Spalte Typ Beschreibung
EANUPC
Kann leer sein
varchar(50)
string

EAN/UPC des Artikels

ItemName
Kann leer sein
varchar(120)
string

Artikelname

BinName varchar(50)
string

Lagerplatzname; bei gelöschten Lagerplätzen der historische Name gefolgt von ' Deleted'

Stock
Kann leer sein
int

Summe von Items.Quantity (Gesamtbestand des Artikels)

MovedQty int

Bewegte Menge dieser Bewegung

HistTotalSupplPrice
Kann leer sein
money
decimal

Zum Bewegungsdatum gültiger Lieferantenpreis multipliziert mit der bewegten Menge

Date
Kann leer sein
datetime
dateTime

Datum und Uhrzeit der Bewegung

SMTType varchar(4)
string

Typkürzel der Lagerbewegungsart

SMTName
Kann leer sein
varchar(max)
string

Übersetzter Name der Lagerbewegungsart (Sprach-ID 2)

BatchNumber
Kann leer sein
varchar(50)
string

Charge der Bewegung

BestBeforeDate
Kann leer sein
datetime
dateTime

MHD der Bewegung

UserName
Kann leer sein
varchar(100)
string

Benutzer der Bewegung (Teil von UpdateEmp vor dem ersten '/')

DatabaseCurrencyCode varchar(3)
string

Währungscode der Datenbank

SupplNr
Kann leer sein
varchar(4)
string

Lieferantennummer aus der jüngsten Lieferanteninformation zum Bewegungsdatum

ItemKey
Kann leer sein
int

Interner Artikelschlüssel

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer

InternalItemNumber
Kann leer sein
varchar(50)
string

Artikelcode mit Codetyp 3 aus pixi.ItemCode

Result-Set 2 · Wenn eine Parameterprüfung fehlschlägt oder ein unerwarteter Fehler auftritt

Einzelne Fehlerzeile. Die Prozedur gibt bei Prüffehlern den Code 2 und bei unerwarteten Fehlern den Code 3 zurück.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer 'Error'

Message varchar(max)
string

Fehlertext

Fehlermeldungen

Status Meldung Ursache
Error Location "{LocID}" does not exist. `LocID` existiert nicht in `Location`. Der Fehler tritt auch auf, wenn die Tabelle `Location` leer ist. Eine existierende Lager-ID übergeben.
Error Only item tag with ID -6 and -7 are allowed. `ItemTag` ist auf einen anderen Wert als -6 oder -7 gesetzt.
Error User with user name: "{UserName}" does not exist. Kein Eintrag im Bewegungsprotokoll hat ein `UpdateEmp`, das `UserName` enthält. Der Fehler tritt auch auf, wenn das Protokoll leer ist.
Error Stock movement type with SMTKey: "{SMTKey}" does not exist. `SMTKey` existiert nicht in `StockMovementTypes`.
Error Category with ID: "{Category}" does not exist. `Category` existiert nicht in `TontrArten`.
Error Unexpected error while getting the report values. ({ERROR_MESSAGE}) Der interne Report ist fehlgeschlagen, z. B. wenn eine Bewegung keinen Lagerplatznamen hat und das Einfügen in die Ergebnistabelle scheitert.

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:pixiReport_StockMovementsForItemsWithBnBbd>
      <!-- <DateFrom>2024-03-01T00:00:00</DateFrom> -->
      <!-- <DateTo>2024-03-31T00:00:00</DateTo> -->
      <!-- <SMTKey>5</SMTKey> -->
      <!-- <UserName>mmueller</UserName> -->
      <!-- <LocID>001</LocID> -->
      <!-- <ItemTag>-6</ItemTag> -->
      <!-- <Category>STD</Category> -->
      <!-- <SupplNr>L001</SupplNr> -->
    </ns1:pixiReport_StockMovementsForItemsWithBnBbd>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Location · Lesen InvBinItemLog · Lesen StockMovementTypes · Lesen TontrArten · Lesen Translation · Lesen TagMatch · Lesen ItemCode · Lesen Items · Lesen InvBin · Lesen InvBinHist · Lesen Tag · Lesen Suppliers · Lesen
SQL-Objekt:
dbo.pipiReport_StockMovementsForItemsWithBnBbd
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben