点击此处---> 群内免费提供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。
谢谢!
最简单的解释是遵循以下规则:对于涉及CURR数据类型的任何内容,请使用INTERNAL格式。 将EXTERNAL用于所有其他数据类型。 使用BAPI_CURRENCY_CONV *在它们之间进行转换。
在线帮助对其进行了很好的解释,但是要获得真正详细的解释,请喝杯咖啡(您将需要它)并通读注释153707
是的,BAPI将 几乎总是使用外部格式,因为原则上应该可以从外部调用它们。
我认为所有这一切的原因都是历史性的,有人曾想过,我们只是将其视为整数以简化计算,但我们将其定义为带有两个小数点的p类型,这样它将自动正确显示,我们 为可怜的开发人员免去了必须时刻转换的麻烦。 如果那没有道理,请记住,SAP始于70年代,一个以休闲毒品闻名的时代。
嗨,
我通常从tcurx表中检索货币的小数位,然后对要转换的金额进行一些数学运算。
然后,我使用BAPI BAPI_EXCHANGERATE_GETDETAIL获取汇率明细,并使用该信息进行金额换算。
示例未经测试。
好吧,如果您查看内部/外部转换BAPI,您会发现它们的功能几乎与您的代码相同。 就个人而言,我更喜欢尽可能使用标准功能。 无需重新发明自行车,然后负责维护。 谁知道SAP是否决定重新设计表,而S/4HANA中没有。 :)
一周热门 更多>