Postman-Collection
Stock Lesen

pixiGetRelocations

Liefert Umlagerungen von Artikeln zwischen Lagern (Auslagerung und Einlagerung) aus dem Lagerplatz-Artikel-Log für einen Zeitraum von höchstens 31 Tagen, mit Paging.

Liefert die Lagerbewegungen, die beim Umlagern von Artikeln von einem Lager in ein anderes entstehen.

  1. Standardwerte und Bereinigung: Ist ChangeDateFrom leer, wird der Beginn des aktuellen Monats (00:00) verwendet; ist ChangeDateTo leer, das Ende des aktuellen Tages (23:59:59.997). FromLocation und ToLocation werden getrimmt; leere Zeichenketten gelten als "kein Filter".
  2. Prüfung: Liegen zwischen ChangeDateFrom und ChangeDateTo mehr als 31 Tage (gezählt als Tagesgrenzen), wird eine einzelne Statuszeile mit Status = Error zurückgegeben und der Aufruf beendet.
  3. Kandidaten: Aus dem Lagerplatz-Artikel-Log werden alle Einträge mit UpdateDate im Zeitraum in zwei Gruppen gelesen:
    • Auslagerungen (SMTRef = 19, SMORef = 11),
    • Einlagerungen (SMTRef = 11, SMORef = 12). Jede Gruppe wird getrennt in der Reihenfolge des Log-Schlüssels nummeriert.
  4. Zuordnung: Der n-te Auslagerungseintrag wird mit dem n-ten Einlagerungseintrag verknüpft. Zurückgegeben werden nur Paare, bei denen ein Einlagerungseintrag existiert und der Artikel des Auslagerungseintrags im Artikelstamm vorhanden ist. FromLocation ist das Lager des Auslagerungseintrags, ToLocation das Lager des Einlagerungseintrags.
  5. Lagerfilter: FromLocation filtert auf das Quelllager, ToLocation auf das Ziellager; beide sind kombinierbar.
  6. Paging: Die verbleibenden Zeilen werden erneut (in Reihenfolge des Log-Schlüssels) in RowNumber nummeriert. Zurückgegeben werden höchstens RowCount Zeilen mit RowNumber > Offset, sortiert nach RowNumber.

Qty ist die Menge des Auslagerungseintrags multipliziert mit -1, also die umgelagerte Menge als positive Zahl.

Hinweise

  • Aus- und Einlagerungseinträge werden nur über die Position verknüpft (n-te Auslagerung mit n-ter Einlagerung in Reihenfolge des Log-Schlüssels), nicht über Artikel oder Umlagerungsbeleg. Weicht die Anzahl der Aus- und Einlagerungen im Zeitraum voneinander ab oder liegt eine Umlagerung über der Zeitraumgrenze, können Paare verschoben sein und ToLocation zu einer anderen Bewegung gehören.
  • Die Bedeutung der Codes SMTRef/SMORef (19/11 und 11/12) ist im Code nicht dokumentiert; die Deutung als Aus-/Einlagerung stammt aus den Namen der temporären Tabellen.
  • Wird ChangeDateTo als Datum ohne Uhrzeit übergeben, gilt Mitternacht zu Beginn dieses Tages; spätere Bewegungen dieses Tages fehlen dann.
  • Alle Lesezugriffe verwenden NOLOCK, nicht festgeschriebene Daten können daher erscheinen.
  • Die Hilfsprozeduren util.IndexCreate und util.TempTableDrop werden nur für temporäre Tabellen genutzt; ihre Definitionen liegen nicht vor.
  • RowNumber wird nach den Lagerfiltern berechnet, Paging über Offset ist daher bei gleichen Filterwerten konsistent.

Parameter

Parameter Typ Standardwert Beschreibung
FromLocation
varchar(3)
string
NULL

Quelllager (Lager-ID des Auslagerungseintrags). Leer oder NULL bedeutet alle Quelllager.

Beispiel: 001

ToLocation
varchar(3)
string
NULL

Ziellager (Lager-ID des Einlagerungseintrags). Leer oder NULL bedeutet alle Ziellager.

Beispiel: 002

ChangeDateFrom
datetime
dateTime
NULL

Beginn des Zeitraums (inklusive) auf UpdateDate. NULL bedeutet Beginn des aktuellen Monats.

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

ChangeDateTo
datetime
dateTime
NULL

Ende des Zeitraums (inklusive) auf UpdateDate. NULL bedeutet Ende des aktuellen Tages. Der Zeitraum darf 31 Tage nicht überschreiten.

Beispiel: 2024-05-31T23:59:59

Offset
int 0

Anzahl zu überspringender Zeilen; zurückgegeben werden Zeilen mit RowNumber größer als dieser Wert.

Beispiel: 0

RowCount
int 1000

Maximale Anzahl zurückgegebener Zeilen.

Beispiel: 1000

Antwort

Result-Set 1 · Wenn der Zeitraum zwischen ChangeDateFrom und ChangeDateTo 31 Tage überschreitet

Fehler-Statuszeile; es werden keine Daten geliefert.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer Error.

Message varchar(34)
string

Fehlertext.

Result-Set 2 · Wenn der Zeitraum höchstens 31 Tage umfasst

Eine Zeile pro Umlagerung (Paar aus Aus- und Einlagerung), seitenweise nach Offset und RowCount, sortiert nach RowNumber.

Spalte Typ Beschreibung
RowNumber bigint
long

Laufende Nummer der Zeile im gefilterten Ergebnis, für Paging.

ItemKey int

Interner Schlüssel des Artikels.

UpdateDate
Kann leer sein
datetime
dateTime

Zeitstempel des Auslagerungs-Logeintrags.

EANUPC
Kann leer sein
string

EAN/UPC des Artikels.

ItemName
Kann leer sein
string

Name des Artikels.

FromLocation
Kann leer sein
string

Lager-ID des Auslagerungseintrags (Quelllager).

ToLocation
Kann leer sein
string

Lager-ID des zugeordneten Einlagerungseintrags (Ziellager).

Qty
Kann leer sein
int

Umgelagerte Menge (Menge des Auslagerungseintrags multipliziert mit -1).

Fehlermeldungen

Status Meldung Ursache
Error Time period is limited to 31 days. Die Differenz zwischen `ChangeDateFrom` und `ChangeDateTo` (bzw. deren Standardwerten) beträgt mehr als 31 Tage. Die Abfrage in Zeiträume von höchstens 31 Tagen aufteilen.

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:pixiGetRelocations>
      <!-- <FromLocation>001</FromLocation> -->
      <!-- <ToLocation>002</ToLocation> -->
      <!-- <ChangeDateFrom>2024-05-01T00:00:00</ChangeDateFrom> -->
      <!-- <ChangeDateTo>2024-05-31T23:59:59</ChangeDateTo> -->
      <!-- <Offset>0</Offset> -->
      <!-- <RowCount>1000</RowCount> -->
    </ns1:pixiGetRelocations>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

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