ABAP基础随笔

abap一般可执行程序用report,交互式程序(只能用事物代码执行的)用program。


abap消息类管理:se91

REPORT ztest02 MESSAGE-ID zhq_test01.

MESSAGE A000 WITH sy-uname sy-mandt.
“message S/I/W/E/A + message id.

项目中通常按照模块创建消息类,例如:
ZFI01,ZSD01,ZGSP01,ZEWM01等。


abap调试

ps.使用F7跳过循环时断点要打在loop里面,不能打在loop那一行,否则程序会直接跳过整个loop代码块。
loop内容较多时,用watch-point(进入debug模式后菜单栏可见)方式来快速定位到对应的变量值。
返回已经执行过的代码块的方式为鼠标点中对应的行,按【shift+f12】。

ABAP 调试器


簇表(CLUST TABLE)和透明表:
都是存数的,都对应实际的物理表。
簇表:多张物理表对应一个簇表,可以理解为多张表pin成一张表(分区表),簇表不能用join
透明表:一张透明表对应一个物理表;

簇表一般用来存储数据量比较大的数据,不怎么用,项目中基本上用透明表都能搞定。
ECC中比较常用的簇表是BSEG,但是如果是ECC on hana的话、bseg好像已经被SAP转换为透明表了。

One thought on “ABAP基础随笔

  1. ABAP调试

    1.任意界面打开调试功能:
    事物代码:/h

    2.程序dump后打开调试
    在奔溃界面直接点击“abap调试器”即可进入调试状态并程序自动定位错误位置。

    3.硬代码方式开启调试(禁止使用):break-point

    4.会话方式开启调试:系统 -> 状态 ->双击进入代码 -> 设置会话断点

    进入调试后F5、F6、F7、F8
    F5;进入函数或者循环,单步执行
    F8:直接运行到程序结束
    loop循环的断点要打在loop里!
    F7直接得到每一次循环的结果(相对于F5单步执行来说)
    使用F7跳过循环时断点要打在loop里面,不能打在loop那一行,否则程序会直接跳过整个loop代码块。
    loop内容较多时,用watch-point(进入debug模式后菜单栏可见)方式来快速定位到对应的变量值。
    返回已经执行过的代码块的方式为鼠标点中对应的行,按【shift+f12】。

    watch-point
    需要进入调试才能打watch-point

    使用SE16N修改透明表数据(严禁使用):
    https://www.gavindong.com/sap-se16n-use.html

发表评论

电子邮件地址不会被公开。