ABAP中的报出消息语句的关键字是啥?请至少说出三种消息类型.消息文本使用哪个TC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP中的报出消息语句的关键字是啥?请至少说出三种消息类型.消息文本使用哪个TC相关的知识,希望对你有一定的参考价值。

ABAP中的报出消息语句的关键字是什么?请至少说出三种消息类型。消息文本使用哪个TCODE维护?

ABAP中的报出消息语句的关键字是“MESSAGE”

消息类型:
A:Abend, 终止当前事 务
E:错误 ,系统等待 新输入数据
I:信息 ,处理 ENTER 之后,系统 继续处理
S:确认 ,消息出现 在下一屏上
W:警告 ,可以更改 输入数据或 通过按 ENTER 继续

维护消息文本TCODE:SE91
参考技术A 关键字Message
W 警告
E 错误
S 成功
I 窗口
A

用se91维护

◆◆0如何根据错误消息定位出错的ABAP程序

在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中找不到就会报错。。。

技术图片

 

以上。

以上是关于ABAP中的报出消息语句的关键字是啥?请至少说出三种消息类型.消息文本使用哪个TC的主要内容,如果未能解决你的问题,请参考以下文章

◆◆0如何根据错误消息定位出错的ABAP程序

SAP ABAP 编辑器不显示关键字是啥原因?

使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异

工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)

ABAP 内表访问表达式的性能

ABAP LOOP语句在啥情况下可以被read替代