Schnittstelle zu einem Kassensystem

1                     Themenübersicht

Mithilfe der Semiramis-Schnittstelle für Kassensysteme können Kassensysteme Anfragen an Semiramis stellen und Kassenbelege zur weiteren Verarbeitung, z. B. Übertragung in das Rechnungswesen, gespeichert werden.

Hinweis:

Die Beschreibung eines Adapters finden Sie in der Supportauslieferung des jeweiligen Adapters.

2                     Funktionsumfang

Die Schnittstelle umfasst folgende Funktion:

  • Artikelabfrage
  • Kundenabfrage
  • Verkäuferabfrage
  • Kassenbeleg aufbereiten
  • Kassenbeleg buchen
  • Firmenanfrage

3                     Schnittstellenbeschreibung

3.1               Adapter-Schnittstelle

Über folgende Klasse wird ein Kassensystem-Adapter zur Verfügung gestellt: com.cisag.app.sales.cashpoint.interfaces.log.
CashPointAdapterFactory

Dafür erzeugt diese Klasse mithilfe von  „java.util.ServiceLoader“ eine Instanz von CashPointAdapterProvider. Diese wiederum erzeugt den Kassensystem-Adapter.

Die Realisierung eines Kassensystem-Adapters umfasst die Implementierung der folgenden Schnittstellen:

com.cisag.app.sales.cashpoint.interfaces.spi.
CashPointAdapterProvider

com.cisag.app.sales.cashpoint.interfaces.spi.CashPointAdapter

 

3.2               Semiramis-Schnittstelle

Im Customizing legen Sie durch die Aktivierung der Funktion „Kassensystem„ fest, für welche Vertriebsorganisationen ein Kassensystem an Semiramis angebunden werden soll. Für weiterführende Informationen zu den Customizing-Einstellungen lesen Sie die Dokumentation „Customizing: Vertrieb

Starten Sie die Hintergrund-Anwendung „Kassensystemanfragen bearbeiten“. Damit werden 2 Verarbeitungsaufträge gestartet.

  • Kassensystemanfragen bearbeiten
  • Ausgangsrechnungserzeugung aus Kassenbelegen

3.2.1          Verarbeitungsauftrag: Kassensystemanfragen bearbeiten

Der Verarbeitungsauftrag „Kassensystemanfragen bearbeiten“ nimmt die Anfragen die an die Semiramis-Schnittstelle gesendet werden entgegen und bearbeitet diese.

3.2.2          Verarbeitungsauftrag: Ausgangsrechnungserzeugung aus Kassenbelegen

Der Verarbeitungsauftrag „Ausgangsrechnungserzeugung aus Kassenbelegen“ erzeugt Ausgangsrechnungen aus erzeugten Bons.

4                     Parameter

Die Parameter werden in Ein- und Ausgabeparameter unterschieden. Eingabeparameter werden von dem Kassensystem an Semiramis übergeben. Es gibt obligatorische und optionale Eingabeparameter. Ausgabeparameter werden aus den Eingabeparametern von Semiramis ermittelt und an die Kasse zurückgegeben. Parameter die nur Ausgabeparameter sind, dürfen beim Aufruf der Semiramis-Schnittstelle nicht gefüllt sein.

In den folgenden Tabellen steht

  • „X“ für einen obligatorischen Parameter,
  • „E“ für einen Eingabeparameter und
  • „A“ für einen Ausgabeparameter

4.1               Allgemein

Bei jeder Anfrage wird ein Parameter-Objekt mitgegeben. Dieses Objekt enthält immer folgende Parameter.

Parameter Datentyp E/A Pflichtfeld Beschreibung
salesOrganization String E X Vertriebsorganisation
time long E Zeitpunkt des Kassenbelegs
cashPoint String E Kassenidentifikation
currency String E X Währung (ISO-Code)
cashier String E Kassierer
language String E X Sprache der Kasse, wird u. a. verwendet um Texte in der richtigen Sprache auszugeben
messages List
<Message>
A Fehlermeldungen
Message.id enum (CashPoint Interface.
MessageId)
A ID der Meldung. An dieser kann der Fehlerbereich identifiziert werden.
Message.
messageText
String A Kurzer allgemeiner Meldungstext
Message.
detailMessages
List
<String>
A Detailierte Meldungstexte. Diese Meldungen entsprechen den Meldungs-Kurztexten der Semiramis-Prüfungen.

4.2               Artikelabfrage

Mit der Artikelabfrage können Artikeldaten abgefragt werden.

Parameter Datentyp E/A Pflichtfeld Beschreibung
item Item E X Artikel
item.ean String E X (EAN oder Nummer) EAN
item.number String E Artikelnummer
item.description String A Artikelbezeichnung
identifier String E Ausprägung
customer Customer E Kunde
Customer.number String E Kundennummer
Customer.
discounts
List
<Discount>
A angewendete Basisrabatte
Discount.
percentValue
BigDecimal A prozentualer Wert des Basisrabatts
Discount.
monetaryValue
BigDecimal A absoluter Wert des Basisrabatts
Discounts.
definitionGuid
String A Referenz auf die Definition des Basisrabatts
customer.

discounts[…].
discountType

String Wird bei der Artikelabfrage nicht verwendet
customer.
maxDiscounts
int E Maximale Anzahl anzuwendender Basisrabatte
warehouse String E Lagerort
priceDefinitionGuid String A Referenz auf die Definition des angewendeten Bruttopreises
grossPriceValue BigDecimal A Wert des angewendeten Bruttopreises
netValue BigDecimal A Nettobetrag
quantity Quantity E Menge
Quantity.amount BigDecimal E Mengenwert
Quantity.
unitOfMeasure
String A Identifikation der Mengeneinheit
taxCode TaxCode A Steuerschlüssel
taxCode.country String A Land des Steuerschlüssels
taxCode.code String A Identifikation des Steuerschlüssels
maxDiscount int E maximale Anzahl anzuwendender Positionsrabatte
detailDiscounts List
<Discount>
A angewendete Positionsrabatte
Discount.
percentValue
BigDecimal E/A prozentualer Wert des Positionsrabatts
Discount.
monetaryValue
BigDecimal E/A absoluter Wert des Positionsrabatts
Discounts.
definitionGuid
String E/A Referenz auf die Definition des Positionsrabatts
selectionList List

<String>

A Definition einer Auswahlliste. Diese Auswahlliste kann bei Uneindeutigkeit

·         Ausprägungen zur übergebenen Artikelnummer

·         Artikel mit Einheiten zur übergebenen EAN

enthalten.

valuesIncludingTax boolean E X Kennzeichen, ob die Preise und Beträge Steuern enthalten

4.3               Kundenabfrage

Mit der Kundenabfrage können Kundendaten anhand der Kundennummer abgefragt werden.

Hinweis:

Für die Personalabfrage der Kasse wird die Kundenabfrage in Semiramis verwendet.

 

Parameter Datentyp E/A Pflichtfeld Beschreibung
customer Customer E X Kundendaten
Customer.
number
String E X Kundennummer
Customer.
discounts
List
<Discount>
A Kundenrabatte (Basisrabatte)
Discount.
percentValue
BigDecimal A prozentualer Wert des Kundenrabatts
Discount.
monetaryValue
BigDecimal Wird bei der Kundenabfrage nicht verwendet
Discount.
definitionGuid
String A Referenz auf die Definition des Kundenrabatts
Customer.
maxDiscounts
int E Anzahl zu ermittelnder Kundenrabatte
name String A Name des Kunden
address List
<String>
A Adresse des Kunden
creditLimit BigDecimal A Kreditlimit des Kunden

4.4               Verkäuferabfrage

Mit der Verkäuferabfrage können Verkäuferdaten anhand der Verkäufernummer abgefragt werden.

Parameter Datentyp E/A Pflichtfeld Beschreibung
number String E X Nummer des Verkäufers
name String A Name des Verkäufers

4.5               Kassenbeleg aufbereiten

Mit dieser Funktion können die Kassenbeleg-Daten vor dem Buchen bearbeitet werden.

4.5.1          Kassenbeleg-Daten

Parameter Datentyp E/A Pflichtfeld Beschreibung
number String E Nummer des Kassenbelegs
details

(Attributliste)

List

<SalesSlipDetail>

E Kassenbelegspositionen
customer Customer E Kundendaten
Customer.
number
String E Kundennummer
Customer.
discounts
List
<Discount>
E Kundenrabatte (Basisrabatte)
Discount.
percentValue
BigDecimal E prozentualer Wert des Kundenrabatts
Discount.
monetaryValue
BigDecimal E absoluter Betrag des Kundenrabatts
Discount.
definitionGuid
String E Referenz auf die Definition des Kundenrabatts
customer.
maxDiscounts
int Wird beim Buchen des Kassenbelegs nicht verwendet
grossValue BigDecimal E Endbetrag des Kassenbelegs mit Steuern
paymentMethod String E Identifikation der Zahlungsart
warehouse String E Identifikation des Lagerorts
taxValues Map <TaxCode, TaxValue> E Steuerbeträge pro Steuerschlüssel
TaxCode.
country
String E Land des Steuerschlüssels
TaxCode.
code
String E Identifikation des Steuerschlüssels
TaxValue.
taxBase
BigDecimal E Steuerbasis-Betrag
TaxValue.
value
BigDecimal E Steuerbetrag
paid boolean E Kennzeichen, ob die Zahlung als bezahlt gilt.
valuesIncludingTax boolean E Kennzeichen, ob die Preise und Beträge der Kassenbelegspositionen und die Rabattwerte des Kassenbelegs Steuern enthalten

4.5.2          Kassenbelegpositions-Daten

Parameter Datentyp E/A Pflichtfeld Beschreibung
SalesSlipDetail.
number
int E Nummer der Kassen
SalesSlipDetail.
itemNumber
String E Artikelnummer
SalesSlipDetail.
priceDefinitionGuid
String E Referenz auf die Definition des angewendeten Bruttopreises, wenn sie nicht angegeben wird, ist die Preisdimension 1 pro Mengeneinheit aus dem Attribut „quantity“
SalesSlipDetail.
grossPriceValue
BigDecimal E Betrag des angewendeten Bruttopreises
SalesSlipDetail.
quantity
Quantity E Menge
Quantity.
amount
BigDecimal E Mengenwert
Quantity.
unitOfMeasure
String E Identifikation der Mengeneinheit
SalesSlipDetail.
taxCode
TaxCode E Steuerschlüssel
TaxCode.
country
String E Land des Steuerschlüssels
TaxCode.code String E Identifikation des Steuerschlüssels
SalesSlipDetail.
identifier
String E Ausprägung
SalesSlipDetail.
discounts
List

<Discount>

E Positionsrabatte
Discount.
percentValue
BigDecimal E prozentualer Wert des Positionsrabatts
Discount.
monetaryValue
BigDecimal E absoluter Wert des Positionsrabatts
Discount.
definitionGuid
String E Referenz auf die Definition des Positionsrabatts
SalesSlipDetail.
taxValue
BigDecimal E Steuerbetrag der Kassenbelegsposition
SalesSlipDetail.
salesPerson
String E Identifikation des Verkäufers

4.6               Kassenbeleg buchen

Beim Buchen wird der Kassenbeleg in Semiramis gespeichert.

Mit dieser Funktion können die Kassenbeleg-Daten vor dem Buchen bearbeitet werden.

4.6.1          Kassenbeleg-Daten

Parameter Datentyp E/A Pflichtfeld Beschreibung
number String E X Nummer des Kassenbelegs
details

(Attributliste)

List

<SalesSlipDetail>

E X Kassenbelegspositionen
customer Customer E X Kundendaten
Customer.
number
String E X Kundennummer
Customer.
discounts
List
<Discount>
E Kundenrabatte (Basisrabatte)
Discount.
percentValue
BigDecimal E prozentualer Wert des Kundenrabatts
Discount.
monetaryValue
BigDecimal E X absoluter Betrag des Kundenrabatts
Discount.
definitionGuid
String E Referenz auf die Definition des Kundenrabatts
customer.
maxDiscounts
int Wird beim Buchen des Kassenbelegs nicht verwendet
grossValue BigDecimal E X Endbetrag des Kassenbelegs mit Steuern
paymentMethod String E Identifikation der Zahlungsart
warehouse String E X Identifikation des Lagerorts
taxValues Map <TaxCode, TaxValue> E Steuerbeträge pro Steuerschlüssel
TaxCode.
country
String E X Land des Steuerschlüssels
TaxCode.
code
String E X Identifikation des Steuerschlüssels
TaxValue.
taxBase
BigDecimal E X Steuerbasis-Betrag
TaxValue.
value
BigDecimal E X Steuerbetrag
paid boolean E X Kennzeichen, ob die Zahlung als bezahlt gilt.
valuesIncludingTax boolean E X Kennzeichen, ob die Preise und Beträge der Kassenbelegspositionen und die Rabattwerte des Kassenbelegs Steuern enthalten

4.6.2          Kassenbelegpositions-Daten

Parameter Datentyp E/A Pflichtfeld Beschreibung
SalesSlipDetail.
number
int E X Nummer der Kassen
SalesSlipDetail.
itemNumber
String E X Artikelnummer
SalesSlipDetail.
priceDefinitionGuid
String E Referenz auf die Definition des angewendeten Bruttopreises, wenn sie nicht angegeben wird, ist die Preisdimension 1 pro Mengeneinheit aus dem Attribut „quantity“
SalesSlipDetail.
grossPriceValue
BigDecimal E X Betrag des angewendeten Bruttopreises
SalesSlipDetail.
quantity
Quantity E X Menge
Quantity.
amount
BigDecimal E X Mengenwert
Quantity.
unitOfMeasure
String E X Identifikation der Mengeneinheit
SalesSlipDetail.
taxCode
TaxCode E X Steuerschlüssel
TaxCode.
country
String E X Land des Steuerschlüssels
TaxCode.code String E X Identifikation des Steuerschlüssels
SalesSlipDetail.
identifier
String E Ausprägung
SalesSlipDetail.
discounts
List

<Discount>

E Positionsrabatte
Discount.
percentValue
BigDecimal E prozentualer Wert des Positionsrabatts
Discount.
monetaryValue
BigDecimal E X absoluter Wert des Positionsrabatts
Discount.
definitionGuid
String E Referenz auf die Definition des Positionsrabatts
SalesSlipDetail.
taxValue
BigDecimal E Steuerbetrag der Kassenbelegsposition
SalesSlipDetail.
salesPerson
String E Identifikation des Verkäufers

4.7               Firmenanfrage

Diese Funktion bietet die Möglichkeit zu einer Vertriebsorganisation die Firma zu ermitteln. Dies ist beispielsweise hilfreich um firmenabhängige Daten zu ermitteln.

Parameter Datentyp E/A Pflichtfeld Beschreibung
financialsOrganization String A Nummer der Firma

5                     Customizing

5.1               Artikelabfrage

Von den Einstellungen in der Anwen­dung „Custo­mizing“ sind die folgenden Einstellungen in der Funktion „Artikel“ der Hauptfunktion „Basis“ für die Artikelabfrage mit einem Kassensystem relevant.

Rubrik: Suchprioritäten für Vertriebs-Artikel

Stellen Sie in dieser Tabelle für die Vertriebsorganisation mit dem Kassensystem ein, welche Identifikationen des Artikels in welcher Reihenfolge berücksichtigt werden sollen.

Czy ten artykuł był pomocny?