Der klassische Weg zur fertigen Kennzahl in SAPDie SAP SE mit Sitz im baden-württembergischen Walldorf ist ein… BW 7.x Systemen ist gut nachvollziehbar und auf wenige Tabellen zurückzuführen.
So wird für Bewegungsdaten anhand der Zuordnung eines InfoObjectsInfoObjects sind betriebswirtschaftliche Auswertungsobjekte, welche sich in Merkmale, Kennzahlen, Einheiten,… zur Währung (in der Regel 0CURRENCY), im Hintergrund aus einer Tabelle in welcher die entsprechende Währung inklusive eines Umrechnungskurses hinterlegt ist, dieser nachgelesen, sowie im Anschluss der Wert berechnet.
Inhaltsverzeichnis
1. Worauf basieren Währungsdarstellungen & Währungsumrechnungen?
2. Formatierung
4. Währungsumrechnung im Detail
5. Fazit
In Zusammenhang mit hybriden Szenarien kommt zu diesem Ablauf eine weitere Komponente hinzu, die HANA-Datenbankverarbeitung. Durch diese muss beim Thema Währungsumrechnungen und -darstellungen, zwischen BW- und HANA-Seite unterschieden werden. Kurz gesagt, die HANA-Datenbank verarbeitet und speichert Währungen nicht zwingend so, wie es bisher im klassischen SAP Business Warehouse der Fall war.
Worauf basieren Währungsdarstellungen & Währungsumrechnungen?
Die Grundlage stellen Tabellen dar, in welchen die jeweiligen Währungsschlüssel inklusive der Stammdaten sowie die Umrechnungskurse hinterlegt sind. Diese Tabellen existieren sowohl auf BW- als auch auf HANA-Seite. Die nachfolgende Liste zeigt alle für Währungsumrechnungen relevanten SAP-Tabellen:
Tabellenname (technisch) | Beschreibung |
---|---|
TCURC | Währungscodes |
TCURF | Umrechnungsfaktoren |
TCURN | Notationen |
TCURS | Kursspannen |
TCURT | Bezeichnung der Währungscode |
TCURV | Kurstypen für Währungsumrechnung |
TCURW | Verwendung der Kurstypen |
TCURX | Dezimalstellen der Währungen |
Nachfolgend einige Beispiele der wichtigsten Tabellendefinitionen sowohl im BW-, als auch im HANA-Kontext:
BW-Tabellen
BW-seitig können die Tabellen über die Standard-Transaktion „SE11“ aufgerufen werden. Die Tabelle „TCURR“ beinhaltet die notwendigen Daten zur Konvertierung von Währungen:
Eine äußerst wichtige Tabelle zur Vermeidung von Darstellungs- bzw. Berechnungsfehlern stellt die „TCURX“ dar. Dieser Tabelle werden im Rahmen von Währungsumrechnungsoperationen die Anzahl der Dezimalstellen entnommen um korrekte Rundungen zu erzielen:
Die Tabelle „TCURF“ liefert die anzuwendenden Faktoren zur Umrechnung von Währungen:
In der Tabelle „TCURT“ werden die Texte zu den einzelnen Währungsschlüsseln vorgehalten:
HANA-Tabellen
Auf der HANA-Datenbank sind die Tabellen unter dem Standard-Schema „SAPHANADB“ zu finden.
Die Tabellen sind exakt so aufgebaut, wie die entsprechenden BW-Tabellen, sodass im Folgenden auf eine erneute Beschreibung verzichtet wird. Ergänzt werden die Auszüge der Tabellendefinitionen um beispielhafte Datenabzüge aus diesen:
Formatierung
Die Formatierung der Werte kann sowohl im internen- als auch im externen Format stattfinden. Intern bedeutet, dass der Wert so dargestellt wird, wie es auch auf Datenbankebene des jeweiligen Systems (beispielsweise ein SAP ERP) der Fall ist. Externe Darstellungen sind in der Regel immer dann präsent, wenn sich die Ausgabe an Anwender richtet (beispielsweise Berichte). Der Unterschied zwischen interner und externer Darstellung liegt in der Anzahl von angewendeten Dezimalstellen. Alle SAP-Währungsdatentypen haben im Normalfall zwei Nachkommastellen. Dies ist in einigen Fällen problematisch, da es zum Beispiel auch Währungen gibt, welche mehr oder auch weniger Nachkommastellen verwenden. Um dieses Problem zu umgehen, wird in der Tabelle TCURX eindeutig definiert, wie viele Dezimalstellen ein Währungstyp hat. Diese Tabelle wird bei Währungsoperationen, neben dem eigentlichen Umrechnungskurs aus der Tabelle TCURR, mit einbezogen.
Bei Datenquellen welche für Anwender bestimmt sind, werden in der Regel die exakten Werte der jeweiligen Währung ausgegeben, welche über das externe Format erzielt wird. Die Umwandlung zwischen internem sowie externem Format geschieht unter Zuhilfenahme des so genannten „Decimal shift“ bzw. „Decimal shift back“. Diese beiden Funktionen führen dazu, dass das Komma entsprechend versetzt wird. Die zugrundeliegenden Operationen sind die folgenden:
Decimal shift:
Ausgangswert * 10 ^ (2 – Anzahl der Dezimalstellen laut TCURX)
Decimal shift back:
Ausgangswert / 10 ^ (2 – Anzahl der Dezimalstellen laut TCURX)
Zur Veranschaulichung der Wirkungsweise wird dies jeweils anhand der Währung Yen (JPY) gezeigt. Diese wird in internen SAP-Tabellen mit zwei Dezimalstellen gespeichert. Dies bedeutet das beispielsweise 1510 Yen intern als 15.10 Yen abgespeichert werden. Das SAP-System kann damit natürlich umgehen und kennt seine eigenen Umrechnungen, für dritte Systeme sollte dies allerdings keineswegs vorausgesetzt werden.
Der „Decimal shift“ führt in diesem Beispiel zu folgender externer Darstellung:
15.10 * 10 ^ (2 – 0) = 1510
Der „Decimal shift back“ hingegen führt zur gegenteiligen bzw. ursprünglichen Darstellung (intern):
1510 / 10 ^ (2-0) = 15.10
Innerhalb eines SAP ERP erfolgen die genannten Operationen im Hintergrund automatisch. Wenn Daten des ERP jedoch als Quelle für andere Systeme dienen, beispielsweise für ein SAP BW/4HANASAP BW/4HANA ist die aktuelle Data Warehouse Lösung basierend auf…, sollte eine Überprüfung der korrekten Umrechnung, insbesondere bei Währungen, welche nicht die SAP standardmäßigen zwei Dezimalstellen verwenden, stattfinden. Je nach Architektur kann es zu fehlerhaften Konvertierungen kommen. Ein Beispiel dafür wäre ein Szenario, in welchem aus einem SAP ERP Datensätze mit Betrags- sowie Währungsinformationen in ein SAP BW/4HANA geladen werden. Hierbei kann es gerade beim Wechsel zwischen BW- und HANA-Objekten zu Problemen kommen, da die Umrechnungen seitens der HANA DB unabhängig von denen des ABAP-Stacks sind und auf eigene TCUR*-Tabellen zurückgreifen.
An einem Beispiel
Das nachfolgende Beispiel soll den „Weg“ einer Kennzahl mit Währung in einem gemischten Modellierungsszenario darstellen. Dieser führt vom Extraktor, über eine Persistenz in einem aDSO, zu einer HANA-View, welche letztlich durch ein Frontend konsumiert werden kann.
Extraktor
Datenvorschau eines Standardextraktors aus einem SAP ERP System (externes Format)
Datenvorschau eines Standardextraktors aus einem SAP ERP System (internes Format)
Advanced Data Store Object
Datenvorschau eines aDSO, welches aus dem Standardextraktor beladen wurde (Währungsumrechnung im ABAP-Stack):
HANA Calculation View (systemgeneriert)
Datenvorschau der generierten HANA-View eines aDSO, welches aus dem Standardextraktor beladen wurde:
Nachlesen der Texte zu Währungsschlüssel:
Währungskonfiguration in den Semantiken einer HANA-View unter Zuhilfenahme einer Währungsspalte:
Währungsumrechnung im Detail
HANA-View
Neben der bereits gezeigten Verwendung von Währungsattributen, können im Rahmen der Modellierung auch individuelle Währungsumrechnungen definiert werden. Hierfür bietet sich in gemischten Modellierungsszenarien die HANA Calculation View an, wohlwissend dass es auch diverse andere Möglichkeiten und Ansatzpunkte zur erfolgreichen Umrechnung von Kennzahlen mit Währung gibt. Für die Lösung per Calculation View spricht unter anderem, dass man so die Performancevorteile einer Verarbeitung direkt auf der HANA DB nutzt.
Nachfolgend wird ein Szenario gezeigt, in welchem eine Umrechnung über eine HANA Calculation View realisiert wird.
So lässt sich in der HANA Entwicklungsumgebung innerhalb der Semantikeinstellungen einer Calculation View, zu jeder Kennzahl eine eigene Währungsumrechnung definieren:
Im ersten Schritt kann eine Anzeigewährung entweder fix, oder anhand einer Spalte festgelegt werden. Daneben kann die Funktion Decimal shift und Decimal shift back, sowie die Rundung ein- bzw. ausgeschaltet werden. Der wesentliche Definitionsteil lässt sich erst bearbeiten, wenn das Häkchen bei „Conversion“ gesetzt ist. Damit wird festgelegt, dass alle Werte der Kennzahl nach dem gleichen Schema umgerechnet werden sollen.
Notwendige Informationen zur individuellen Währungsumrechnung sind
- Währungsschema
- Client für die Währungsumrechnung
- Quellwährung
- Zielwährung
- Währungsumrechnungstyp
- Umrechnungsdatum
- Datentyp
Je nach Auswahl der Quell- / Zielwährung, sowie des Währungsumrechnungstyps, werden unterschiedliche Formeln zur Umrechnung angewandt. Diese Regeln stammen normalerweise direkt aus einem ERP-System, können bei Bedarf jedoch auch im DWH manuell angepasst werden. Je nachdem ob die HANA-View direkt aufgerufen, oder über die BW-Seite weiterverwendet wird, müsste dazu entweder die TCURR Tabelle des ABAP Stacks, oder aber die der HANA DB angepasst werden.
Für dieses Beispiel findet diese Anpassung auf der BW-Seite, genauer in der Transaktion „OB08“ statt. Die folgende Abbildung zeigt dies exemplarisch für Umrechnungen zwischen EUR und USD. Änderungen in dieser Transaktion wirken sich unmittelbar auf Daten aus, ohne dass ein Neustart des BW-Systems oder einzelnen Teilen von diesem notwendig ist.
Eine Anpassung der HANA-Tabelle könnte zum Beispiel über SQL-Befehle realisiert werden.
Nachfolgend ist die Darstellung von Quell- und Zielwährung in einem Composite Provider zu sehen, welcher eine SAP HANA View inklusive hinterlegter Währungsumrechnung konsumiert:
BW-Transformation
Alternativ kann auch auf klassischem Wege eine Währungsumrechnung innerhalb des ABAP Stacks stattfinden. Dies erfolgt innerhalb einer Transformation zwischen Datenquelle und Datenziel. Zu beachten ist, dass in diesem Szenario in der Regel zuvor definierte Währungsumrechnungsarten verwendet werden, welche im Rahmen einer Transformation jedoch keine Variablen unterstützen. Siehe hierzu auch: https://help.sap.com/viewer/dd104a87ab9249968e6279e61378ff66/11.0.0/de-DE/4a27af0d81661d10e10000000a42189b.html
BW-Query
Darüber hinaus kann eine Währungsumrechnung auch auf noch höherer Ebene im BI-Client stattfinden. Dort kann einerseits eine Umrechnung im Rahmen der Querydefinition hinterlegt werden, oder andererseits direkt zur Laufzeit durchgeführt werden. Handelt es sich um komplexe Anwendungsfälle, so empfiehlt es sich die Umrechnung direkt in der Definition einer Query zu konfigurieren, da diese im Gegensatz zur Umrechnung während der Laufzeit, weniger Limitierungen aufweist. Findet die Währungsumrechnung auf dieser Ebene statt, können auch Währungsumrechnungsarten welche Variablen mit einbeziehen verwendet werden. Hierzu gibt es ausführliche Informationen im offiziellen SAP Hilfeportal:
Fazit
Die grundsätzlichen Funktionsweisen bei der Behandlung von unterschiedlichen Währungen innerhalb eines SAP Business Warehouse haben sich auch in hybriden BW/4HANA Modellierungsszenarien nicht verändert. So werden anhand von Schlüsseln in internen Tabellen die jeweiligen Merkmalsausprägungen eines Währungstyps nachgelesen und anschließend auf Grundlage dieser Informationen eine Umrechnung der Werte, sowie eine Anpassung der Texte durchgeführt.
Eine Stolperfalle tut sich unter anderem auf wenn Währungsbeträge zwischen dem ABAP Stack und der HANA DB wechseln (beispielsweise die weitere Verwendung einer systemgenerierten HANA-View eines BW-Objekts). Hier ist zu beachten dass die Tabellen zu Währungsanpassungen sowohl im ABAP Stack, als auch auf der HANA DB liegen, sie könnten also theoretisch voneinander abweichen.
Des weiteren können neben den traditionellen Umrechnungswegen eines SAP BW 7.x, wie im Rahmen einer Transformation oder auf Queryebene, unter BW/4HANA Währungseigenschaften auch über die Semantikeinstellungen einer HANA-View umfangreich und individuell angepasst werden.
![ISR Mitarbeiter Bild](https://isr.de/wp-content/uploads/2024/06/Christopher_Website-2.png)
Christopher Kampmann
Senior Manager
SAP Information Management
christopher.kampmann@isr.de
+49 (0) 151 422 05 448