【技巧】根据消息号查找消息代码位置

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

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

  • 程序名 ZMMR020
  • 事物码 ZMM020
  • 消息号 TD600【没有发现文本 4500000003 ID F01 语言 ZH】E

错误的类型:

代号 类型 描述
E Error 错误
W Warning 警告
I Information 信息窗口
A Abortion 终止程序
S Success 成功

第一种 利用Where use list功能

  1. T-code:SE91
  2. 输入
  3. 点击Where-Used List【使用位置列表】
  • Message Class【消息类】 :TD
  • Message【消息】- Number 【编号】 :600
  1. 一般会找到很多程序,这时候只能靠人工过滤,找到正确的出错位置,然后设置断点,再运行一下程序,确认一下。

第二种 设置Sy-msgid的Watch Point断点

  1. 在命令栏输入/h,回车激活Debug模式
  2. 选择Break./Watchpoint【断点/监控点】窗口
  3. 选择Watchpoint【监控点】窗口
  4. Create Watchpoint【创建监控点】
  • Variable【变量】 :Sy-msgid
  • Free Condition Entry【可用条件条目】 := ‘TD’
  1. Create Watchpoint【创建监控点】
  • Variable【变量】 :Sy-msgno
  • Free Condition Entry【可用条件条目】 := ‘600’
  1. 激活监控点后,回到【桌面 3】窗口,点击F7,跳转到消息处。

第三种 设置ABAP Command类型断点

  1. 在命令栏输入/h,回车激活Debug模式
  2. 选择Breakpoints【断点】- Breakpoint At【断点位置】- Breakpoint At Message【消息处断点】
  3. 选择Message【消息】窗口
  4. 输入
  • ID :TD
  • Number 【编号】 :600
  1. 回到【桌面 3】窗口,点击F7,跳转到消息处。

第四种 源代码查询

方法1 RS_ABAP_SOURCE_SCAN

  1. T-code:SE38
  2. 运行RS_ABAP_SOURCE_SCAN
  3. 输入
  • String Searched For【字符串搜索】 :MESSAGE E600
  • Package【包】 :STXD
  1. 然后手动分析结果,找到出错的ABAP程序。

方法2 CODE_SCANNER

  1. T-code:CODE_SCANNER
  2. 输入
  • Package【包】 :STXD
  • Search String 1【搜索字符串 1】 :MESSAGE E600
  1. 然后手动分析结果,找到出错的ABAP程序。

第五种 使用SAT工具

  1. T-code:SAT
  2. 选择Edit【编辑】- Variant【变式】- Create...【创建...】
  3. 选择Aggregation【集合】 – None【无】
  4. 保存 - DEFAULT
  5. 然后在SAT主屏幕中输入
  • Variant【变式】 :DEFAULT
  • Transaction【业务】 :ZMM020
  1. 点击Execute【执行】
  2. 运行后返回,会显示跟踪结果,选择Call Hierarchy【调用层级】窗口
  3. 点击Find【查找】
  4. 输入
  • Statement/Event【说明/事件】 :MESSAGE E600
  1. 在Hit List【命中清单】中双击行就能跳到具体的ABAP代码处。

第六种 使用ST05工具

  1. T-code:ST05
  2. 点击Activate Trace,启动追踪
  3. 点击打印弹出错误信息
  4. 点击Deactivate Trace,关闭追踪
  5. 点击Display Trace,进入追踪信息
  6. 点击Execute,执行
  7. 选择黄色位置,点击Display ABAP Call Location,显示报错代码位置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 声明:本文来自Jerry Wang在SAP社区的一篇分享,本人在学习过程中顺便做了翻译。Jerry 是我很喜欢的一...
    三月行者阅读 6,175评论 0 4
  • 1 调试1.1 调试方式1.2 调试过程中的功能键的作用2 调试模式的断点2.1 断点类型2.2 静态断点2.3 ...
    abapCiCi阅读 517评论 0 1
  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 3,473评论 0 10
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 8,076评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 2,063评论 4 1

友情链接更多精彩内容