Postman-Collection
Invoices Lesen

pixiGetInvoiceLinesPrinted

Liefert die Positionen einer Rechnung druckfertig aufbereitet, gruppiert pro Auftragsposition, mit optionaler Bundle-Zusammenfassung und Ersatzzeile für Rechnungen ohne Positionen.

Der Aufruf übergibt InvoiceNr an die interne Prozedur GOS_PrintInvLine und liefert deren einziges Resultset.

Ablauf:

  1. Die Rechnung wird über InvoiceNr in Invoices (verknüpft mit pixi.Currency) gesucht. Gelesen werden Schlüssel, Pickliste (PLHref), Gutschriftsbezug (RefToInvoiceKey) und DiscountTotal.
  2. Alle Rechnungspositionen (Invlines) der Rechnung werden mit Auftragspositionen, Artikeln, Ursprungsland und dem Artikelcode vom Typ 3 (InternalItemNumber) verknüpft. Gruppiert wird nach der übergeordneten Auftragsposition (OriginalOrderlineRef bzw. die Position selbst, wenn sie nicht geteilt wurde) sowie nach Preis, MwSt., Rabatt, Seriennummer, Charge, MHD und weiteren Attributen. Mengen und Beträge werden je Gruppe summiert.
  3. Pro Position werden der erste Lagerplatzname und die Anzahl der Picklistenpositionen aus der Pickliste der Rechnung ermittelt (BinName, QtyFromBin).
  4. Bundles: Ist die Einstellung CombineBundles = 1 und die Rechnung keine Gutschrift (RefToInvoiceKey ist NULL), werden alle Komponentenpositionen eines Bundles zu einer Zeile mit den Daten der Bundle-Auftragsposition (BundleOrderlines) und des Bundle-Artikels zusammengefasst. Die Bundle-Anzahl ergibt sich aus Komponentenmenge geteilt durch Menge pro Bundle aus BundleItemsHistDetail (oder der Menge der Bundle-Auftragsposition, falls keine Historie existiert). Andernfalls wird jede Komponentenposition einzeln geliefert.
  5. Ergibt sich keine Position (Rechnung ohne Positionen), wird eine Ersatzzeile aus dem Rechnungskopf erzeugt: Text aus TextIfNoInvlines, OrderQty = 1, Preis = Rechnungssumme minus Versandkosten, MwSt.-Kennzeichen und Steuersatz abgeleitet aus den Bemessungsgrundlagen hoch/niedrig. In dieser Zeile enthält OrderNr den Rechnungsschlüssel und OrderNrExternal die Rechnungsnummer.
  6. Sortiert wird nach ArtName. Jede Zeile enthält zusätzlich den Rechnungsrabatt als InvoiceTotalDiscount.

Die Einstellung UseInitialOrderDate steuert OrderDate: 0 liefert das späteste Bestelldatum der gruppierten Auftragspositionen, 1 das früheste.

Hinweise

  • Der Parameter ist als varchar(50) deklariert, die interne Prozedur akzeptiert jedoch nur varchar(25); längere Rechnungsnummern werden stillschweigend abgeschnitten.
  • Existiert die Rechnungsnummer nicht (oder hat die Rechnung keine passende Währung in pixi.Currency), ist das Resultset leer; ein Fehler wird nicht gemeldet.
  • Alle Lesezugriffe verwenden NOLOCK, daher können nicht festgeschriebene Daten geliefert werden.
  • Die Einstellungen CombineBundles und UseInitialOrderDate werden zur Laufzeit über fpixi_GetSetting gelesen; ItemTagList wird von fpixi_GetItemTAGsNamesAsString erzeugt. Beide Funktionen liegen nicht vor.
  • Spalten wie itemprice_ordercurr, ItemAmount_OrderCurr, USDamount und EURamount sind Altlasten (Kommentare markieren sie zur Entfernung); sie enthalten dieselben Werte wie die Spalten in Rechnungswährung.
  • ItemAmount enthält die Betragsdifferenzen der Positionen (InvLineAmountDiff), ItemAmountNoVAT_OrderCurr dagegen nur die Summe der Nettobeträge.

Parameter

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

Rechnungsnummer (Invoices.InvoiceNr) der Rechnung, deren Positionen geliefert werden. Nur die ersten 25 Zeichen werden verwendet.

Beispiel: RE2024-001234

Antwort

Result-Set 1 · Immer; leer, wenn die Rechnungsnummer nicht gefunden wird.

Druckfertige Rechnungspositionen, sortiert nach ArtName. Bei Rechnungen ohne Positionen eine Ersatzzeile aus dem Rechnungskopf.

Spalte Typ Beschreibung
InvLineKey int

Schlüssel der (höchsten) Rechnungsposition der Gruppe; 0 bei der Ersatzzeile.

OrderlineKey int

Schlüssel der ursprünglichen Auftragsposition bzw. der Bundle-Auftragsposition bei zusammengefassten Bundles; 0, wenn nicht vorhanden.

ArtNr
Kann leer sein
varchar(13)
string

Artikelnummer aus der Auftragsposition.

OrderDate
Kann leer sein
dateTime

Bestelldatum (spätestes oder frühestes je nach UseInitialOrderDate); Rechnungsdatum bei der Ersatzzeile.

ArtName
Kann leer sein
varchar(300)
string

Artikelname aus der Auftragsposition, gefolgt vom Sondervermerk in Klammern; auf 300 Zeichen gekürzt.

OrderCurrency
Kann leer sein
string

Währungscode (CodeA) der Rechnung.

ItemText
Kann leer sein
string

Artikeltext der Rechnungsposition plus Sondervermerk in Klammern.

ItemName
Kann leer sein
varchar(300)
string

Artikelname aus dem Artikelstamm.

OrderQty
Kann leer sein
int

Bestellte Menge (Anzahl Bundles bei zusammengefassten Bundles).

ItemQty
Kann leer sein
int

Berechnete Menge (Anzahl Bundles bei zusammengefassten Bundles).

RemainQty
Kann leer sein
int

Bestellte minus berechnete Menge; 0 bei zusammengefassten Bundles.

BundleItemsQty
Kann leer sein
int

Summe der Komponentenmengen bei zusammengefassten Bundles; sonst 0.

ItemPrice
Kann leer sein
decimal

Brutto-Einzelpreis.

ShipCost
Kann leer sein
decimal

Versandkosten der Position.

ItemVAT
Kann leer sein
varchar(1)
string

MwSt.-Kennzeichen: H hoch, L niedrig, N keine.

ItemNr
Kann leer sein
string

Artikelnummer der Rechnungsposition; EAN des Bundle-Artikels bei zusammengefassten Bundles.

itemprice_ordercurr
Kann leer sein
decimal

Veraltetes Duplikat von ItemPrice.

OrderLineRef
Kann leer sein
int

Von der Rechnungsposition referenzierte Auftragsposition; NULL bei zusammengefassten Bundles, 0 bei der Ersatzzeile.

ItemAmount
Kann leer sein
decimal

Brutto-Positionsbetrag inklusive Betragsdifferenzen.

ItemAmountNoVat
Kann leer sein
decimal

Netto-Positionsbetrag inklusive Netto-Betragsdifferenzen.

ItemAmount_OrderCurr
Kann leer sein
decimal

Gleicher Wert wie ItemAmount.

USDamount
Kann leer sein
money
decimal

Veraltet: Summe der Brutto-Positionsbeträge ohne Differenzen.

EURamount
Kann leer sein
money
decimal

Veraltet: wie USDamount; NULL bei der Ersatzzeile.

OrderNr
Kann leer sein
string

Auftragsnummer; Rechnungsschlüssel bei der Ersatzzeile.

OrderNrExternal
Kann leer sein
string

Externe Auftragsnummer; Rechnungsnummer bei der Ersatzzeile.

Status
Kann leer sein
string

Status der Auftragsposition.

ItemPriceNoVAT
Kann leer sein
decimal

Netto-Einzelpreis.

FullPrice_Net
Kann leer sein
decimal

Netto-Vollpreis vor Rabatt.

FullPrice
Kann leer sein
decimal

Brutto-Vollpreis vor Rabatt.

ItemPriceNoVAT_OrderCurr
Kann leer sein
decimal

Gleicher Wert wie ItemPriceNoVAT.

ItemAmountNoVAT_OrderCurr
Kann leer sein
decimal

Summe der Netto-Positionsbeträge (bei normalen Positionen ohne Differenzen).

ConfigType
Kann leer sein
string

Zeichen 3–4 des Konfigurationstyps des Artikels.

GIN
Kann leer sein
string

Interne Artikelnummer (ItemNrInt).

ItemNrInt
Kann leer sein
string

Interne Artikelnummer.

ItemNrSuppl
Kann leer sein
string

Lieferanten-Artikelnummer.

BinName
Kann leer sein
varchar(50)
string

Erster Lagerplatz aus der Pickliste der Rechnung für diese Auftragsposition; NULL bei zusammengefassten Bundles.

QtyFromBin
Kann leer sein
int

Anzahl Picklistenpositionen für diese Auftragsposition in der Pickliste der Rechnung; NULL bei zusammengefassten Bundles.

BundledItemsInOrder int

Anzahl zusammengefasster Komponentenpositionen bei Bundles; sonst 1.

BundleItemRef
Kann leer sein
int

Artikelschlüssel des Bundle-Artikels bei zusammengefassten Bundles; sonst NULL.

oItemSpecialNote string

Sondervermerk der Auftragsposition; Leerstring, wenn keiner vorhanden.

EanUpc
Kann leer sein
string

EAN/UPC des Artikels.

SerialNr
Kann leer sein
string

Seriennummer der Rechnungsposition.

DiscountValue
Kann leer sein
decimal

Rabattwert der Position; Rechnungsrabatt bei der Ersatzzeile.

DiscountPerc
Kann leer sein
decimal

Rabatt in Prozent der Position.

MeasuredWeight
Kann leer sein
decimal

Gemessenes Gewicht der Auftragsposition (bei zusammengefassten Bundles summiert).

PriceWeightUnits_Price
Kann leer sein
decimal

Preis pro Gewichtseinheit (Durchschnitt bei zusammengefassten Bundles).

DF_Type string

Direct-Fulfillment-Typ der Auftragsposition; 0, wenn nicht gesetzt.

CustomsTariffNumber
Kann leer sein
string

Zolltarifnummer des Artikels.

CustomsCountryOfOrigin
Kann leer sein
string

Ursprungsland des Artikels.

CntCodeISO2
Kann leer sein
string

ISO-2-Code des Ursprungslands.

CntCodeISO3
Kann leer sein
string

ISO-3-Code des Ursprungslands.

CustomsTariffText
Kann leer sein
varchar(2048)
string

Zolltariftext des Artikels.

BatchNumber
Kann leer sein
string

Charge der Auftragsposition.

BestBeforeDate
Kann leer sein
dateTime

Mindesthaltbarkeitsdatum der Auftragsposition.

lastSupplierPrice
Kann leer sein
decimal

Lieferantenpreis der Auftragsposition bzw. der Bundle-Auftragsposition.

InvoiceTotalDiscount
Kann leer sein
money
decimal

Gesamtrabatt der Rechnung (Invoices.DiscountTotal), in jeder Zeile gleich.

InternalItemNumber
Kann leer sein
string

Artikelcode vom Codetyp 3 aus pixi.ItemCode; Leerstring, wenn keiner vorhanden.

TaxRate
Kann leer sein
numeric(6,3)
decimal

Steuersatz in Prozent.

TaxAmount
Kann leer sein
decimal

Steuerbetrag der Position.

ItemWeight
Kann leer sein
decimal

Gewicht aus dem Artikelstamm.

PicLinkLarge
Kann leer sein
string

Link zum großen Artikelbild.

PicLinkSmall
Kann leer sein
string

Link zum kleinen Artikelbild.

ItemDescription
Kann leer sein
string

Artikelbeschreibung.

ItemTagList
Kann leer sein
string

Kommagetrennte Liste der Tag-Namen des Artikels.

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:pixiGetInvoiceLinesPrinted>
      <InvoiceNr>RE2024-001234</InvoiceNr>
    </ns1:pixiGetInvoiceLinesPrinted>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Lesen Currency · Lesen Invlines · Lesen Orderlines · Lesen items · Lesen Countries · Lesen ItemCode · Lesen InvBin · Lesen InvBinItem · Lesen PLitem · Lesen BundleOrderlines · Lesen BundleItemsHistDetail · Lesen
SQL-Objekt:
dbo.pipiGetInvoiceLinesPrinted
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben