SAP 小币种金额的转换函数和处理

问题和原因

  • 事务代码:OY04 (可设置设置币别小数位;CNY/USD等币别因系统默认decimal 2 所以无配置条目
    • JPY/VND/VUV/XAF/XOF/XPF等货币的小数位为0
    • CNY/USD等货币的小数位为2
      1
  • SAP存储金额的字段属性是固定的(例如:DMBTR CURR 23 2),所以系统根据转换因子将原金额转换成含小位小数的金额后存储
    • 100 JPY/VND/VUV/XAF/XOF/XPF等货币会转换为1.00存储
    • 100 CNY/USD等货币以 100.00存储
    • SE16N前台显示的VND金额已经乘以货币倍率 100;但是未转换的值是带2位小数的金额
      2

2.实际应用的转换和处理

  • 1.在SQL取数时,将金额 * 100

  • 2.获取转换因子或者通过FM在loop中处理金额

    • 获取当前Client默认币别和输入币别的转换因子 CNY:VND = 1.00:100.00
      • CURRENCY_CONVERTING_FACTOR
        3
    • 金额从内部转为外部
      • BAPI_CURRENCY_CONV_TO_EXTERNAL
      • BAPI_CURRENCY_CONV_TO_EXTERN_9
        4
      • 金额从外部转为内部(MAX_NUMBER_OF_DIGITS 转换后金额最大长度
        • BAPI_CURRENCY_CONV_TO_INTERNAL
        • BAPI_CURRENCY_CONV_TO_INTERN_9
          5
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值