ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

通过SAP的错误消息定位出错的程序的6种方法

2022-04-07 17:32:36  阅读:225  来源: 互联网

标签:定位 SE38 程序 ABAP 出错 message SAP 断点 SAT


在SAP项目中,经常会遇到一个比较复杂的程序报出个错误消息(有时会是一个标准SAP程序报错),但是不知道到底是哪段ABAP代码出错了。

下面通过一个简单的例子,来介绍6种方法来定位报message的ABAP程序。

比如在SE38中输入一个不存在的程序ZSDFSF,点击显示按钮,在下面的状态栏会弹出一个消息,如下:

1, 利用Where use list功能

举例说明,双击状态栏上的消息,找到message class ID: DS, number 017,如下图,

SE91,选中对应的消息,点击where use list按钮

一般会找到很多程序,

这时候只能靠人工过滤,找到正确的出错位置,

然后设置断点,再运行一下程序,确认一下。

2, 设置sy-msgid的watch point断点

在命令栏输入/h,回车激活debug模式,

创建watch point如下:

程序运行后就会自动在message ID ‘DS' ,message号017处停下来。

创建watch point的详细界面如下:

3, 设置ABAP Command类型断点

在debug模式下,创建一个abap command类型的断点,

输入的abap命令是关键字message,如下:

 

程序运行是就会在每一个执行到的message语句停下。然后进一步定位错误。

4, 源代码查询

通过SAP标准程序RS_ABAP_SOURCE_SCAN可以搜索到使用到相关message的abap程序。

SE38所在的package是SEDT,

运行RS_ABAP_SOURCE_SCAN,在package SEDT中查找关键字message 017,

然后手动分析结果,找到出错的abap程序。

也可以使用CODE_SCANNER来查询,

5, 使用SAT工具

Tcode SAT,创建一个新的SAT 变式,在变式屏幕中,选择“Aggregation – None”选项,

然后在SAT主屏幕中输入SE38,选择上面创建的变式,运行,

在SE38中输入一个不存在的程序名,运行后,会显示跟踪结果,在结果集中查找message关键字,在Hit list中双击行就能跳到具体的ABAP代码处。

附:[工具]SAT性能分析使用教程

6, 使用ST05工具

使用ST05跟踪SE38后,在结果屏幕中,选中object Name是PROGDIR的行,点击display ABAP Call Location按钮,

在定位到的774行程序附近就能找到相关的报出message的代码:

果然在813行找到了message。

注:为什么要在ST05结果屏幕中找PROGDIR,是因为sap系统中,所有的程序名都保存在表PROGDIR中,在PROGDIR中找不到就会报错。。。

标签:定位,SE38,程序,ABAP,出错,message,SAP,断点,SAT
来源: https://www.cnblogs.com/wangqinglin/p/16113351.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有