以前的Java经验到ABAP有太多的mismatch,遇到的列出来备忘:
transparent table: 数据库表在数据字典里的定义,创建transparent table不会马上创建数据库表,只有激活之后才会创建数据库表,可以理解为ORM配置文件里的映射信息;
internal table: 内存对象,可以理解为内存数据库表,不仅仅可以读,还可以做修改删除增加等操作;
data element/domain: data element是对字段的描述,包括语义属性和技术属性两部分,技术属性就是domain;
screen: 在ABAP中的屏幕可以理解为JSP页面,分standard screen/selection screen/list screen;
clear:clear语句把数据对象恢复默认值;
操作符: 圆括号和操作符都是keyword,需要用空格与操作数分开:
错: (2+1)*3
对: ( 2 + 1 ) * 3
内置函数: 左括号是函数名的一部分!
错: length = STRLEN ( cityfrom )
对: length = STRLEN( cityfrom )
IF/CASE/DO/WHILE/LOOP语句需要有ENDIF/ENDCASE/ENDDO/ENDWHILE/ENDLOOP
DO/WHILE循环里用sy-index记录循环次数
internal table中refresh:清空内容,释放部分内存,clear对于没有header line的内表,和refresh一样,否则只初始化header line;free操作将整个内表从内存释放
sy-subrc 返回码 0表示执行成功
loop 内表
sy-tabix 内表循环索引
select/endselect
sy-subrc = 0 至少有一条记录
sy-dbcnt 记录数
sy-datum 系统日期
sy-lsind 列表等级
Form: 子程序,可以理解为自定义方法,通过PERFORM来调用
INITIALIZATION: 可以理解为ready或者onload
AT SELECTION-SCREEN:回车/F8,可以理解为某个Form被Submit,执行自定义的验证校验,没有E类型的消息进入START-OF-SELECTION
START-OF-SELECTION:访问后台,输出列表
AT LINE-SELECTION:列表中某一列被选中(双击或F2,F3返回,sy-lsind指示列表等级,基本列表为0,最大20)