逻辑操作
-
IF ELSE
IF 'AA' CA 'BD'.
ELSE.
ENDIF.
IF .
ELSE IF.
ELSE.
ENDIF.
-
CASE
CASE F.
WHEN F11.
WHEN F22.
WHEN OTHERS.
ENDCASE.
-
DO 循环结构
系统字段:sy-index :为当前循环的索引次数
DO 3 TIMES. 循环3次后会自动结束循环
ENDDO.
DO.
EXIT:结束循环
STOP:结束循环
REJECT:结束循环
ENDDO.
-
WHILE 循环结构
WHILE 条件.
CONTINUE:无条件终止当前循环,继续从while开始
CHECK:有条件中止当前循环,继续从while开始
EXIT:无条件完全中止循环,即退出循环
ENDWHILE
-
LOOP 循环结构
LOOP at 内容.
sy-tabix -- 循环次数,序号
ENDLOOP
系统变量
abap系统空量在syst结构里面可以找到【路径:se11–数据库表–syst】
- SY-SUBRC:语句执行后的返回值,0表示成功
- SY-DBLNT:被处理过的记录的笔数【更改数据库的时候会返回成功几条】
- SY-UN4AME:当的使用者登入SAP的USERNAME
- SY-DATUN:当前系统目期
- SY-UZEIT:当前系统时间
- SY-TCODE:当前执行程序的Transaction code,当前的事务代码
- SY-REPID: 当前程序名称
- SY-lNDEX:当的LOOP销环过的次数
- SY-TABX:当前处理的是intcrnal table的第几笔
- SY-BATCH:后台的程序运行【判断程序前台执行还是后台执行,后台执行的时候这个值等于X】
- SY-MANDT:当前登录的client号【集团】
- SY-UCOMM: PAI所出发的功能代码
- SY-DYNNR:当前屏幕号,当前Screen号
- SY-MSGID:Message class【消息号】
- SY-MSGNR: Message Number【消息编号】
- SY-MSGTY: Message Type【消息类型】
- SY-MSGV1~4: Message variant
- SY-MSGNO 消息, 消息编号
- SPACE:空宇符串
- SY-TABIX:内表循环的次数,当前处理的内表的Index
- SY-STEPL:返回当管操作的屏幕行号[Table Control]
- SY-LOOPC:当的表格拉件在屏幕中的总行数[Table Control]
- SY-ABCDE:常量,A-Z字母表
- SY-TMAXL: internal tabe的总笔数
- SY-SROWS:屏幕总行数
- SY-SCOLS:屏幕总列数
- SY-VLINE:画竖线,垂直线
- SY-UUNE:画横线,255长度的水平线
- SY-PAGNO:当前页号
- SY-LINSZ:当前报表宽度,REPROT语句中设定的LINE-SIZE
- SY-LINCT:当前报表长度,REPROT语句中设定的LINE-COUNT
- SY-LSIND: 列表索引页,当前列表索引,第一级列表为1
- SY-LISTI: 上一个列表的索引
- SY-LILLI: 绝对列表中选定行的行号,选择某行时光标行位置
- SY-CUROW: 屏幕上的行
- SY-CUCOL: 光标列
- SY-CPAGE: 列表的当前显示页
- SY-STARO:真实行号
- SY-LISEL: 选择行的内容,长度为255
- SY-LINNO: 当前行,当前选定行的行号
- SY-DATUM:当前服务器日期
- SY-ULINE:255长度的水平线
- SY-INDEX:循环说执行的次数 (DO While)
- SY-COLNO:当前选定列的列号
- SY-DATAR:在PAI中,如果屏幕上至少有一个输入字段的值被用户或其他数据传输所更改,则为“X”,否则为初始值。
- SY-DATLO:用户的当前日期
- SY-LANGU 当前登录语言
- SY-SLSET 选择屏幕的变式名称
- SY-UNAME 用户名
SY-SUBRC
-
SELECT
SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。
SY-SUBRC = 4: 没有数据。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有,表示:WHERE条件指定的记录不止一行,结果是没有记录被选中。
-
INSERT
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行数,0或1。
SY-SUBRC = 4: 由于有相同的KEY存在,所以插入失败。
-
UPDATE
SY-SUBRC = 0: 找到记录并更新
SY-SUBRC = 4: 没有找到符合条件的记录,也没有更新。
-
DELETE
SY-SUBRC = 0: 找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。
SY-SUBRC = 4: 没有找到符合条件的记录,也没有删除