matinal:SAP 里的汇率转换

331 篇文章 145 订阅

🚀欢迎来到本文🚀
🍉个人简介:matinal,目前职业是IT行业,一个正在慢慢前行的普通人。
🏀系列专栏:涵盖SAP各模块,Python,Excel,人工智能等
💡 其他专栏:一些平时学习的技术,感兴趣的小伙伴可以看看。

🍔公众号:matinal
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️万物从心起,心动则万物动🏄‍♂️


 前言:SAP 里的汇率转换。

🦙(工作遇到傻逼,千万要远离。道路千万条,远离傻逼第一条)


货币汇率转换Demo

 
一、说明

汇率维护在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本位币

比如,公司代码本位币为人民币,那么1USD=6.5CNY为直接汇率,0.15385USD=1人民币为间接汇率。中国采用直接标价法,即美元/人民币报价。
————————————————

代码实现

*&---------------------------------------------------------------------*
*& 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.

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值