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.
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 | 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 | 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 Anwendung „Customizing“ 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.