场景:一个接口出问题了,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 module CURRENCY_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 金额在表中的存储及货币转换因子的更多相关文章

  1. SQL 把表中字段存储的逗号隔开内容转换成列表形式

    原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...

  2. [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式

    我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免 ...

  3. [SAP ABAP开发技术总结]将文件存储到数据库表中,并可发送邮件

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. SetCookies, cookie规范注册表和cookie存储将会优先于设置在HTTP客户端级别中默认的那些

    遇到下面问题解决方法: Hey? 404 抱歉,你输入的网址可能不正确,或者该网页不存在. 7 秒后返回首页 使用独立的本地执行上下文来实现对每个用户(或每个线程)状态的管理. 定义在本地内容中的co ...

  5. 捕获mssqlservice 修改表后的数据,统一存储到特定的表中,之后通过代码同步两个库的数据

    根据之前的一些想法,如果有A,B 两个数据库, 如果把A 用户通过界面产生的更新或者插入修改,操作的数据同步更新到B 库中,如果允许延时2分钟以内 想法一: 通过创建触发器 把变更的数据和对应的表名称 ...

  6. 将字符串存储到注册表中,长度一定是 strlen(text) + 1

    参考:https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-value-types 将字符串存储到注册表中,长度参数一定要 ...

  7. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  8. 【HANA系列】SAP HANA SLT 在表中隐藏字段并传入HANA的方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SLT在表中隐 ...

  9. 【HANA系列】SAP HANA SQL取表中每行最小值

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL取表中每 ...

随机推荐

  1. POJ 2078 Matrix

    Matrix Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 3239   Accepted: 1680 Descriptio ...

  2. Linq专题之var关键字

    在c#1.0,c#2.0中声明一个变量时,总是要指定变量的类型,如果不指定变量类型编译器就会报错,产生编译错误.在c#3.0中我们可以不指定变量的具体类型,而使用一个新的关键字"var&qu ...

  3. 暴力清除Android中的短信

    有些短信程序有bug,当短信(特别是彩信)没有接收完整,或者是一些异常情况下,你会收到一条短信但是看不到或者看不了. 此时郁闷的事情就来了,系统会提醒你还有1条未读短信,但是你满世界都找不到这条短信. ...

  4. Understanding apps: mobile, native or responsive

    Background Maybe you have decided to get an app built. You will not build it yourself (obviously!) s ...

  5. bootstrap插件学习-bootstrap.carousel.js

    先看bootstrap.carousel.js的结构 var Carousel = function (element, options){} //构造器 Carousel.prototype = { ...

  6. 免费素材下载:iOS 8 矢量 UI 素材套件

    小伙伴们,苹果终于在今天凌晨推送了 iOS 8 的正式版.虽然该系统并未与 iPhone6 发布会同时亮相,但对于已经提前体验尝鲜过测试版的同学来说并不陌生.iOS 8 几乎每个图标都进行了重新设计, ...

  7. Flask模板_学习笔记

    代码尽在我的github上面:https://github.com/521xueweihan 概述:    在Flask中,Jinja2默认配置如下:        A.扩展名为.html,.htm, ...

  8. 分享几个cocos2dx的小游戏

    先上几个自己写的,因为最近要用cocos2dx,所以就边学边开发几个小游戏玩玩,有捕鱼,连连看,还有打地鼠!都不算完整的项目,不过拿来学习还是可以的,或者在基础上再二次开发,扩展自己! 1:捕鱼的 先 ...

  9. WebGL 3D on iOS8 正式版

    今天iOS8终于正式发布了,升级了手头设备后对我来说最重要的就是测试WebGL的3D是否真的能跑苹果的系统了,跑了多个HT for Web的3D例子都非常流畅,比Android刚支持WebGL时好太多 ...

  10. 【Spark】---- 在Linux集群上安装和配置Spark

    1 安装JDK   1) 进入JDK官网 2) 下载JDK安装包 3)配置环境变量,在/etc/profile增加以下代码 JAVA_HOME=/home/hadoop/jdk1.6.0_38 PAT ...