1、SAP开发技术指南-Debug技术点2012年02月23日本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属所有,受到有关产权及版权法保护。任何个人、机构未经的书面授权许可,不得以任何方式复制或引用本文件的任何片段修改记录制定日期生效日期制定 /修订内容摘要页数版本拟稿审查批准2012-02-24创建9目录1 引言 41.1 目的及范围 41.2 参考资料 41.3 定义 41.4 文档结构 42 常用的Debug方法 42.1 直接在程序中设断点 42.1.1 Session Breakpoint会话断点 42.1.2 External Breakp
2、oint外部断点 52.1.3 调试按钮 52.2 Debug后台运行的Job 82.3 在程序的运行界面进入Debug 112.3.1 正在运行的程序进入Debug 121 引言Debug是程序调试的重要方法1.1 目的及范围本文档主要介绍在SAP系统中,Debug(调试)程序的几种常用的方法,可适用于ABAP开发人员,分析人员使用1.2 参考资料 1.3 定义1.4 文档结构文档的各章节介绍的内容如下: 第2节介绍几种Debug的常用方法 第3节具体案例2 常用的Debug方法以下将讲解SAP中各种Debug程序的方法2.1 直接在程序中设断点2.1.1 Session Breakpoin
3、t会话断点点击图中的或者点击右键,选择Set Session Breakpoint,在代码中的光标行打上会话内断点,如下图所示会话断点只在该Session内有效,假期此时另打开一个会话,则该断点不会影响到新建的会话内的同一个程序。2.1.2 External Breakpoint外部断点或者点击右键,选择Set External Breakpoint,在代码中光标行打上外部断点,如下图所示: 外部断点的适用范围要比会话断点大,它不只对一个Session起作用,同一个用户在同一台电脑上打开的Session都会受其影响(同一用户在其它电脑上开的Session可以看到该外部断点,但是外部断点不起作用
4、)不同电脑上同一用户打开的Session中,看到的不起作用的外部断点,呈现灰色。2.1.3 调试按钮在Debug的过程中,界面上调试按钮主要有如下图所示的几个: 左边四个,自左到右快捷键分别为:F5、F6、F7、F8F5:逐步执行程序,当遇到调用其它程序时,会进入调用程序;F6:逐步执行程序,但不会进入下一级调用程序;F7:跳出当前程序,跳回上一级;F8:执行程序到断点或执行到末尾;按钮是用来在Debug过程中再添加断点的,它的功能很强大,可用于选取关键字、FM、方法、FORM,甚至代码段等,点击后的界面如下:例:在所有LOOP循环处打断点,则如下操作:点击确定,则程序中所有出现LOOP的地方
5、都被打上了断点,效果如下所示:想要删除这一批断点的话,选择Breakpoint页签,显示如下内容:选择LOOP行,点删除,就可以把LOOP循环上的断点去掉。是用来跟踪变量变化的,按下该按钮会弹出如下对话框:在Variable中输入变量名,以输入itab为例点击确定,此时按F8,Debug的程序会停在变量itab的值(内容)发生变化的代码的下一行,即定位到变量变化后的代码行。2.2 Debug后台运行的Job从后台运行程序ZCXT_WRITE_INPUT代码如下:*&-*ReportZCXT_WRITE_INPUTREPORTZCXT_WRITE_INPUT.parameters:inputty
6、pechar30.write:输入内容为:,input.按F8执行程序,如下图所示:在输入框内输入INPUT,点击Program,选择Execute in Background如下所示。从后台运行程序。程序执行成功,结果如下:此时进入SM37,找到程序执行日志,如下所示:按F8,继续执行:选择Job,然后在命令框输入jdbg,进行Debug,这样Debug的好处在于,Debug的时候,程序中的输入参数(数据)与程序后台执行的时候是一致的,假如程序当时出现了错误,就可以通过此种方法查找问题所在。按回车开始进行Debug, 可以看出,这样Debug的时候,参数的值是当时后台运行时的值,即ABCD2
7、.3 在程序的运行界面进入Debug在程序的控制框输入/H,运行程序的时候就会进入Debug这种Debug方法在Debug屏幕的时候经常被使用,因为有时候不知道要调试的屏幕的代码在哪是,使用这种方法,可以快速定位到屏幕的PBO和PAI代码中,对于调试屏幕很便利。 如果你在进行某个 操作的时候出现错误,你想找到为什么会错误,就需要这段命令FUNCTION Command=/H Title=Debugger Type=SystemCommand把上面这句话保存为debug.txt文件。当你点击某个动作如”execute(f8)“之前,把这个debug.txt文件拖到需要执行的会话的标题栏,可以发现鼠标上显示可以放入。放入之后,再点击execute。就会进入debug界面。2.3.1 正在运行的程序进入Debug进入sm50找到需要进入Debug的Process,然后点击工具栏Program/Session-Program debugging,即可进入Debug。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1