READ_EXCHANGE_RATE - ooxxvv/MySAPnotes GitHub Wiki

READ_EXCHANGE_RATE

  • 取得所指定的日期及兩個 Currency 之間的匯率,及其個別的 Factor。
  • Factor 指的是匯率表格中維護的 Factor ,而不是幣別主檔中的 Factor (所以不能用來做一般的 Factor 用途)

IMPORTING

  • EXCHANGE_RATE

    • LIKE BKPF-KURSF
    • 有分正負號,正表示乘,負表示除
  • FOREIGN_FACTOR

    • LIKE TCURR-TCURR
    • 指的是匯率表格中維護的 Factor ,而不是幣別主檔中的 Factor (所以不能用來做一般的 Factor 用途)
  • LOCAL_FACTOR

    • LIKE TCURR-FCURR
    • 指的是匯率表格中維護的 Factor ,而不是幣別主檔中的 Factor (所以不能用來做一般的 Factor 用途)

Code

  DATA: t_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
      date                    = p_date
      foreign_currency        = p_fcurr
      local_currency          = p_tcurr
      TYPE_OF_RATE            = 'M'

   IMPORTING
      exchange_rate           = t_er
      foreign_factor          = t_ff
      local_factor            = t_lf
      valid_from_date         = t_vfd
   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 ).
    IF ld_erate GE 0.
      p_value = p_value * ld_erate.
    ELSE.
      p_value = p_value / ( ld_erate * -1 ).
    ENDIF.
  ENDIF.