Nachkommastellen für Währungen
Diese Funktion ist nur für SAP R3/ECC, nicht für S4/HANA gedacht! In S4/HANA sind die Währungen anderweitig konfiguriert bzw. konfigurierbar - dort erfolgt z.B. die Währungsumrechnung über einen Exit bei der Anzeige.
Alle Konfigurationsdateien welche die Nachkommastellen für Währungen steuern, haben das Präfix currency-decimals-, z.B. currency-decimals-debug.json oder currency-decimals-prod.json.
Typischerweise gibt es zwei Konfigurationsdateien:
currency-decimals-prod.json: Für die Produktiv Umgebung vorgesehencurrency-decimals-debug.json: Zum testen und debuggen vorgesehen
Zweck der Konfiguration
Diese Konfiguration dient dazu, Beträge korrekt für SAP aufzubereiten, bevor sie übermittelt werden. Je nach Währung unterscheiden sich die gültigen Nachkommastellen. Ohne diese Anpassung könnten falsche Werte im SAP-System landen.
Damit die Beträge korrekt verarbeitet werden, sollte die Konfiguration inhaltlich der SAP-Tabelle TCURX entsprechen – nur so ist sichergestellt, dass alle Werte im SAP-System fehlerfrei interpretiert werden.
Wenn die Währung nicht in der TCURX-Tabelle enthalten ist, darf diese Währung auf keinen Fall in der Konfigurationsdatei für den Connector konfiguriert werden, auch wenn die Dezimalstellen abweichen!
Beispiel
Die Währung JPY (japanischer Yen) erlaubt keine Nachkommastellen. Wenn diese Währung in der TCURX-Tabelle mit 0 Nachkommastellen konfiguriert ist, trägt SAP bei einer manuellen Buchung den Wert einfach um 2 Nachkommastellen verschoben ein. Dies liegt höchstwahrscheinlich daran, dass die internen Variablen in SAP R3/ECC auf 2 Nachkommastellen festgelegt sind.
- Betrag der Rechnung ist
132 JPY - Nutzer gibt in SAP ein:
132 JPY - SAP speichert im Hintergrund:
1,32 JPYJPY
Dieses Verhalten müssen wir über die Schnittstelle nachbauen, da es keine andere Möglichkeit in SAP R3/ECC gibt.
- In den Kopfdaten ist die Belegwährung JPY und der Rechnungsbetrag
132 JPY - In der
currency-decimals-*.jsonist JPY wie auch in der SAPTCURX-Tabelle mit 0 Nachkommastellen definiert - Der Connector übergibt entsprechend
1,32 JPYJPY an SAP
Die Konfigurationsdatei steuert daher, wie viele Dezimalstellen für jede Währung erlaubt sind. Bei der Verarbeitung wird anhand dieser Datei geprüft, wie ein Betrag verschoben werden soll.
Vor der Buchung wird die Währung geprüft - dann erfolgt das Verschieben der Nachkommastellen anhand der Konfigration oder dem Standardwert (2 Nachkommastellen -> es passiert nichts).
Es ist noch zu testen, wie sich das Verhalten ändert, wenn Belegwährung und Hauswährung unterschiedlich sind.
Dabei gilt:
- Beträge, die SAP in der Hauswährung erwartet, werden auf Grundlage der in der Datenbank hinterlegten Hauswährung verarbeitet. Dabei wird in der Konfigurationsdatei nach dem entsprechenden Währungscode gesucht, und die definierte Nachkommastellenanzahl (
decimals) für das Runden verwendet. - Ebenso werden Beträge, die SAP in der Belegwährung erwartet, anhand der in der Datenbank hinterlegten Belegwährung verarbeitet. Auch hier erfolgt die Rundung gemäß der in der Konfiguration hinterlegten
decimals-Angabe für diese Währung.
Aufbau einer Konfigurationsdatei
[
{
"currency": "JPY",
"decimals": 0
},
{
"currency": "KWD",
"decimals": 3
}
]
Eigenschaft
| Name | Typ | Beschreibung |
|---|---|---|
currency | String | Währungscode (z. B. „EUR“, „USD“, „JPY“), der mit den in der Datenbank hinterlegten Währungsspalten übereinstimmen muss. Gibt die betroffene Währung an, in der Regel ein ISO-4217-Währungscode. |
decimals | Integer | Die Anzahl der Nachkommastellen, die für die jeweilige Währung verwendet werden sollen. |