Postman-Collection
Payments Schreiben

pixiGetPosJournal

Liefert das POS-Kassenbuch (Kassenereignisse mit Beträgen, Rechnungen und laufendem Kassenstand) für Zeitraum, Lager und Kasse.

Liefert das Kassenbuch des Pixi-POS-Moduls. Die Arbeit übernimmt die interne Prozedur CR_POS_Kassenbuch. Ihre Zeilen werden zwischengespeichert und mit einer reduzierten Spaltenauswahl zurückgegeben.

Ablauf:

  1. Der gemeinsame API-Rahmen prüft die Aufrufhäufigkeit. Ist der für diese Funktion konfigurierte Mindestabstand noch nicht verstrichen, wird nur eine Statuszeile mit ResultCode 502 geliefert, und es werden keine Kassenbuchdaten gelesen.
  2. Standardwerte werden gesetzt:
    • FromDate und ToDate sind standardmäßig das heutige Datum.
    • FromDate wird unverändert inklusive Uhrzeit verwendet.
    • ToDate wird auf das Tagesende erweitert.
  3. POS-Sitzungsereignisse im Zeitraum werden ausgewählt. Ereignisse vom Typ I werden ausgeschlossen.
    • LocID schränkt auf ein Lager ein. NULL oder leer bedeutet alle Lager.
    • RegisterID schränkt auf eine Kasse ein. '' oder NULL bedeutet alle Kassen.
  4. Jedes Ereignis wird, falls vorhanden, mit dem POS-Rechnungskopf und mit einer Beschreibung des Ereignistyps verknüpft:
    • S = POS Start
    • E = POS Stop
    • P = Invoice
    • D = Drawer Open
  5. RegisterValue ist die laufende Summe von AmountIn - AmountOut über alle ausgewählten Ereignisse mit einer EventTime bis einschließlich der aktuellen.
  6. EventComment kombiniert Ereigniskommentar und Rechnungskommentar, getrennt durch einen Zeilenumbruch.

Die interne Prozedur sortiert nach EventTime.

Hinweise

  • Aufrufstatistik: Der API-Rahmen schreibt den Aufrufzeitpunkt in API_STATISTICS. Das ist der einzige Schreibzugriff.
  • Lesezugriffe: Alle Lesezugriffe auf Kassenbuchdaten erfolgen mit NOLOCK, daher können nicht festgeschriebene Daten erscheinen.
  • Sortierung: Das abschließende SELECT liest aus einer Tabellenvariable ohne eigenes ORDER BY. Die Sortierung nach EventTime ist daher nicht streng garantiert.
  • Laufende Summe: RegisterValue wird über alle ausgewählten Ereignisse berechnet, nicht je Kasse oder je Lager. Bei gleichzeitiger Abfrage mehrerer Kassen oder Lager werden diese vermischt. Der Wert beginnt außerdem bei 0 ab FromDate; ein Anfangsbestand vor dem Zeitraum wird nicht berücksichtigt.
  • Ende des Zeitraums: ToDate wird mit CAST(... AS INTEGER) umgewandelt. Bei datetime wird dabei auf den nächsten Tag gerundet, sodass ein ToDate mit Uhrzeit ab 12:00 den Zeitraum bis zum Ende des Folgetags erweitert. ToDate sollte ohne Uhrzeit übergeben werden.
  • MwSt-Sätze: Ereignisse werden per Inner Join mit den MwSt-Sätzen aus fPixi_GetVATRate (nicht beigefügt) verknüpft. Liefert diese Funktion für ein Lager keinen Satz, fehlen die Ereignisse dieses Lagers im Ergebnis.
  • Immer leer: CreatedBy und UpdatedBy sind immer NULL.
  • Unbekannte Typen: EventDescription ist NULL für andere Ereignistypen als S, E, P und D.

Parameter

Parameter Typ Standardwert Beschreibung
FromDate
datetime
dateTime
NULL

Beginn des Zeitraums (inklusive, Uhrzeit wird berücksichtigt). NULL bedeutet heute 00:00.

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

ToDate
datetime
dateTime
NULL

Ende des Zeitraums. Es wird auf das Tagesende erweitert; Uhrzeiten ab 12:00 runden auf den Folgetag. NULL bedeutet heute.

Beispiel: 2024-05-31T00:00:00

LocID
varchar(3)
string
NULL

Lager der POS-Sitzung. NULL oder leer liefert alle Lager.

Beispiel: 001

RegisterID
varchar(30)
string
–

Kassen-ID. Leer oder NULL liefert alle Kassen.

Beispiel: KASSE01

ResultCode
OUTPUT
char(3)
string
NULL

Ergebniscode des API-Rahmens.

Erlaubte Werte

  • 200 – OK, Kassenbuchdaten werden geliefert.
  • 502 – Aufrufhäufigkeit überschritten, keine Daten geliefert.

Beispiel: 200

ResultText
OUTPUT
varchar(1024)
string
NULL

Ergebnistext: OK oder die Meldung zur Aufrufhäufigkeit.

Beispiel: OK

Antwort

Result-Set 1 · Wenn die Prüfung der Aufrufhäufigkeit bestanden ist (ResultCode = 200)

Eine Zeile je POS-Sitzungsereignis im Zeitraum, außer Ereignissen vom Typ I.

Spalte Typ Beschreibung
EventTime
Kann leer sein
datetime
dateTime

Zeitpunkt des Ereignisses.

RegisterID
Kann leer sein
varchar(30)
string

Kasse der Sitzung.

CreatedBy
Kann leer sein
varchar(50)
string

Immer NULL.

UpdatedBy
Kann leer sein
varchar(50)
string

Immer NULL.

EventType
Kann leer sein
char(1)
string

Ereignistyp: S Start, E Stopp, P Rechnung, D Schublade geöffnet oder ein anderer Code.

EventDescription
Kann leer sein
varchar(100)
string

Englische Bezeichnung des Ereignistyps (POS Start, POS Stop, Invoice, Drawer Open); NULL bei anderen Typen.

InvoiceNr
Kann leer sein
varchar(20)
string

Belegnummer der verknüpften POS-Rechnung.

InvoiceAmount
Kann leer sein
money
decimal

Gesamtbetrag der verknüpften POS-Rechnung.

EventComment
Kann leer sein
varchar(max)
string

Ereignis- und Rechnungskommentar, bei beiden durch Zeilenumbruch getrennt.

AmountOut
Kann leer sein
money
decimal

Aus der Kasse entnommener Betrag.

VatHigh
Kann leer sein
money
decimal

MwSt-Betrag zum Normalsatz der Rechnung.

VatLow
Kann leer sein
money
decimal

MwSt-Betrag zum ermäßigten Satz der Rechnung.

AmountIn
Kann leer sein
money
decimal

In die Kasse eingezahlter Betrag.

RegisterValue
Kann leer sein
money
decimal

Laufende Summe von AmountIn - AmountOut über alle ausgewählten Ereignisse bis zu diesem Zeitpunkt.

Result-Set 2 · Wenn die Aufrufhäufigkeit überschritten ist (ResultCode = 502)

Statuszeile des API-Rahmens; es folgen keine Kassenbuchdaten.

Spalte Typ Beschreibung
ResultCode char(3)
string

Immer 502.

ResultText varchar(1024)
string

Meldung 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 Der Aufruf erfolgte vor Ablauf des in `API_CONTROL` für diese Funktion konfigurierten Mindestabstands. Die angegebene Zeit 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:pixiGetPosJournal>
      <!-- <FromDate>2024-05-01T00:00:00</FromDate> -->
      <!-- <ToDate>2024-05-31T00:00:00</ToDate> -->
      <!-- <LocID>001</LocID> -->
      <!-- <RegisterID>KASSE01</RegisterID> -->
      <!-- <ResultCode>200</ResultCode> -->
      <!-- <ResultText>OK</ResultText> -->
    </ns1:pixiGetPosJournal>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

POSSession_event · Lesen POSSession · Lesen POSheader2 · Lesen API_STATISTICS · Schreiben API_CONTROL · Lesen
SQL-Objekt:
dbo.pipiGetPosJournal
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben