Ansicht
Dokumentation

ABENDDIC_CURRENCY_FIELD - DDIC CURRENCY FIELD

ABENDDIC_CURRENCY_FIELD - DDIC CURRENCY FIELD

PERFORM Short Reference   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Währungsfelder

Ein Währungsfeld ist eine Komponente einer im ABAP Dictionary definierten DDIC-Struktur, DDIC-Datenbanktabelle oder DDIC-View zur Aufnahme eines Betrags in einer bestimmten Währung. Ein Währungsbetrag ist eine ganze Zahl in den kleinsten Einheiten der Währung. Die ganze Zahl wird aus allen Ziffern eines Währungsfeld ohne Berücksichtigung der Stellung des Dezimaltrennzeichens gebildet.

Ein Währungsfeld kann den Datentyp CURR, DECFLOAT16 oder DECFLOAT34 haben. Beim Datentyp CURR wird ein Feld automatisch als Währungsfeld interpretiert und eine Referenz auf einen Währungsschlüssel ist obligatorisch. Bei den anderen Datentyp ist diese Referenz nicht obligatorisch, wandelt aber bei einer Zuordnung das Feld in ein Währungsfeld um.

Mit dem Währungsschlüssel wird die Währung und die Anzahl Nachkommastellen eines Währungsfeldes angegeben. Er ist eine Komponente einer im ABAP Dictionary definierten DDIC-Struktur, DDIC-Datenbanktabelle oder DDIC-View vom Typ CUKY und kann ein Währungskürzel aus der Datenbanktabelle TCURC enthalten.

Die Anzahl der Nachkommastellen einer Währung ist standardmäßig immer zwei. Währungen mit einer anderen Anzahl von Nachkommastellen müssen zusätzlich in der Tabelle TCURX eingetragen werden, wo die Anzahl der Nachkommastellen explizit definiert werden kann.

Hinweise

  • Die Behandlung von Währungen findet auf Grundlage der in den Datenbanktabellen TCUR... des Pakets SFIB abgelegten Daten statt. Die Umrechnungskurse können u.a. über die Transaktion OB08 gepflegt werden.

Behandlung im ABAP Dictionary

Ein Datenelement vom Datentyp CURR wird wie ein Feld des Datentyps DEC behandelt und in DDIC-Datenbanktabellen im BCD-Format abgelegt. Beim Anlegen eines Datenelements oder einer Strukturkomponente vom Datentyp CURR in einem Werkzeug für das ABAP Dictionary muss eine von Null verschiedene Anzahl von Nachkommastellen definiert werden. Der Standardwert ist zwei Nachkommastellen.

Ein Währungsfeld vom Datentyp DECFLOAT16 oder DECFLOAT34 wird gemäß seines Datentyps behandelt.

Zu jeder Strukturkomponente vom Datentyp CURR muss eine Komponente der gleichen oder einer anderen DDIC-Struktur bzw. DDIC-Datenbanktabelle oder DDIC-View als Referenzfeld angegeben werden, das den Datentyp CUKY hat. Dieses Feld ist der Währungsschlüssel, der die tatsächliche Währung festlegt. Der Datentyp CUKY wird technisch gesehen wie ein Typ CHAR der Länge 5 behandelt.

Hinweise

  • Die Anzahl der Nachkommastellen der durch den Währungsschlüssel vom Typ CUKY definierten Währung bestimmt ausschließlich die Aufbereitung und Überprüfung eines Währungsfelds auf einem Dynpro. Sie ist im Prinzip unabhängig von der für das Währungsfeld vom Typ CURR angegebenen Anzahl. Der Standardwert von zwei Nachkommastellen für Währungsfelder im ABAP Dictionary kommt daher, dass die meisten Währungen aus der DDIC-Datenbanktabelle TCURC zwei Nachkommastellen haben und nicht in der Datenbanktabelle TCURX aufgeführt sind. Es wird empfohlen, keinen anderen Wert zu verwenden, da dann unvorhergesehene Operationen mit Währungsschlüsseln in ABAP-Programmen die geringsten Auswirkungen haben.
  • Die Konvertierungsfunktion CURRENCY_CONVERSION (CDS-View-Entität, ) der ABAP CDS geht auch von zwei Nachkommastellen für Währungsfelder aus. Wenn die Funktion für Währungsfelder mit anderen Anzahlen von Nachkommastellen verwendet wird, kann es zu unerwartetem Verhalten kommen.

Behandlung in Dynpros

Bei der Darstellung eines Ein-/Ausgabefeldes vom Typ CURR auf einem Dynpro, wird der Inhalt wie bei allen Dynpro-Feldern zeichenartig und gemäß einer typabhängigen Maske dargestellt. Die Stellung des Dezimalpunkts eines Währungsfelds vom Typ CURR auf einem Dynpro ist dabei völlig unabhängig von der beim Datenelement im ABAP Dictionary angegebenen Anzahl von Nachkommastellen (größer gleich eins, der Standardwert ist zwei). Die Anzahl der Nachkommastellen auf einem Dynpro wird wie folgt festgelegt:

  • Bei der Darstellung eines Dynpro-Feldes vom Typ CURR wird in den globalen Daten des aktuellen ABAP-Programms nach dem zu dem Feld gehörigen Referenzfeld für den Währungsschlüssel gesucht. Der Inhalt dieses Feldes sollte ein gültiges Währungskürzel aus der DDIC-Datenbanktabelle TCURC sein. Wird das Referenzfeld nicht gefunden oder gibt es in der DDIC-Datenbanktabelle TCURX keinen Eintrag mit dem Inhalt des Feldes, wird das Währungsfeld standardmäßig mit zwei Nachkommastellen dargestellt.
Das Referenzfeld ist entweder bei der zugehörigen Struktur im ABAP Dictionary definiert oder wurde mit dem Screen Painter bei den Attributen des Dynpro-Felds festgelegt. Es muss selbst nicht auf dem Dynpro vorhanden sein.
  • Wenn das Währungskürzel des Referenzfelds in der Datenbanktabelle TCURX gefunden wird, wird das Währungsfeld mit den dort angegebenen Nachkommastellen dargestellt. Dies gilt auch für initiale Referenzfelder.

Währungsfelder vom Datentyp DECFLOAT16 oder DECFLOAT34 werden auf Dynpros nicht unterstützt.

Hinweis

Ein Dynpro übernimmt vom ABAP-Programm (oder einer dazwischen geschalteten Konvertierungsroutine) also nur die Ziffernfolge eines Währungsfeldes, bzw. sendet nur diese. Informationen zum Währungsschlüssel und zu Nachkommastellen werden nicht automatisch übergeben. Es muss dafür gesorgt werden, dass das Referenzfeld zu PBO mit dem gewünschten Wert gefüllt ist. Bei PAI spielt der korrekte Währungsschlüssel für die automatische Überprüfung des Formats eine Rolle. Insbesondere auf Dynpros, auf denen Währungsfelder in wechselnden Währungen dargestellt werden, muss durch CHAIN- und FIELD-Anweisungen dafür gesorgt werden, dass das Referenzfeld vor der Währung transportiert wird.

Behandlung in ABAP-Programmen

Der zum Datentyp CURR korrespondierende ABAP-Typ ist p. Ein ABAP-Datenobjekt, das mit Bezug auf einen Dictionary-Typ vom Typ CURR deklariert wird, hat die dort definierte Anzahl von Nachkommastellen (größer gleich eins, der Standardwert ist zwei). Diese Nachkommastellen werden bei allen Operationen und Berechnungen wie bei jeder gepackten Zahl berücksichtigt. Ausgenommen sind nur solche Programme, bei denen die Programmeigenschaft Festpunktarithmetik nicht gesetzt ist.

Um korrekt mit einem Währungsfeld umzugehen, müssen jedoch alle Ziffern der Zahl unabhängig von der Anzahl der Nachkommastellen als Währungsbetrag in der kleinsten Währungseinheit aufgefasst werden. Dies kommt gelegentlich automatisch vor, beispielsweise bei Verwendung von CURRENCY hinter WRITE [TO] (dies ist bei Währungsfeldern der Datentypen CURR, DECFLOAT16 und DECFLOAT34 möglich) oder der Formatierungsoption CURRENCY in einem eingebetteten Ausdruck eines Zeichenketten-Templates. Für andere Operationen gelten aber folgende Einschränkungen:

  • Unkritisch sind Vergleich, Addition, Subtraktion und Division zweier Währungsfelder mit der gleichen Anzahl von Nachkommastellen.
  • Unkritisch sind Multiplikation mit einer und Division durch eine währungsunabhängige Zahl.
  • Alle anderen Operationen sind kritisch, wie z.B.
  • Multiplikation zweier Währungsfelder

  • Operationen zwischen zwei Feldern verschiedener Währung inklusive Zuweisungen.

  • Zuweisungen von währungsunabhängigen Zahlen an Währungsfelder.

Bei der Durchführung kritischer Operationen sind in der Regel keine sinnvollen Ergebnisse zu erwarten, wenn die Anzahl der Nachkommastellen im Programm nicht zu den Nachkommastellen der Währung passt.

Hinweise

  • Es empfiehlt sich für Währungen statt des Datentyps CURR einen der Datentypen für dezimale Gleitpunktzahlen zu verwenden. Die währungsgerechte Formatierung wird auf Dynpros durch Ausgabestile und in ABAP-Programmen durch die stilgerechte Aufbereitung unterstützt. Siehe ausführbares Beispiel.
  • Die Methoden CONVERT_CURR_TO_DECFLOAT und CONVERT_DECFLOAT_TO_CURR der Systemklasse CL_ABAP_DECFLOAT konvertieren Währungsbeträge in Abhängigkeit von einem Währungsschlüssel in dezimale Gleitpunktzahlen und umgekehrt.





PERFORM Short Reference   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12517 Date: 20240523 Time: 160818     sap01-206 ( 201 ms )