转载!abap代码规范

01、在增强里面禁止显式或者隐式提交(ZILOG所在函数如果用在增强里面,不要COMMIT)

02、WAIT、异步RFC,都会触发隐式提交,所以禁止在增强内以及禁止提交的场合使用

03、FOR ALL ENTRIES一定要判断内表是否为空且尽量删除重复,SELECT的字段包含所有KEY,避免DISTINCT导致数据错误

04、READ TABLE尽量使用使用二分法或者SORTED KEY,如果用二分法内表不要忘记升序排序

05、DELETE ADJACENT DUPLICATES一定要先排序

06、禁止使用MESSAGE 'XXXX' TYPE 'S'.尽量使用Z消息类,不建议使用通用消息类

07、IN UPDATE TASK的函数,一定要注意性能,不然容易引起更新堵塞和导致数据更新失败

08、BDC的数值、日期字段先WRITE为字符格式

09、VFOM写的例程,传到生产还得再用程序RV80HGEN激活一下

10、修改数据、更新表,先加锁

11、调用RFC的时候,两个EXCEPTIONS不要忘:system_failure和communication_failure

12、PAI中,OK_CODE赋值给SAVE_OK,然后清空OK_CODE

13、避免全局变量和局部变量同名

14、直接Insert/Update表的时候,要转成内部格式

15、在使用SAP锁的时候,用正确的_scope

16、使用递归子程序的时候,尽量使用传值方式避免错误

17、创建表的时候MANDT不能少

18、如果程序不是特别巨大,不要分成几个INCLUDE程序,运维太烦

19、尽量做到代码简洁明了,重视程序性能

20、DELETE DB和UPDATE DB语句,一定要注意使用WHERE语句的限制条件

21、数据库的增删改尽量放到程序的最后,一起进行,如果是在增强里面,使用UPDATE TASK

22、A类型MESSAGE程序会自动回滚,并退出程序。X类型MESSAGE会回滚并DUMP,E类型MESSAGE报错但不回滚,如果需要回滚需要显式ROLLBACK WORK

23、在多个表取数,如果符合使用JOIN的原则,则尽量使用JOIN

24、LOOP大内表的时候,尽量使用二分法READ TABLE和LOOP结合的方法,或者使用SORTED KEY

25、在更新进程里面,不要使用SELECT SINGLE * FOR UPDATE 和 AUTHORITY-CHECK

26、在更新进程里面,不允许使用SUBMIT,CALL DIALOG,CALL SCREEN,CALL TRANSACTION,COMMIT WORK,ROLLBACK WORK

27、如果使用Webservice或者WebUI,日期格式使用YYYY-MM-DD

28、如果需要等BAPI执行结束和更新结束拿到结果,用SET UPDATE TASK LOCAL,不要使用等待语句(WAIT UP TO XXX SECONDS)

29、如果需要在增强中更新表,使用IN UPDATE TASK,并注意V1还是V2更新

30、非必要不使用宏,尤其是给ALV的FieldCat赋值的时候

31、流水码(编号范围SNRO),如果允许跳号,一定要设置缓冲

32、如果可能,尽量避免硬代码(自开发程序似乎没法完全避免)

33、在实施项目中,往往到上线前才会传输请求到PRD,之前传输请求到在QAS建议使用副本请求,避免最后请求混乱

34、SELECT JOIN的时候,注意两个表的连接字段可能都为空的情况,会造成笛卡尔积,数据量急剧变大

35、如果没有使用逻辑数据库(LDB),没有必要使用事件END-OF-SELECTION

36、往其他系统推送数据的RFC,尽量使用bgRFC,使用tRFC容易占用进程过多

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值