Postman-Collection
Invoices Lesen

pixiGetPosInvoiceLines

Liefert die Positionen einer POS-Rechnung (Kassenbeleg) mit Artikelnummer, EAN, Bezeichnung, Menge, Preisen und Rabatt zu einer Belegnummer.

Liefert alle Positionen des POS-Belegs, dessen Belegnummer (POSheader2.PHdocNr) mit InvoiceNr übereinstimmt.

  1. Zuerst wird die gemeinsame API-Hülle Pixi_ApiEnvelope ausgeführt. Sie prüft die Aufrufhäufigkeit dieser Funktion und protokolliert den Zeitpunkt des Aufrufs.
  2. Liefert die Hülle den Ergebniscode 200, werden die POS-Positionen (POSitem2) des passenden POS-Kopfs (POSheader2) gelesen. Jede Position wird per Inner Join mit ihrem Artikel (items) verknüpft.
  3. Jede Zeile enthält die interne Artikelnummer, die EAN, die Artikelbezeichnung, die Menge, Belegdatum und Belegnummer sowie die Preisfelder der Position. Ein fehlender Rabatt wird als 0.0 geliefert.

Die Belegnummer wird exakt verglichen. Der Code legt keine Sortierung fest, die Reihenfolge der Positionen ist daher nicht garantiert. Gibt es keinen passenden POS-Beleg, wird eine leere Ergebnismenge geliefert.

Hinweise

  • Alle Lesezugriffe verwenden NOLOCK. Es können nicht festgeschriebene Daten geliefert werden.
  • Positionen, deren Artikel in items nicht mehr existiert, werden nicht geliefert, da der Artikel per Inner Join verknüpft wird.
  • ItemPrice_Netto wird als PIendPrice - PIvatInPrice berechnet, also als Positionsendpreis abzüglich der darin enthaltenen MwSt.
  • ItemPrice_Brutto stammt direkt aus PIprice. Aus dem Code geht nicht hervor, ob es sich um einen Einzel- oder Positionspreis handelt.
  • Pixi_ApiEnvelope schreibt den Aufrufzeitpunkt in API_STATISTICS. Ist in API_CONTROL ein Mindestabstand konfiguriert und liegt der letzte Aufruf zu kurz zurück, liefert die Hülle statt der Rechnungspositionen eine Zeile mit ResultCode/ResultText und dem Code 502.
  • Die Ausgabeparameter ResultCode und ResultText enthalten das Ergebnis der Hülle (200/OK bei Erfolg).

Parameter

Parameter Typ Standardwert Beschreibung
InvoiceNr
Pflicht
varchar(20)
string
–

Belegnummer der POS-Rechnung (POSheader2.PHdocNr). Exakter Vergleich.

Beispiel: POS-100023

ResultCode
OUTPUT
char(3)
string
NULL

Ergebniscode der API-Hülle: 200 bei Erfolg, 502 bei Überschreitung der Aufrufhäufigkeit.

Erlaubte Werte

  • 200 – OK, die Rechnungspositionen werden geliefert.
  • 502 – Aufrufhäufigkeit überschritten, es werden keine Rechnungspositionen geliefert.

Beispiel: 200

ResultText
OUTPUT
varchar(1024)
string
NULL

Ergebnistext der API-Hülle, z. B. OK oder die Meldung zur Aufrufbegrenzung.

Beispiel: OK

Antwort

Result-Set 1 · Wenn die API-Hülle 200 liefert (Aufruf nicht begrenzt)

Eine Zeile je Position des POS-Belegs mit der angegebenen Nummer.

Spalte Typ Beschreibung
ItemNrInt
Kann leer sein
string

Interne Artikelnummer (items.ItemNrInt).

ItemEan
Kann leer sein
string

EAN/UPC des Artikels (items.EANUPC).

ItemName
Kann leer sein
string

Artikelbezeichnung (items.ItemName).

ItemQty
Kann leer sein
decimal

Menge der Position (POSitem2.PIqty).

InvDate
Kann leer sein
dateTime

Datum des POS-Belegs (POSheader2.PHdate).

InvoiceNr
Kann leer sein
string

Belegnummer der POS-Rechnung (POSheader2.PHdocNr).

ItemPrice_Brutto
Kann leer sein
decimal

Bruttopreis der Position (POSitem2.PIprice).

ItemPrice_Netto
Kann leer sein
decimal

Nettobetrag, berechnet als PIendPrice - PIvatInPrice.

Discount decimal

Rabatt der Position (POSitem2.PIdiscount); 0.0, wenn nicht gesetzt.

ItemPrice_Total
Kann leer sein
decimal

Endpreis der Position inkl. MwSt. (POSitem2.PIendPrice).

Result-Set 2 · Wenn die Aufrufhäufigkeit aus API_CONTROL überschritten ist (von Pixi_ApiEnvelope statt der Positionen geliefert)

Statuszeile der API-Hülle.

Spalte Typ Beschreibung
ResultCode char(3)
string

In diesem Fall immer 502.

ResultText varchar(1024)
string

Meldung zur Aufrufbegrenzung mit der verbleibenden Wartezeit in Millisekunden.

Fehlermeldungen

Status Meldung Ursache
502 ({WaitMsec}) Frequency quote exceeded. Next call to this function can be made in ca. {WaitMsec} milliseconds Die Funktion wurde erneut aufgerufen, bevor der Mindestabstand (`MIN_BREATHING_MSEC` in `API_CONTROL`) verstrichen war. Die angegebene Anzahl Millisekunden abwarten und erneut aufrufen.

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:pixiGetPosInvoiceLines>
      <InvoiceNr>POS-100023</InvoiceNr>
      <!-- <ResultCode>200</ResultCode> -->
      <!-- <ResultText>OK</ResultText> -->
    </ns1:pixiGetPosInvoiceLines>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

POSitem2 · Lesen POSheader2 · Lesen items · Lesen
SQL-Objekt:
dbo.pipiGetPosInvoiceLines
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben