在BW/4 HANA的开发中常在结束例程中编写大量的ABAP代码,这里小小的总结了自己开发中一些经验教训吧。
声明变量
- 声明对象的名称应该有适当的意义。
- 声明和定义用于内部表的结构,以及所需的字段。不要直接使用现有的DDIC表,因为大多数情况下我们不会使用DDIC表的所有字段。这将有助于节省内存。
- TYPES 和 DATA都可以用来定义结构体,DATA定义时即是内表又是工作区,并且内表带有HEADER LINE。但是程序可读性很低,内表名与工作区名字相同。可读性不高。
SELECT查询
- SELECT 你需要的字段,而非SELECT * FROM。字段过多占用大量的资源,尤其是表中含有很多行记录。
- 在单个SELECT语句中从表中选择所有必需的字段。尝试只访问数据库表一次。连接访问数据库会影响性能,尽可能少访问数据库,注意!千万不要在
LOOP中SELECT。 - 使用WHERE做出限制,其实有些记录你不一定使用到,那就不要读取,做些适当限制。
- 在对所有记录使用之前,对内部表中的重复项进行排序和删除。注意排序!SORT后delete duplicates。
Loop/Read
- 尽量避免使用LOOP嵌套。如果使用内部循环;请使用部分循环。在使用部分循环之前对内部表进行排序。部分循环可以通过使用带有where子句的循环来实现。
- 使用,而不是直接使用工作区。这样可以直接赋值修改。而不是数据->工作区,工作区->内表
- 使用二分查找之前,要对内表进行排序,注意将用于查找的字段进行排序。
- 每次READ后都要检查sy-subrc值。只有当值为0时,才能进一步处理,否则进行其他处理。
注释:
- 多用注释,特别较多逻辑处理,例如,IF多嵌套,结构定义,大量的代码。
- 注释应该有意义,并且应该帮助我们理解为什么要编写特定的代码块/代码片段。
- 使用程序美化器,保存激活你的转换。
这些可能不是最好的,如果有错误或者有其他补充的,请评论留言指出!