Postman-Collection
Suppliers Lesen

pixiGetHistoricalSupplierPriceMatching

Liefert FIFO-zugeordnete Lieferanten-Einkaufspreise und Verkaufspreise für Lagerbewegungen eines oder aller Artikel in einem Zeitraum von bis zu 31 Tagen.

Liefert die historische FIFO-Zuordnung zwischen Lagerzugängen (mit Lieferantenpreis) und Lagerabgängen (mit Verkaufspreis) auf Basis des Lagerplatz-Artikelprotokolls.

Parameterprüfung

  • DateFrom und DateTo müssen beide übergeben werden, obwohl sie mit dem Standardwert NULL deklariert sind.
  • Beide Werte werden auf den Datumsanteil reduziert. Das Ende des Zeitraums ist DateTo + 1 Tag.
  • Der Zeitraum von DateFrom bis DateTo + 1 Tag darf 31 Tage nicht überschreiten.
  • DateTo darf höchstens der gestrige Tag sein; Daten für den aktuellen Tag können nicht abgefragt werden.

Auswahl

  • Wird ItemKey übergeben, wird nur dieser Artikel geliefert, andernfalls alle Artikel.
  • Ein Zugang wird berücksichtigt, wenn sein Erstelldatum oder das Änderungsdatum seines Lieferantenpreis-Datensatzes zwischen DateFrom und DateTo + 1 Tag liegt (beide Grenzen inklusive, Vergleich als Datum um Mitternacht).
  • Zugänge werden auf zwei Arten mit Abgängen verknüpft, die Ergebnisse beider Wege werden zusammengeführt:
    1. Abgänge, die direkt auf den Zugangsdatensatz verweisen,
    2. Abgänge, die über Artikel und FIFO-Zeilennummer zum Zugang passen.
  • Für jede Zuordnung werden Lieferantenpreis, Verkaufspreis, die Herkunftsbeschreibungen beider Preise, die Lieferung (eigene oder zugewiesene Lieferung) und die Verkaufsbelegzeile (Rechnungsposition oder POS-Position) ermittelt.

Ausgabe

  • Wurden keine Zeilen gefunden, wird eine einzelne Zeile mit Staus = Warning geliefert.
  • Andernfalls werden die Datenzeilen sortiert nach InvBinItemLogId geliefert. Die Lieferscheinnummer des Lieferanten stammt aus der Lieferantenlieferung; Datum und Nummer des Verkaufsbelegs stammen aus der Rechnung oder, falls keine vorhanden ist, aus dem POS-Beleg.
  • Jeder Fehler, auch die Prüfungsfehler, wird als Zeile mit Staus = Error und dem Fehlertext in Message geliefert.

Hinweise

  • Die Statusspalte heißt Staus (nicht Status), sowohl in der Warnungs- als auch in der Fehlerzeile.
  • Fehler werden nie als SqlMessage geliefert; die RAISERROR-Aufrufe werden abgefangen und als normale Zeile zurückgegeben. Anhand des ersten Spaltennamens lassen sich Daten- und Statuszeilen unterscheiden.
  • Die Obergrenze gilt inklusive Mitternacht von DateTo + 1 Tag, daher werden auch Datensätze mit Zeitpunkt genau 00:00 am Folgetag berücksichtigt.
  • Liegt DateFrom nach DateTo, tritt kein Prüfungsfehler auf; es wird lediglich die Warning-Zeile geliefert.
  • Ein Paar aus Zugang und Abgang kann doppelt erscheinen, wenn es über beide Verknüpfungswege (direkter Verweis sowie Artikel + Zeilennummer) passt; es erfolgt keine Duplikatbereinigung.
  • Alle Tabellen werden mit NOLOCK gelesen, daher können nicht festgeschriebene Daten geliefert werden.
  • Die temporäre Tabelle wird über util.TempTableDrop gelöscht, dessen Definition nicht beigefügt ist.

Parameter

Parameter Typ Standardwert Beschreibung
ItemKey
int NULL

Schlüssel des Artikels, auf den das Ergebnis beschränkt wird. NULL liefert Daten für alle Artikel.

Beispiel: 4711

DateFrom
datetime
dateTime
NULL

Beginn des Zeitraums (nur Datumsanteil). Faktisch Pflicht: Fehlt der Wert, wird eine Fehlerzeile geliefert.

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

DateTo
datetime
dateTime
NULL

Ende des Zeitraums (nur Datumsanteil, inklusive). Darf höchstens der gestrige Tag sein, und der Zeitraum von DateFrom bis DateTo + 1 Tag darf 31 Tage nicht überschreiten. Faktisch Pflicht.

Beispiel: 2024-03-30T00:00:00

Antwort

Result-Set 1 · Wenn passende Datensätze gefunden wurden

FIFO-Zuordnungen von Lagerzugängen und -abgängen mit Lieferanten- und Verkaufspreisen, sortiert nach InvBinItemLogId.

Spalte Typ Beschreibung
InvBinItemLogId int

Schlüssel des Protokolleintrags für den Lagerzugang.

ItemID int

Schlüssel des Artikels.

DatePutToStock
Kann leer sein
dateTime

Datum der Einlagerung (Aktualisierungsdatum des Protokolleintrags).

Quantity
Kann leer sein
int

Menge des diesem Zugang zugeordneten Abgangs.

SupplierPrice
Kann leer sein
decimal

Lieferanten-Einkaufspreis des Zugangs.

SupplierId
Kann leer sein
int

Schlüssel des Lieferanten.

RefTypeSupplierPrice
Kann leer sein
string

Beschreibung der Quelle, aus der der Lieferantenpreis ermittelt wurde.

RefDocumentNumberSupplierPrice
Kann leer sein
string

Lieferscheinnummer der Lieferantenlieferung (SDelHNr); NULL, wenn keine Lieferung verknüpft ist.

SellDocumentDate
Kann leer sein
dateTime

Datum der Rechnung oder, falls keine vorhanden, Erstelldatum des POS-Belegs.

SellingPrice
Kann leer sein
decimal

Verkaufspreis des Abgangs.

RefTypeSellingPrice
Kann leer sein
string

Beschreibung der Quelle, aus der der Verkaufspreis ermittelt wurde.

RefDocumentNumberSellingPrice
Kann leer sein
string

Rechnungsnummer oder, falls keine vorhanden, POS-Belegnummer.

Result-Set 2 · Wenn keine passenden Datensätze gefunden wurden

Einzelne Warnungszeile.

Spalte Typ Beschreibung
Staus varchar(7)
string

Immer Warning.

Message nvarchar(46)
string

Warnungstext.

Result-Set 3 · Bei Prüfungsfehler oder sonstigem Fehler

Einzelne Fehlerzeile mit der Fehlermeldung.

Spalte Typ Beschreibung
Staus varchar(5)
string

Immer Error.

Message
Kann leer sein
nvarchar(4000)
string

Fehlermeldung.

Fehlermeldungen

Status Meldung Ursache
Error Paramters @DateFrom and @DateTo are mandatory. `DateFrom` oder `DateTo` wurde nicht übergeben oder ist NULL. Beide Datumswerte immer übergeben.
Error Maximum date range peroid is limited to 31 days. Der Zeitraum von `DateFrom` bis `DateTo` + 1 Tag überschreitet 31 Tage. Die Abfrage in kleinere Zeiträume aufteilen.
Error It is not possible to get data for current day. Max value for paramter @DateTo is: "current date -1". `DateTo` ist heute oder in der Zukunft. Höchstens das gestrige Datum verwenden.
Warning No records found based on specified paramters. Für Artikel und Zeitraum existieren keine passenden Zugangs-/Abgangsdatensätze.
Error {ERROR_MESSAGE()} Sonstiger SQL-Fehler während der Ausführung; der ursprüngliche SQL-Server-Fehlertext wird geliefert.

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:pixiGetHistoricalSupplierPriceMatching>
      <!-- <ItemKey>4711</ItemKey> -->
      <!-- <DateFrom>2024-03-01T00:00:00</DateFrom> -->
      <!-- <DateTo>2024-03-30T00:00:00</DateTo> -->
    </ns1:pixiGetHistoricalSupplierPriceMatching>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

InvBinItemLog_In · Lesen InvBinItemLog · Lesen InvBinItemLog_In_Price · Lesen InvBinItemLog_QuerySource · Lesen InvBinItemLog_Out · Lesen InvBinItemLog_Out_Price · Lesen SDelHeader · Lesen Invlines · Lesen Invoices · Lesen POSitem2 · Lesen POSheader2 · Lesen
SQL-Objekt:
dbo.pipiGetHistoricalSupplierPriceMatching
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben