ABAP 常用关知识.docVIP

  • 15
  • 0
  • 约4.68万字
  • 约 71页
  • 2017-03-08 发布于广东
  • 举报
ABAP 常用关知识

ABAP 常用相关知识 1、ST05是用于在开发ABAP程序时,对应事务码取得的字段是“数据结构”而不是“透明表”的时候,通过ST05的“SQL跟踪”来获得相关“Select”的语句;一般查看“REC”列耗时比较多的“Select”语句; 2、跟踪时如果有涉及到“数量”这类有对数据表进行更新或插入操作的,则直接去查Update和Insert的SQL语句; 3、在跟踪后,直接双击“对象名”列的名称,点选“表格字段”转到“SE11”的表字段表; 4、ABAP程序开头的Tables:“数据表名”,只有在屏幕中有用到的表,才需要声明;在程序中用到的表则不需要进行在Tables内声名; 5、抓SAP“文本”字段的数据,要先自定义变量,然后通过SE37的函数“FUNCTION ’ZREAD_TEXT’”取回文本数据; 6、新建的ABAP程序,在测试运行的时候要先进行“激活”,才能测试运行; 7、SE93:把ABAP写好的程序指定一个事务码执行; 8、abap引号内的字符’’必须要是大写; 9、ABAP select 里面的语句,不能像mssql有那么丰富的函数使用,需要导到内表后再对数据进行操作; 10、’EQ’是单个数据值,’BT’是between区间的意思。 11、在写select inner join 里面,要注意是否需要加上条件;on 条件1 and条件。 12、SELECTION-SCREEN,里面有两个子项,PARAMETERS和select-options。 PARAMETERS 一般是用于必输项的屏幕参数设置,如果这个参数不是必输项的,就要用select-options。在select ...where条件里,用PARAMETERS的条件语法是“数据字段 屏幕字段”;而select-options的条件语法是“数据字段 in 屏幕字段”。 13、在where判断一个日期型数据是空,不是DEAKT ’’,也不是DEAKT is initial,而应该写成DEAKT 8个0 。 14、一对多的inner join,如果取出的数据有重复,前面加上distinct,用法和MSSQL相同。 15、sy-subrc,指上一个语句执行是否成功;执行成功返回0,执行不成功返回非0。用if判断。 16、如果一个语句中,该名称同时可能代表内表或者同名表工作区,则需要在内表名称之后加“[]”指明当前操作的是内表对象。不提倡使用带有表头行的内表,而是应该总是声明结构相同的其他数据对象作为显示工作区进行内表行操作。 调整ABAP程序的性能1、使用where语句? 不推荐 Select * from zflight. Check : zflight-airln ‘LF’ and zflight-fligh ‘BW222’. Endselect. 推荐 Select * from zflight where airln ‘LF’ and fligh ‘222’. Endselect. 2、使用聚合函数 不推荐 Maxnu 0. Select * from zflight where airln ‘LF’ and cntry ‘IN’. Check zflight-fligh maxnu. Maxnu zflight-fligh. Endselect. 推荐 Select max fligh from zflight into maxnu where airln ‘LF’ and cntry ‘IN’. 3、使用视图代替基本表查询 不推荐 Select * from zcntry where cntry like ‘IN%’. [Page] Select single * from zflight where cntry zcntry-cntry and airln ‘LF’. Endselect. 推荐 Select * from zcnfl where cntry like ‘IN%’ and airln ‘LF’. Endselect. 4、使用INTO table 代替select endselect 不推荐 Refresh: int_fligh. Select * from zflight into int_fligh. Append int_fligh. Clear int_fligh. Endselect. 推荐 Refresh: int_fligh. Select * from zflight into table int_fligh. 5、

文档评论(0)

1亿VIP精品文档

相关文档