货币转换FM/方法可以全部统治?

2020-09-22 16:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个正在使用FM CONV...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个正在使用FM CONVERT_TO_FOREIGN_CURRENCY的程序,最近遇到了日元转换问题。 这是一个众所周知的问题,并且有许多相关的SCN问题(只是一个例子)。

问题在于日元货币配置了"转换因子"。 当前的汇率为5000 JPY约为50 USD。 但是,如果使用FM CONVERT_TO_FOREIGN_CURRENCY(或许多类似的),则返回50而不是5000。有关SCN和SAP Notes的建议,除转换FM外,还根据配置使用BAPI_CURRENCY_CONV_TO_EXTERNAL来调整因数的结果 。 即 第一个FM将返回50,然后BAPI将其变为5000。

我看过一些SAP更正笔记,似乎SAP基本上也是如此:在第一个FM之后添加BAPI(或另一个FM)。

我的问题是:真的没有单一的FM或类/方法可以同时完成这两项工作吗? 我在SE37和SE24中使用* cur * conv *掩码进行搜索,但空手而归。 如果标准中没有类似的内容,那么每个人都如何在Z代码中处理呢? 只需调用2个FM或全局自定义方法/FM?

我知道这是这个问题上的第100个问题,但是似乎很奇怪,2018年仍然没有更好的标准选项。除非我错过了一些东西。 如果有的话,我们有ECC 6.0 EHP6。

谢谢!

4条回答
Tong__Ming
2020-09-22 17:30

嗨,

我通常从tcurx表中检索货币的小数位,然后对要转换的金额进行一些数学运算。

然后,我使用BAPI BAPI_EXCHANGERATE_GETDETAIL获取汇率明细,并使用该信息进行金额换算。

示例未经测试。

数据:ls_tcurx类型tcurx,
       lv_to_curr类型SYCURR,
       lv_fr_curr类型SyCurr,
       lv_date类型为sy-datum,
       lv_amount类型dmbtr,
       lv_convert类型dmbtr,
       ls_exchrt类型bapi1093_0,
       ls_return类型bapiret1。


 lv_amount = 50。
 lv_to_curr ='JPY'。
 lv_fr_curr ='美元'。
 lv_date = sy-datum。


 从tcurx选择单个*到ls_tcurx
    其中currkey eq lv_to_curr。
 如果ls_tcurx不是初始的。
 案例ls_tcurx-currdec。
   当1。
     lv_amount = lv_amount * 10。
   当0。
     lv_amount = lv_amount * 100。
   当3。
     lv_amount = lv_amount/10。
   当别人。
 尾箱。
 万一。


   调用函数" BAPI_EXCHANGERATE_GETDETAIL"
     出口
       rate_type ='1004'" 1004损益/'1002'资产负债表
       from_curr = lv_fr_curr
       to_currncy = lv_to_curr
       日期='20180329'
     输入
       exch_rate = ls_exchrt
       return = ls_return。


     lv_convert = lv_amount *((ls_exchrt-exch_rate * ls_exchrt-to_factor)/ls_exchrt-from_factor)。
 

一周热门 更多>