日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP 金额在表中的存储及货币转换因子

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP 金额在表中的存储及货币转换因子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景:一個接口出問題了,SAP通過RFC將SO數據傳輸到Java系統,錯誤的將100日元傳為1.00日元。

其實查看SAP透明表發現,表中存儲的的確是1.00,是前臺真實數據的1/100,開發接口時沒注意到這種情況,也就導致了接口發生錯誤。

這在SAP系統中是常見的,SAP各種幣種的金額都有默認的小數位數,像人民幣CNY,美元等都是2位小數,日元和韓元是0位,及沒有小數位。各種幣種的金額在透明表中存儲都是同一個字段,在存儲到表中是都會做一個轉換,就有了貨幣轉換因子的概念,如上述日元,轉換因子為100.

有以下幾種轉換方式:

1、使用function module CURRENCY_CONVERTING_FACTOR獲取某個幣種的貨幣轉換因子,然后將透明表中的金額乘以貨幣轉換因子就可以了。

2、使用function module FWOS_CURRENCY_DECIMALS_READ獲取某個幣種的小數位數N,貨幣轉換因子等于10的(2 - N)次方。

3、直接進行轉換的function moduleCURRENCY_AMOUNT_SAP_TO_DISPLAY,另外還有反向轉換的CURRENCY_AMOUNT_DISPLAY_TO_SAP可以使用。

4、使用write to語句指定幣種,WRITE p_amt1 currency 'JPY' to p_amt2.

還有兩個問題,

Q1、為什么在SAP系統內開發的報表或功能程序沒有顯示錯誤呢?

A: 在ALV或者screen上人為指定了幣種,這樣SAP系統會根據此幣種的貨幣轉換因子自動轉換后顯示。

Q2:使用貨幣轉換因子,乘法還好,除法的話會出現小數位四舍五入的,導致的數據誤差怎么辦?

A:沒法辦。SAP標準程序輸入金額大多不會有此問題,他根據幣種限制了小數位數的輸入;但是自定義開發的程序多半沒有考慮,像一些報表需要復雜的金額運算,小數位誤差在所難免。

?

在SAP條件記錄中,百分比的存儲也有此種情況,需要注意。

?

總結

以上是生活随笔為你收集整理的SAP 金额在表中的存储及货币转换因子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。