ABAP程序的移植性注意问题
来源:互联网 发布:软件设计师教程 pdf 编辑:程序博客网 时间:2024/05/23 11:58
SAP BASIS保证了ABAP程序在不同系统之间的可移植性。不过在不同系统之间传送ABAP程序时还是要注意一些问题。
首先是NATIVE SQL
使用EXEC SQL ENDEXEC运行的数据库本身的SQL语句是导致程序移植问题的首要因素。所以不到万不得已的情况下应当使用OPEN SQL
文件的操作
语句OPEN,CLOSE,TRANSFER,READ DATASET和DELETE DATASET的参数都是文件名,这些文件名都指向SAP所在的服务器的操作系统。然而文件的格式以及文件名称的格式都是与操作系统相关的。通过FUNCTION MODULE:FILE_GET_NAME可以把逻辑的文件名(与平台无关)转换为实际的文件名(与平台相关)。
数字格式
对于整型数和浮点型数可能是有不同的二进制码组成的。尤其是浮点型数。可以使用语句TRANSLATE…NUMBER FORMAT来读它。
数字
对于支持SAP的平台即便整型和浮点型的表示方式相同,对于浮点型来说也有所不同。即便是数值范围以及精度都相同,但他们的舍位方法也有所不同。这种不同可能在实际当中不会带来什么严重的后果,但是仍然不建议直接判断两个浮点数是否相等。除零之外。应当比较两个数的接近程度。
DATA: f TYPE f,
G TYPE f,
REL_DEF TYPE f,
EPSION TYPE f VALUE ‘1E-6’.
REL_DEF = ABS( ( F – G ) / EPSION. ).
IF REL_DEF < EPSION.
………
ENDIF.
ALIGNMENT
不同平台下字段字符串字段的对齐方式可能不同。有些平台下的字段字符串可能有前导符即便是第一个字段。并且ABAP/4的类型在不同平台下有所不同。因此在指明字段字符串的某个字段时应当使用名称而非偏移量,如t000-ort01而非T000+28。
字符集
字符集不仅取决于平台,还取决于你在平台上所安装的语言。语句TRANSLATE…CODE PAGE可以用来实现不同字符集之间的转换。
排序
对于字符的排序你很难预测到顺序,因为下列情况依然存在:
Ø 小写字母可能排在大写字母的前面,反之亦然
Ø 数字可能排在字母的前面,反之亦然
Ø 数字0和9之间没有任何间隙而对于字母来说就很难保证了。
这些问题对于语句SORT,READ TABLE…BINARY SEARCH和SELELCT…ORDER BY都有影响并且对于比较符<,<=,>,>=以及BT和NB等都有影响。目前仍没有通用的解决方案。对于SORT语句可以使用AS TEXT来解决。
- ABAP程序的移植性注意问题
- ABAP编程需要注意的小问题
- ABAP编程需要注意的小问题
- STM32程序移植的一些注意方法
- 关于程序可移植性的问题
- 32位C/C++程序移植到64位系统时需要注意的问题
- 32位C/C++程序移植到64位系统时需要注意的问题
- 32位C/C++程序移植到64位系统时需要注意的问题
- wince移植需要注意的问题
- 关于select * 在ABAP中要注意的问题
- mini2440移植注意问题
- 程序源注意的问题
- ++i, i++, printf 和 程序的可移植性 问题
- ABAP 更改程序的可编辑性
- ABAP程序的优化
- 手机游戏移植注意问题
- tomcat向weblogic移植需要注意的问题
- miniGUI移植要注意的一些问题 (转)
- 獲取聊天窗口的內容(修正)
- 常用正则表达式
- 优酷视频下载工具
- C# 写XML例子,根据行政代码树生成XML
- 嵌入式系统中Nand-Flash的原理及应用
- ABAP程序的移植性注意问题
- Leo谈交朋友与找工作
- Ext错误列表——回调函数如何传参
- oracle中列出某月所有天的sql语句
- 用C++ 和 Win32 SDK 写的简单键盘锁
- 利用Boost影响Lucene查询结果的排序
- msn web search 的访问地址
- YAFFS文件系统移植笔记
- NAND FLASH ECC校验原理与实现