导读
动态记录标准程序变量值:昨天写一篇文章是关于如何在程序中加入开关,记录程序变量的值,有小伙伴问,有没有办法记录标准程序某行内表的值,今天去寻觅下标准文档,还真发现有个地方是可以记录任何程序变量值,今天分享下给大家,各位看官如果觉得写好好给点赞赏,鼓励鼓励。
作者:vivi,来源:osinnovation
1 背景:
上一篇文章介绍在代码中植入断点开关,或者记录程序中某个变量的值,但是这个前提条件是你要写代码在自己的项目里面。但是如果是标准程序,不允许我们写入任何代码?那这个情况我们如何处理。今天这篇文章介绍标准报表中如何监控某个变量的值,这样就不需要修改标准程序,但是这个地方有一个问题就是监控可执行报表,非可执行报表无法监控。
主要的TCODE:sdlp,SAP叫动态观测点。界面后有一排按钮,有个create按钮,弹出对话框:
main programe:就是监控的程序名
include:如果没有include那么就是和监控程序一样
line:就是监控代码的行,一般都是变量的下一行
field values:就是监控的变量,这个监控的地方可以是单变量,也可以是内表
condition:就是条件,需要限定什么条件才把数据写入到日志中
然后点保存就会有下面的界面,我们专注在这个event中,这个时候默认是0,因为监控的程序并没有执行,当执行后系统就会变换。
监控条件都准备好后,我们看前面的状态,如果是红色就没有激活,如果是绿色说明就是激活的。
当所有条件都完成以后,我们可以执行监控的程序,如果程序执行一次,在下图的event就会增加1,我们想观察监控的变量值,可以双击此行的数据,如果event没数据,可以点刷新按钮。
双击以后我们可以看到下面的树形节点,如果是内表就有多行,这个有个问题就是内表的字段不会是结构的名称,系统是流水号监控。系统默认情况内表是1024行,如果超过这个行数,就需要rz10调整参数abap/aab_log_field_size_limit,设置0就是不限制。