Postman-Collection
Stock Lesen

pixiReportInventoryItemsToRefillMinStock

Liefert eine Pickliste der Artikel, die von einem Quell- an einen Ziellagerort umzulagern sind, mit Menge je Quell-Lagerplatz nach einem von drei Auffüllmodi.

Der Aufruf gibt alle Parameter unverändert an die interne Report-Prozedur Report_InventoryItemsToRefillMinStock weiter und liefert deren Ergebnis.

Schritt 1 – Kandidaten-Artikel

Ein Artikel ist nur dann ein Kandidat, wenn:

  • FromLocID und ToLocID verschieden sind,
  • der Artikel für FromLocID und ToLocID je einen ItemLocationSpecific-Datensatz hat,
  • der Artikel mindestens einem Lagerplatz (InvBinItem/InvBin) in FromLocID zugeordnet ist,
  • die berechnete Fehlmenge größer als 0 ist.

Offene Auftragsmengen werden aus den Orderlines des Artikels an einem Auftragslagerort summiert. Dieser ist ToLocID bei Type 1 und 3, sonst FromLocID. Die Status ANG, BES und BOR zählen als offene Kundenaufträge, HAL als angehaltene Aufträge. Steht die Einstellung InventoryItemsToRefill_NoHAL auf 1, bleiben angehaltene Mengen in den Berechnungen unberücksichtigt.

Der verfügbare Bestand am Quelllagerort ist der Lagerortbestand in FromLocID, abzüglich:

  • des Mindestbestands von FromLocID (nur bei MinStock = 1 und Type = 2),
  • der offenen Kundenauftragsmenge (nur wenn der Auftragslagerort FromLocID ist),
  • der angehaltenen Menge (sofern die Einstellung sie nicht ausschließt).

Die Fehlmenge am zusätzlichen Lagerort ist Mindestbestand minus Lagerortbestand in AdditionalLocID. Liegt der Bestand nicht unter dem Mindestbestand, ist sie 0.

Die Fehlmenge hängt von Type ab:

  • 1: Bedarf = offene Kundenaufträge in ToLocID + angehaltene Menge + Mindestbestand von ToLocID (nur bei MinStock = 1). Passt der Bedarf in den verfügbaren Bestand, ist das Ziel die Fehlmenge am zusätzlichen Lagerort plus Bedarf, sonst der verfügbare Bestand. Ergebnis ist Ziel minus aktueller Bestand in ToLocID, mindestens 0.
  • 2: Fehlmenge am zusätzlichen Lagerort, begrenzt auf den verfügbaren Bestand am Quelllagerort.
  • 3: Nur wenn alle folgenden Bedingungen erfüllt sind: Mindestbestand in ToLocID ist 0, Bestand in AdditionalLocID ist 0, Bestand in FromLocID ist größer 0 und es gibt offene Kundenaufträge in ToLocID. Ergebnis ist der kleinere Wert aus offenen Kundenaufträgen und Bestand in FromLocID.

Schritt 2 – Verteilung auf Lagerplätze

Je Kandidat werden die InvBinItem-Datensätze des Artikels auf Lagerplätzen in FromLocID nach InvBinItemKey nummeriert. Verwendet werden nur die ersten n Datensätze, wobei n die Fehlmenge ist. Die Zeilen werden je Quell-Lagerplatz gruppiert. MissingQty in der Ausgabe ist die Anzahl dieser Datensätze auf dem jeweiligen Lagerplatz. Das entspricht einer Stückzahl, wenn jeder Lagerplatz-Datensatz für ein Stück steht. Zusätzlich wird ein Lagerplatz in ToLocID als Ziel-Lagerplatz ausgegeben, falls vorhanden.

Sortierung

Bei SortBy = 1 wird nach der Sortiernummer des Ziel-Lagerplatzes sortiert, sonst nach der des Quell-Lagerplatzes. Innerhalb davon wird nach ItemName sortiert.

Hinweise

  • Der Kopfkommentar der Wrapper-Prozedur beschreibt sie als Aufruf des 1SS-Reports zu Abrechnungszwecken.
  • Type ist im Wrapper standardmäßig NULL. Bei NULL oder einem anderen Wert als 1, 2 oder 3 ist die Fehlmenge NULL und es werden keine Zeilen geliefert. Type sollte daher immer übergeben werden.
  • Die Fehlmenge am zusätzlichen Lagerort stammt aus einer Outer-Verknüpfung. Ist AdditionalLocID NULL oder hat der Artikel dort keinen ItemLocationSpecific-Datensatz, ist der Wert NULL statt 0:
    • Type 2 und Type 3 liefern dann für den Artikel keine Zeile.
    • Type 1 liefert nur dann eine Zeile, wenn der Bedarf den verfügbaren Bestand übersteigt.
  • Der Ziel-Lagerplatz wird per TOP 1 ohne ORDER BY ermittelt. Bei mehreren Lagerplätzen in ToLocID ist der angezeigte Lagerplatz nicht deterministisch.
  • Der Wert der Einstellung InventoryItemsToRefill_NoHAL wird zur Laufzeit über fPIXI_GetSetting gelesen; diese Funktion liegt nicht vor.
  • Alle Lesezugriffe erfolgen mit NOLOCK, daher können nicht festgeschriebene Daten enthalten sein.
  • Der Aufruf liest nur Daten. Intern wird eine temporäre Tabelle verwendet.

Parameter

Parameter Typ Standardwert Beschreibung
FromLocID
Pflicht
varchar(3)
string
–

Quelllagerort, aus dem entnommen wird. Der Artikel muss hier Lagerplätze und einen ItemLocationSpecific-Datensatz haben.

Beispiel: 002

MinStock
bit
boolean
1

Steuert, ob der Mindestbestand berücksichtigt wird. Bei Type 1 wird der Mindestbestand von ToLocID zum Bedarf addiert. Bei Type 2 wird der Mindestbestand von FromLocID vom verfügbaren Bestand zurückgehalten. Keine Wirkung bei Type 3.

Erlaubte Werte

  • 1 – Mindestbestand berücksichtigen
  • 0 – Mindestbestand ignorieren

Beispiel: 1

ToLocID
Pflicht
varchar(3)
string
–

Ziellagerort, der aufgefüllt werden soll. Muss sich von FromLocID unterscheiden, sonst werden keine Zeilen geliefert. Der Artikel muss hier einen ItemLocationSpecific-Datensatz haben.

Beispiel: 001

AdditionalLocID
varchar(3)
string
NULL

Zusätzlicher Lagerort, dessen Unterschreitung des Mindestbestands einbezogen wird (Type 1 und 2). Bei Type 3 muss sein Bestand 0 sein.

Beispiel: 003

SortBy
varchar(1)
string
NULL

Sortierung des Ergebnisses. Der Wert wird auch in der Spalte SortBy zurückgegeben.

Erlaubte Werte

  • 1 – Sortierung nach Sortiernummer des Ziel-Lagerplatzes in `ToLocID`, dann Artikelname
  • (other or NULL) – Sortierung nach Sortiernummer des Quell-Lagerplatzes in `FromLocID`, dann Artikelname

Beispiel: 1

Type
int NULL

Berechnungsmodus für die Fehlmenge. Ohne gültigen Wert werden keine Zeilen geliefert.

Erlaubte Werte

  • 1 – Offene (und angehaltene) Kundenaufträge in `ToLocID`, zuzüglich optionalem Mindestbestand von `ToLocID` und Fehlmenge in `AdditionalLocID`; begrenzt auf verfügbaren Quellbestand, abzüglich aktuellem Bestand in `ToLocID`
  • 2 – Auffüllen der Mindestbestands-Unterschreitung in `AdditionalLocID`, begrenzt auf verfügbaren Quellbestand
  • 3 – Entnahme für offene Kundenaufträge in `ToLocID`, wenn `ToLocID` keinen Mindestbestand und `AdditionalLocID` keinen Bestand hat; begrenzt auf Bestand in `FromLocID`

Beispiel: 1

Antwort

Result-Set 1 · Immer; leer, wenn kein Artikel qualifiziert, FromLocID = ToLocID oder Type nicht 1, 2 oder 3 ist

Eine Zeile je Artikel und Quell-Lagerplatz mit der von dort umzulagernden Menge.

Spalte Typ Beschreibung
FromLocIDbinName string

Name des Quell-Lagerplatzes in FromLocID (InvBin.BinName)

FromLocIDbinSortNum
Kann leer sein
int

Sortiernummer des Quell-Lagerplatzes

ToLocIDbinName
Kann leer sein
string

Name eines Lagerplatzes des Artikels in ToLocID; NULL, wenn dort keiner existiert

ToLocIDbinSortNum
Kann leer sein
int

Sortiernummer des Ziel-Lagerplatzes

EanUpc
Kann leer sein
string

EAN/UPC des Artikels

ItemName
Kann leer sein
string

Artikelname

ToLocQty int

Aktueller Lagerortbestand in ToLocID (0, wenn NULL)

FromLocQty
Kann leer sein
int

Aktueller Lagerortbestand in FromLocID

MinStockQty
Kann leer sein
int

Mindestbestand von ToLocID bei Type 1, sonst von FromLocID

SupplPrice
Kann leer sein
decimal

Lieferantenpreis des Artikels (Items.SupplPrice)

OpenCustOrdersQty int

Menge in Auftragspositionen mit Status ANG, BES oder BOR am Auftragslagerort

OrdersOnHoldQty int

Menge in Auftragspositionen mit Status HAL am Auftragslagerort, unabhängig von der Einstellung

ParFromLocID varchar(3)
string

Wert des Parameters FromLocID

ParToLocID varchar(3)
string

Wert des Parameters ToLocID

SortBy
Kann leer sein
varchar(1)
string

Wert des Parameters SortBy

MissingQty int

Anzahl der Lagerplatz-Datensätze des Artikels auf diesem Quell-Lagerplatz, die zur Deckung der Fehlmenge verwendet werden

FromBinqty
Kann leer sein
int

Gesamtmenge des Artikels auf diesem Quell-Lagerplatz (Summe von BinItemQTY)

PicLinkSmall
Kann leer sein
string

Link zum kleinen Artikelbild

PicLinkLarge
Kann leer sein
string

Link zum großen Artikelbild

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:pixiReportInventoryItemsToRefillMinStock>
      <FromLocID>002</FromLocID>
      <!-- <MinStock>1</MinStock> -->
      <ToLocID>001</ToLocID>
      <!-- <AdditionalLocID>003</AdditionalLocID> -->
      <!-- <SortBy>1</SortBy> -->
      <!-- <Type>1</Type> -->
    </ns1:pixiReportInventoryItemsToRefillMinStock>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Items · Lesen Orderlines · Lesen ItemLocationSpecific · Lesen InvBinItem · Lesen InvBin · Lesen
SQL-Objekt:
dbo.pipiReportInventoryItemsToRefillMinStock
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben