SAP ABAP常用BAPI函数50之7-BAPI_CURRENCY_CONV_TO_EXTERNAL

在过去的SAP实施项目中,不少是GLOBAL的企业,会有日元,卢布等外币。

之前傻傻的以为所有钱钱2位小数就万能搞定。后来才知道自己是井底之蛙啊!

比如日元,是没有小数的,估计著名的津巴布韦也没有。

货币价值低,那么如何利用有限的数据库空间完美存储金额数据呢?

聪明的SAP想到了转换因子的概念。不得不感慨,神奇的SAP专家!

 

本文是SAP ABAP常用BAPI函数50之XX的系列文章之一,欢迎关注指教~共同提高。

今天,我们一起来学习领会一下强大的系统金额由内转外功能。

BAPI函数:BAPI_CURRENCY_CONV_TO_EXTERNAL

 

应用场景:

  1. 般而言,币种的小数位为2,所以系统默认的位数也是2,但是有一些特殊币种如日元JPY,没有小数位。只要小数位不等于2,需要在系统中特殊处理(通过转换因子进行转换)。
  2. 如果某货币的小数位不是2位,则需要通过OY04设置其小数位数,即需在TCURX表中进行维护
  3. 系统中的数据表存放的日元JPY俄卢布RUR等货币比前台输入的金额小100倍,因为它们没有小数位,所以转换因子为100,存入表之前SAP会先将金额除以这个因子后再存入

 

原理搞清楚了。我们来看看导入参数:比较简单,但是非常实用

参数名称 关联类型 可选的 说明
CURRENCY TCURC-WAERS 必选 转换前的货币码
AMOUNT_INTERNAL 必选 转换前内部的货币金额

 

备注:S4HANA的新语法和ECC或者R3不一样。

自己注意一下吧。

对于初级SAP ABAP顾问来说,是不容易的。

作者曾经也是SAP ABAP beginners ,到处去找Tutorial for Constant。

需要自学很久,没人给咱免费培训。

写个测试代码DEMO举例子。可以直接运行的哦~

 

**声明bapi相关的全局变量
DATA:

gs_AMOUNT_EXTERNAL         TYPE  BAPICURR-BAPICURR. “转换后外部的货币金额

*选择屏幕
PARAMETERS:p_CURR          TYPE    TCURC-WAERS,
p_AMOUNT        TYPE    ekko-WAERS.

*抓取处理数据
START-OF-SELECTION.

*调用bapi
PERFORM FRM_USEBAPI.

*——————————————————————————–*
*  Form frm_setdata           *
*———————————————————————————*
*   调用bapi
*   导入:货币码,转换前金额
*———————————————————————————*

FORM frm_usebapi.
 
*调用bapi
CALL FUNCTION ‘BAPI_CURRENCY_CONV_TO_EXTERNAL’
EXPORTING
CURRENCY          = p_CURR
AMOUNT_INTERNAL    =   p_AMOUNT
IMPORTING
AMOUNT_EXTERNAL     = gs_AMOUNT_EXTERNAL.

 
write gs_AMOUNT_EXTERNAL.
ENDFORM.

 

本文链接 http://www.hot583.com/2022/03/31/bapi_currency_conv_to_external/

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

我的微信公众号【hot583】 或者在这个链接联系我

微信原文《全文完》