CURRENCY CONVERSION USING 'READ_EXCHANGE_RATE' FUNCTION MODULE

CURRENCY CONVERSION PROGRAM:

The following program is to convert currency value from EURO TO GBP using 'READ_EXCHANGE_RATE' function module.

*&---------------------------------------------------------------------*
*& Report  Z_CURRENCY_CONVERSION
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_CURRENCY_CONVERSION.
DATAgd_fcurr TYPE tcurr-fcurr,
      gd_tcurr 
TYPE tcurr-tcurr,
      gd_date  TYPE
 sy-datum,
      gd_value 
TYPE I.

gd_fcurr 
'EUR'.
gd_tcurr 
'GBP'.
gd_date  =
 sy-datum.
gd_value 
150.
PERFORM currency_conversion USING gd_fcurr
                                  gd_tcurr
                                  gd_date
                         
CHANGING gd_value.

* Convert value to Currency value
*&---------------------------------------------------------------------*
*&      Form  currency_conversion
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GD_FCURR  text
*      -->P_GD_TCURR  text
*      -->P_GD_DATE   text
*      <--P_GD_VALUE  text
*----------------------------------------------------------------------*
FORM currency_conversion  USING    p_fcurr
                                   p_tcurr
                                   p_date
                          
CHANGING p_value.

  
DATAt_er        TYPE tcurr-ukurs,
        t_ff        
TYPE tcurr-ffact,
        t_lf        
TYPE tcurr-tfact,
        t_vfd       
TYPE datum,
        ld_erate
(12)   TYPE c.

  
CALL FUNCTION 'READ_EXCHANGE_RATE'
    
EXPORTING
*       CLIENT                  = SY-MANDT
      
date                    p_date
      foreign_currency        
p_fcurr
      local_currency          
p_tcurr
      TYPE_OF_RATE            
'M'
*       EXACT_DATE              = ' '
   
IMPORTING
      exchange_rate           
t_er
      foreign_factor          
t_ff
      local_factor            
t_lf
      valid_from_date         
t_vfd
*       DERIVED_RATE_TYPE       =
*       FIXED_RATE              =
*       OLDEST_RATE_FROM        =
   
EXCEPTIONS
     no_rate_found           
1
     no_factors_found        
2
     no_spread_found         
3
     derived_2_times         
4
     overflow                
5
     zero_rate               
6
     
OTHERS                  7
            
.
  
IF sy-subrc EQ 0.
    ld_erate 
t_er / t_ff / t_lf ).
    p_value 
p_value * ld_erate.
    
WRITE P_VALUE.
  
ENDIF.
ENDFORM.                    currency_conversion


OUTPUT:
    125