Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Table TCURX used for ?

Former Member
0 Kudos

I need to know the use of the table TCURX it has only two fields Currency and No of Decimals . Can any one please tell me why it is used .

And also why is the FM 'CURRENCY_AMOUNT_DISPLAY_TO_SAP is used ?

Thanks

Ramakanth

3 REPLIES 3

SuhaSaha
Advisor
Advisor
0 Kudos

Hello,

I think this is self-explanatory:

TCURX --> No of decimal places in the currency (e.g., INR --> 2, KWD --> 3, JPY --> 0)

CURRENCY_AMOUNT_DISPLAY_TO_SAP --> Depending on the currency key & the decimals in the currency, the FM formats the amount.

BR,

Suhas

PS: You can have a look into the source code of CURRENCY_AMOUNT_DISPLAY_TO_SAP to get a better idea.

Edited by: Suhas Saha on Apr 20, 2009 5:59 PM

Former Member
0 Kudos

The automatic multiplication and division takes place with amounts associated with currencies maintained in the TCURX table. This maintenance is to allow exceptional currencies that have different number of decimal places from the 2 that is common in most cases.

For example, if the currency entry is present in TCURX table, it divides the amount value by 10 raised to the power of (2- (CURRDEC entry in TCURX table)).

Former Member
0 Kudos

Below is an SAP message when you call tcode OY04 (config. for TCURX)

It explains your doubt.

In the R/3 System tables currency fields are

stored as decimal figures with a variable number

of decimal places. The decimal point is not

stored in the field in the database. Instead,

each currency field refers to a currency key

field. In this transaction you assign the number

of decimal places to this currency key uniquely.

Example: If you have set currency USD to have

two decimal places and you post an amount of 100

USD, an amount of 10000 USD is stored in the

currency field in the database. Not until this

amount is processed further or is output does

the system use the currency key from the

reference field to determine the number of

decimal places via this table. In this way the

table content can be interpreted correctly for

further processing or formatted for output with

the correct punctuation.

If after posting you changed the number of

decimal places for USD, for example, to 3, the

existing field content of 10000 would be

interpreted for futher processing or output as

10 USD (10.000). This would mean that the

contents of tables across the system would, for

all currency fields containing an amount in USD,

be interpreted incorrectly by 10 per cent. To

change the number of decimal places for a

currency already in use, you must convert all

the tables in the R/3 System that contain

currency fields, so that the data integrity

remains. This cannot, however, for both

organizational reasons and under the runtime

aspect be carried out in a productive system.

The following changes to the TCURX table can

thus lead to the loss of data integrity if you

make the changes in a productive system or

transport them into a productive system:

o Change to the number of decimal places of an

existing currency

o Deletion of an entry from the TCURX table

(corresponds to changing the decimal places to

the standard value of two decimal places)

o Insertion of an entry in the TCURX

(corresponds to changing the standard value of

2 decimal places to a different value), if

this is a currency code that already exists

Uncritical changes are any made to this table

during the Customizing of a new installation or

the insertion of TCURX even during operations,

if the currency codes have just been entered in

the TCURC table using transaction OY03,

signifying that no postings to these currency

codes can have been carried out yet.