Advertisement

SAP货币汇率转换

阅读量:

一、说明
汇率维护可以在ERP系统中通过事务代码OB07或OB08进行管理。每次进行不同币种的汇率调整时,在正式生产系统内都会新增一条记录。修改后会被存储到表TCURR中。通过调用函数CONVERT_TO_LOCAL_CURRENCY来实现货币转换。需要注意的是,在导出功能(Exporting)中的各个参数必须使用变量而非常量。该函数默认采用最新更新的有效汇率作为计算依据。

在处理货币数据时需要注意一些特殊的情况。例如日元(JPY)这种货币是不带小数点的,在系统内部存储的数据与你查看时看到的数据存在差异。这是因为采用了转换因子进行调整的原因,在将金额转换为目标货币之前,在SAP系统中会先除以相应的转换因子,并计算出最终数值后再存入数据库中,并提供了相应的功能模块供使用

  • BAPI_CURRENCY_conv_TO_INTERNAL:该命令表示为将汇率归约为数据库内部存储的金额形式。
    • BAPI_CURRENCY_conv_TO_EXTERNAL:该命令归约为外部使用的实际金额计算。
在这里插入图片描述

包括直接汇率(Direct quotation)和间接汇率(Indirect quotation)两部分

直接汇率:1外币=XX本位币

间接汇率:XX外币=1本位币

例如,在公司内部编码中使用人民币作为基准货币时,默认情况下1美元等于6.5个人民币的直接汇率表示;另外,在这种情况下计算出的0.15385美元等于每个人民币的间接汇率计算方式。中国的外汇交易主要采用直接标价法,在此体系下报价单位通常以美元/人民币(USD/CNY)的形式呈现。

在这里插入图片描述

三、转换实例

复制代码
    *&---------------------------------------------------------------------* *& Report  ZTEST_CONVERT_CURR
    *&
    *&---------------------------------------------------------------------* *&
    *&
    *&---------------------------------------------------------------------*
     
    REPORT ZTEST_CONVERT_CURR.
     
    DATA: GV_AMOUNT LIKE BSEG-WRBTR,
      GV_INTER  LIKE BSEG-WRBTR,
      GV_FROM   TYPE CHAR20,
      GV_TO     TYPE CHAR20.
     
    ************************************ * selection screen
    ************************************
    PARAMETERS : P_FC TYPE TCURC-WAERS DEFAULT 'JPY',
             P_TC TYPE TCURC-WAERS DEFAULT 'CNY',
             P_DATE LIKE SY-DATUM DEFAULT SY-DATUM,
             P_CURR TYPE BAPICURR-BAPICURR,
             P_KURST TYPE TCURR-KURST DEFAULT 'M'.
     
    ************************************ * start- of -selection
    ************************************
    START-OF-SELECTION.
    *** Conversion of Currency Amounts into Internal Data Format
      CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'
    EXPORTING
      CURRENCY             = P_FC
      AMOUNT_EXTERNAL      = P_CURR
      MAX_NUMBER_OF_DIGITS = 13
    IMPORTING
      AMOUNT_INTERNAL      = GV_INTER.
     
    *** Translate foreign currency amount to local currency
      CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
    EXPORTING
      DATE             = P_DATE
      FOREIGN_AMOUNT   = GV_INTER
      FOREIGN_CURRENCY = P_FC
      LOCAL_CURRENCY   = P_TC
      TYPE_OF_RATE     = P_KURST
    IMPORTING
      LOCAL_AMOUNT     = GV_AMOUNT
    EXCEPTIONS
      NO_RATE_FOUND    = 1
      OTHERS           = 2.
     
    ************************************ *  end - of - selection
    ************************************
    END-OF-SELECTION.
      MOVE P_CURR TO GV_FROM.
      MOVE GV_AMOUNT TO GV_TO.
      CONDENSE GV_FROM NO-GAPS.
      CONDENSE GV_TO NO-GAPS.
     
      WRITE : / P_FC,'→',P_TC.
      WRITE : / GV_FROM ,'→',GV_TO.
在这里插入图片描述
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~