Skip to Content
avatar image
Former Member

Table TCURX used for ?

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 ?



Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Apr 20, 2009 at 03:56 PM


    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.



    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

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 20, 2009 at 04:07 PM

    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)).

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jun 11, 2010 at 10:52 AM

    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.

    Add comment
    10|10000 characters needed characters exceeded