20170316 ABAP注意点

 

1.debug 时在MODIFY db from table 后数据便提交了:

一般情况下,更新数据库需要commit,但debug会自动commit,程序结束也会自动commit。

 

2.使用at new, at first, at last, at end of的时候要注意:loop的时候不能加条件;at和endat之间不能使用loop into的working area。

使用At end of...ENDAT. 时要谨慎,容易出错;

使用 AT NEW f. 和 .AT END OF f 时需要注意:

1,f 必须是内表的第一个字段。

2,内表中f 之后的字段的值都会变成 *。

例:

REPORT Z_TEST.

DATA: BEGIN OF TH_LIFNR, 
LIFNR TYPE LFA1-LIFNR, 
ITEM TYPE C, 
END OF TH_LIFNR.

DATA: TD_LIFNR LIKE TABLE OF TH_LIFNR.

SELECT LIFNR FROM EKKO 
INTO TABLE TD_LIFNR 
WHERE EBELN > 4500006374 
AND EBELN < 4500006390.

SORT TD_LIFNR ASCENDING BY LIFNR.

LOOP AT TD_LIFNR INTO TH_LIFNR. 
AT NEW LIFNR. 
WRITE:/10 TH_LIFNR-LIFNR. 
WRITE:/ 'The next is new lifnr.'. ENDAT. ENDLOOP.

 

 

3.关于内部表示和外部表示:调用BAPI和Update DB的时候,要使用内部形式

(物料号有前导零的时候被认为是内部形式;单位一般也有内部形式外部形式之分)。在se11浏览数据的时候,显示数据的画面是使用内部形式,当detail overview的时候,则是外部形式。

4.使用binary search之前,需要sort,并且sort by ascending(系统默认的顺序也是ascending)。而且read table with key的顺序同sort的顺序相同,否则出错,常会找不到纪录。Delete adjacent duplicates之前一定要sort。

 

转载于:https://www.cnblogs.com/rainysblog/p/6566077.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值