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: 

FM to convert amount from one currency to another currency?

Former Member
0 Kudos

HI Experts

is thier any Fucnction module to convert amount from one currency to another currency?

please help me.

Thanks

1 ACCEPTED SOLUTION

Former Member

Hi,



data: lv_foramt TYPE vbap-netpr VALUE 40,
      lv_forcurr TYPE string VALUE 'USD',
      lv_loccurr TYPE string VALUE 'INR',
      lv_locamt TYPE vbap-netpr.

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
       EXPORTING
        CLIENT                  = SY-MANDT
         DATE                    = sy-datum
         FOREIGN_AMOUNT          = lv_foramt
         FOREIGN_CURRENCY        = lv_forcurr
         LOCAL_CURRENCY          = lv_loccurr
        RATE                    = 0
       TYPE_OF_RATE            = 'M'
        READ_TCURR              = 'X'
      IMPORTING
*        EXCHANGE_RATE           =
*        FOREIGN_FACTOR          =
        LOCAL_AMOUNT            = lv_locamt
*        LOCAL_FACTOR            =
*        EXCHANGE_RATEX          =
*        FIXED_RATE              =
*        DERIVED_RATE_TYPE       =
      EXCEPTIONS
        NO_RATE_FOUND           = 1
        OVERFLOW                = 2
        NO_FACTORS_FOUND        = 3
        NO_SPREAD_FOUND         = 4
        DERIVED_2_TIMES         = 5
        OTHERS                  = 6
               .
     IF SY-SUBRC <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ENDIF.


     write:/ lv_locamt.

P.S. Please test your FM in SE37. When I tested, it worked only between USD and INR.

6 REPLIES 6

Former Member
0 Kudos

Hi,

Use the Fm's

CONVERT_TO_FOREIGN_CURRENCY Translate local currency amount into foreign currency

CONVERT_TO_LOCAL_CURRENCY Translate foreign currency amount to local currency

Regards,

Kumar Bandanadham

former_member555112
Active Contributor
0 Kudos

Hi,

Use CONVERT_TO_FOREIGN_CURRENCY and CONVERT_TO_LOCAL_CURRENCY.

Regards,

Ankur Parab

Former Member

Hi,



data: lv_foramt TYPE vbap-netpr VALUE 40,
      lv_forcurr TYPE string VALUE 'USD',
      lv_loccurr TYPE string VALUE 'INR',
      lv_locamt TYPE vbap-netpr.

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
       EXPORTING
        CLIENT                  = SY-MANDT
         DATE                    = sy-datum
         FOREIGN_AMOUNT          = lv_foramt
         FOREIGN_CURRENCY        = lv_forcurr
         LOCAL_CURRENCY          = lv_loccurr
        RATE                    = 0
       TYPE_OF_RATE            = 'M'
        READ_TCURR              = 'X'
      IMPORTING
*        EXCHANGE_RATE           =
*        FOREIGN_FACTOR          =
        LOCAL_AMOUNT            = lv_locamt
*        LOCAL_FACTOR            =
*        EXCHANGE_RATEX          =
*        FIXED_RATE              =
*        DERIVED_RATE_TYPE       =
      EXCEPTIONS
        NO_RATE_FOUND           = 1
        OVERFLOW                = 2
        NO_FACTORS_FOUND        = 3
        NO_SPREAD_FOUND         = 4
        DERIVED_2_TIMES         = 5
        OTHERS                  = 6
               .
     IF SY-SUBRC <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ENDIF.


     write:/ lv_locamt.

P.S. Please test your FM in SE37. When I tested, it worked only between USD and INR.

Former Member
0 Kudos

Hi!

DATA :        w_amt         type cms_dte_original_amt,
                                        " Amount
                  w_conv_amt    type cms_dte_conv_amt,
                                       " Converted amount
                   w_kmein       type cms_dte_original_curr,

You can use this FM,

if  fs_lips-kmein ne 'INR'.
      fl_flag = 1.
      w_amt =  fs_lips-netpr.
      w_kmein = fs_lips-kmein.
      call function 'CMS_API_CURR_CONV'
        exporting
          i_original_curr = w_kmein
          i_original_amt  = w_amt
          i_result_curr   = 'INR'
          i_rate_type     = 'M'
          i_conv_date     = sy-datum
        importing
          e_conv_amt      = w_conv_amt.

      fs_lips-netpr  = w_conv_amt.
      fs_lips-kmein  = 'INR'.
    endif.

Regards

Former Member
0 Kudos

Hi!

Here i am checking for all currencies to be in INR if not then converting it to INR.

DATA :        w_amt         type cms_dte_original_amt,
                                        " Amount
                  w_conv_amt    type cms_dte_conv_amt,
                                       " Converted amount
                   w_kmein       type cms_dte_original_curr,

You can use this FM,

if  fs_lips-kmein ne 'INR'.
      w_amt =  fs_lips-netpr.
      w_kmein = fs_lips-kmein.
      call function 'CMS_API_CURR_CONV'
        exporting
          i_original_curr = w_kmein
          i_original_amt  = w_amt
          i_result_curr   = 'INR'
          i_rate_type     = 'M'
          i_conv_date     = sy-datum
        importing
          e_conv_amt      = w_conv_amt.

      fs_lips-netpr  = w_conv_amt.
      fs_lips-kmein  = 'INR'.
    endif.

Regards

Former Member
0 Kudos

Hi,

There are many FMs to convert function module.

Ex:CONVERT_CURRENCY_BY_RATE

Please check in se37 with the help of F4.

Regards