在ABAP程序开发中可能会遇到要DEBUG循环语句的情况,这个循环语句可能会执行上万次,但我们希望程序执行循环到100次就停下来,也就是希望DEBUG断点设置在循环语句的第100次停下来观察执行的结果,这时我们可以在DEBUG程序时通过设置一个监控点来达到上述的目的,但这个监控点的触发是有条件的,只有满足我们设置的条件才能触发
我们以下面的示例代码设置观察点,DEBUG程序中的循环语句
REPORT z437_test_2024.* 自定义数据类型
TYPES: BEGIN OF ty_sflight,carrid TYPE sflight-carrid,connid TYPE sflight-connid,fldate TYPE sflight-fldate,
END OF ty_sflight.DATA: count TYPE i VALUE 1.
DATA: ls_sflight TYPE ty_sflight, " 结构体lt_sflight TYPE STANDARD TABLE OF ty_sflight. " 内表* 取数
SELECT carrid connid fldateINTO TABLE lt_sflightFROM sflightUP TO 100 ROWS.* 循环内表
LOOP AT lt_sflight INTO ls_sflight.WRITE: / ls_sflight-carrid, ls_sflight-connid, ls_sflight-fldate, count.count = count + 1.
ENDLOOP.
我们希望DEBUG上面这个程序的LOOP循环语句,想让这程序的LOOP循环执行到第50次和第90次的时候停下来,看看打印的东西是什么以及count值是多少
DEBUG具体操作步骤:
① 激活程序并在LOOP循环执行处设置断点,点击执行按钮,进入程序调试界面
② 设置监控点
系统变量SY-TABIX会记录LOOP执行的次数,这里设置条件为LOOP循环执行50次的时候作为监控点
按同样的步骤设置第二个观察点
上图count为这个程序中的变量,这里设置条件当count变量值为90的时候作为监控点
③ 设置好这2个监控点之后,然后点击按钮
上图可以看到程序已在第一个监控点停下,这时可以看到打印的数据是什么以及count的值
然后继续点击按钮
上图可以看到程序已在第二个监控点停下,这时可以看到打印的数据是什么以及count的值