SAP ST22 - ABAP运行时错误分析工具

今天聊一下 SAP ST22 - ABAP运行时错误分析工具 ,话不多说,进入正文···

原文转载自:SAP ST22 - ABAP运行时错误分析工具

概览

"If an unhandled exception occurs while an ABAP program is being executed, the ABAP runtime environment triggers an ABAP runtime error. The execution of the program is terminated in this case and a detailed error log (short dump) is created and saved in the affected ABAP system.

If a runtime error occurs in a dialog process, the system immediately displays a screen with the short dump. For further checks you can then branch directly to the ABAP Debugger." [^1]

如果执行 ABAP 程序时出现未处理的异常,ABAP 运行时环境会触发 ABAP 运行时错误。在这种情况下,程序的执行将被终止,同时会创建一个详细的错误日志(短转储)并保存到对应的的 ABAP 系统中。

如果对话框进程中出现运行时错误,系统会立即显示一个包含简短转储的屏幕。如需进一步检查,可直接转到 ABAP 调试器。

通过ST22可以得到什么信息

通过分析ST22错误日志,你可以找到运行时错误的所有相关信息,包括错误的基本信息、系统环境、用户和事务、短文本、错误分析、如何更正错误、关于在何处终止的信息、源代码,以及错误发生时的系统变量、程序变量、调用堆栈、相关的程序列表等。

基本信息

这部分列出了错误发生的基本信息,比如下面的信息告诉我们:

  • 错误类别是:ABAP 编程错误
  • 运行时错误是:CONVT_NO_NUMBER
  • 异常类是:CX_SY_CONVERSION_NO_NUMBER
  • ABAP 程序是:ZHRR_0001
类别                   ABAP 编程错误
运行时错误             CONVT_NO_NUMBER
异常                   CX_SY_CONVERSION_NO_NUMBER
ABAP 程序              ZHRR_0001
应用组件               未分配
日期和时间             2023-02-19 13:20:31 (CAT)
----------------------------------------------------------------------------------------------------

系统环境

这部分列出了SAP应用服务器的版本和信息、数据库服务器的版本和信息、内存占用信息。

----------------------------------------------------------------------------------------------------
|系统环境                                                                                          |
|    SAP Release..... 754                                                                          |
|    SAP Basis level 0002                                                                          |
|                                                                                                  |
|    Application server... [Application Server]                                                    |
|    Instance name....... [Instance name]                                                          |
|    Network address...... [IP]                                                                    |
|    Operating system... Linux                                                                     |
|                                                                                                  |
|    Database server... [Database server]                                                          |
|    Database type..... HDB                                                                        |
|    Database name..... [Database name]                                                            |
|    Database user ID [Database user]                                                              |
|                                                                                                  |
|    Terminal.......... [Terminal]                                                            	   |
|                                                                                                  |
|    Database............. HANA 1.0, HANA 2.0                                                      |
|    SAP database version. 777                                                                     |
|    Operating system... Linux                                                                     |
|                                                                                                  |
|    Memory consumption                                                                            |
|    EM...... 19332640                                                                             |
|    Heap.... 0                                                                                    |
|    Page.... 188416                                                                               |
|    MM used. 6614088                                                                              |
|    MM free. 880800                                                                               |
|    EM...... 19332640                                                                             |
|    Heap.... 0                                                                                    |
|    Page.... 188416                                                                               |
|    MM used. 6614088                                                                              |
|    MM free. 880800                                                                               |
----------------------------------------------------------------------------------------------------

用户和事务

这部分列出了客户端、用户名、事务码、以及对应的程序和屏幕信息。

----------------------------------------------------------------------------------------------------
|用户和事务                                                                                        |
|    Client................. [Client]                                                              |
|    User.................. [User]                                                                 |
|    Language key.......... 1                                                                      |
|    Transaction......... [Transaction]                                                            |
|                                                                                                  |
|    Program....................... CL_FINS_ACDOC_POSTING_INTF====CP                               |
|    Screen......................... SAPLKO71                                1000                  |
|    Screen line.................... 38                                                            |
|    Debugger interpretor loop... "none"                                                           |
----------------------------------------------------------------------------------------------------

发生了什么

这部分列出了错误发生的相关情况,比如下面的信息告诉我们:自开发程序"ZHRR_0001" 遇到了一个不能执行的语句而终止了。

----------------------------------------------------------------------------------------------------
|发生了什么?                                                                                      |
|    Error in the ABAP application program.                                                        |
|                                                                                                  |
|    The current ABAP program "ZHRR_0001" had to be terminated because it found a                  |
|    statement that could not be executed.                                                         |
----------------------------------------------------------------------------------------------------

短文本

这部分列出了错误的短文本,比如下面的信息告诉我们:变量" 1,883.79"不能转换成number类型。

----------------------------------------------------------------------------------------------------
|短文本                                                                                            |
|    " 1,883.79" cannot be interpreted as a number                                                 |
----------------------------------------------------------------------------------------------------

错误分析

这部分列出了错误分析,比如下面的信息告诉我们:

  • 异常类“CX_SY_CONVERSION_NO_NUMBER”没有被CATCH或RAISING,所以程序中止了;
  • 错误的原因是:程序希望把变量" 1,883.79"转换成number类型,由于这个值违反了number显示的规则,所以是不可能的。
----------------------------------------------------------------------------------------------------
|错误分析                                                                                          |
|    An exception has occurred in class "CX_SY_CONVERSION_NO_NUMBER". This                         |
|     exception was not caught                                                                     |
|    in procedure "FRM_WRITE_DATA" "(FORM)" or propagated by a RAISING clause.                     |
|    Since the caller of the procedure could not have anticipated this                             |
|    exception, the current program was terminated.                                                |
|    The reason for the exception occurring was:                                                   |
|    The reason for the exception is:                                                              |
|    An attempt was made to interpret value " 1,883.79" as a number.                               |
|    As this value contravenes the rules for displaying numbers correctly,                         |
|    this was not possible.                                                                        |
----------------------------------------------------------------------------------------------------

异常对象的链

这部分列出了异常对象的链的信息,比如下面的信息告诉我们:

  • 异常类是:CX_SY_CONVERSION_NO_NUMBER
  • 程序是:ZHRR_0001
  • 包含文件是:ZHRR_0001_FRM
  • 行号是:564
  • 短文的是:无法将参数 ’ 1,883.79’ 解释为数字
  • 长文本是:参数 ’ 1,883.79’ 无法正确显示为数字。
----------------------------------------------------------------------------------------------------
|异常对象的链                                                                                      |
----------------------------------------------------------------------------------------------------
|级别         类                                                                                   |
|属性名称                       值                                                                  |
----------------------------------------------------------------------------------------------------
|1            CX_SY_CONVERSION_NO_NUMBER                                                           |
|(程序)                       ZHRR_0001                                                           |
|(包含文件)                   ZHRR_0001_FRM                                                        |
|(行)                         564                                                                 |
|(短文本)                     无法将参数 ' 1,883.79' 解释为数字                                      |
|(长文本)                       参数 ' 1,883.79' 无法正确显示为数字。                                  |
|IS_RESUMABLE                                                                                      |
|KERNEL_ERRID                   CONVT_NO_NUMBER                                                    |
|VALUE                           1,883.79                                                          |
----------------------------------------------------------------------------------------------------

关于在何处终止的信息

这部分列出了错误发生的位置,比如下面的信息告诉我们:

  • 异常类“CX_SY_CONVERSION_NO_NUMBER”发生在程序“ZHRR_0001”,包含文件“ZHRR_0001_FRM”,第564行
----------------------------------------------------------------------------------------------------
|关于在何处终止的信息                                                                              |
|    The termination occurred in ABAP program or include "ZHRR_0001", in                           |
|     "FRM_WRITE_DATA". The                                                                        |
|    main program was "ZHRR_0001".                                                                 |
|                                                                                                  |
|    In the source code, the termination point is in line 564 of include                           |
|     "ZHRR_0001_FRM".                                                                             |
|    include "ZHRR_0001_FRM".                                                                      |
|    The termination is due to exception "CX_SY_CONVERSION_NO_NUMBER" occurring in                 |
|     procedure "FRM_WRITE_DATA" "(FORM)",                                                         |
|    but not being handled locally there or being declared in the RAISING                          |
|    clause.                                                                                       |
|    The procedure is in program "ZHRR_0001". Its source code begins in line 383 of                |
|    include "ZHRR_0001_FRM".                                                                      |
----------------------------------------------------------------------------------------------------

源代码

这部分列出了相关源代码,比如:


----------------------------------------------------------------------------------------------------
|源代码提取 				                                                                         |
----------------------------------------------------------------------------------------------------
|行   |代码                                                                                        |
----------------------------------------------------------------------------------------------------
|  557|      "确定字段值                                                                           |
|  558|      CLEAR gv_fname.                                                                       |
|  559|      gv_fname = |F{ gs_inspyb-slnr }|.                                                     |
|  560|      ASSIGN COMPONENT gv_fname OF STRUCTURE <gs_table> TO <gv_value>.                      |
|  561|      CHECK <gv_value> IS ASSIGNED."确定有指向成功                                          |
|  562|      CHECK <gv_value> IS NOT INITIAL."确定值不为空,空值不对此列进行处理                   |
|  563|      CLEAR lv_betrg.                                                                       |
|>>>>>|      lv_betrg = <gv_value>.                                                                |
|  565|      CLEAR:lv_type, lv_msg.                                                                |
----------------------------------------------------------------------------------------------------

系统变量

这部分列出了系统变量的值,比如:

----------------------------------------------------------------------------------------------------
|系统字段的内容                                                                                    |
----------------------------------------------------------------------------------------------------
|名称    |值                                                                                       |
----------------------------------------------------------------------------------------------------
|SY-SUBRC|0                                                                                        |
|SY-INDEX|1                                                                                        |
|SY-TABIX|13                                                                                       |
|SY-DBCNT|0                                                                                        |
|SY-FDPOS|1                                                                                        |
|SY-LSIND|0                                                                                        |
|SY-PAGNO|0                                                                                        |
|SY-LINNO|1                                                                                        |
|SY-COLNO|1                                                                                        |
|SY-PFKEY|STANDARD                                                                                 |
|SY-UCOMM|ZWRITE                                                                                   |
|SY-TITLE|薪资数据导入表                                                                           |
|SY-MSGTY|W                                                                                        |
|SY-MSGID|PG                                                                                       |
|SY-MSGNO|203                                                                                      |
|SY-MSGV1|2023-01-01                                                                               |
|SY-MSGV2|9999-12-31                                                                               |
|SY-MSGV3|                                                                                         |
|SY-MSGV4|                                                                                         |
|SY-MODNO|0                                                                                        |
|SY-DATUM|20230219                                                                                 |
|SY-UZEIT|132031                                                                                   |
|SY-XPROG|SAPMSSY1                                                                                 |
|SY-XFORM|XAB_WFLUSH                                                                               |
----------------------------------------------------------------------------------------------------

程序变量

这部分列出了程序变量的值,比如:

----------------------------------------------------------------------------------------------------
|已选择的变量                                                                                      |
----------------------------------------------------------------------------------------------------
|名称                                                                                              |
|    值                                                                                            |
----------------------------------------------------------------------------------------------------
|号        9 型           FORM                                                                     |
|名称  FRM_WRITE_DATA                                                                              |
----------------------------------------------------------------------------------------------------
|<%_L002>-INFTY                                                                                    |
|    ???                                                                                           |
|    ??????                                                                                        |
|    ??????                                                                                        |
|    ????????????                                                                                  |
|GC_0008                                                                                           |
|    0008                                                                                          |
|    3333                                                                                          |
|    0008                                                                                          |
|    0000                                                                                          |
|    0000                                                                                          |
|    3000300030003800                                                                              |
|GV_FNAME                                                                                          |
|    F000031                                                                                       |
|    433333322222222222222222222222                                                                |
|    600003100000000000000000000000                                                                |
|    000000000000000000000000000000                                                                |
|    000000000000000000000000000000                                                                |
|    4600300030003000300033003100200020002000200020002000200020002000200020002000200020002000200020|
|GS_INSPYB-SLNR                                                                                    |
|    000031                                                                                        |
|    333333                                                                                        |
|    000031                                                                                        |
|    000000                                                                                        |
|    000000                                                                                        |
|    300030003000300033003100                                                                      |
|<GV_VALUE>                                                                                        |
|     1,883.79                                                                                     |
|    2323332332222222222222222222222222222222222222222222222222222222222222222222222222222222222222|
|    01C883E790000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    200031002C003800380033002E00370039002000200020002000200020002000200020002000200020002000200020|
|<GS_TABLE>                                                                                        |
|    {@09@;;;;30113113;陈建涛;20230101;410324197312020015;;;;;;;;;;;;;;;;1000;;;;;;;;; 1,883.79;;;>|
|    4030304020202020202020202020202020202020202020202020202020202020202020202020202020202020202020|
|    0000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    4000300039004000200020002000200020002000200020002000200020002000200020002000200020002000200020|
|GS_INSPYB-LGART                                                                                   |
|    2004                                                                                          |
|    3333                                                                                          |
|    2004                                                                                          |
|    0000                                                                                          |
|    0000                                                                                          |
|    3200300030003400                                                                              |
|LV_BETRG                                                                                          |
|    0.00                                                                                          |
|    00000000                                                                                      |
|    0000000C                                                                                      |
|    000000000000000C                                                                              |
|LV_TYPE                                                                                           |
|    S                                                                                             |
|    5                                                                                             |
|    3                                                                                             |
|    0                                                                                             |
|    0                                                                                             |
|    5300                                                                                          |
|LV_MSG                                                                                            |
|                                                                                                  |
|    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222|
|    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|
|    2000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020|
|GS_INSPYB-INFTY                                                                                   |
|    0014                                                                                          |
|    3333                                                                                          |
|    0014                                                                                          |
|    0000                                                                                          |
|    0000                                                                                          |
|    3000300031003400                                                                              |
|GC_0014                                                                                           |
|    0014                                                                                          |
|    3333                                                                                          |
|    0014                                                                                          |
|    0000                                                                                          |
|    0000                                                                                          |
|    3000300031003400                                                                              |
|GC_SEL                                                                                            |
|    SEL                                                                                           |
|    544222222222222222222222222222                                                                |
|    35C000000000000000000000000000                                                                |
|    000000000000000000000000000000                                                                |
|    000000000000000000000000000000                                                                |
|    530045004C002000200020002000200020002000200020002000200020002000200020002000200020002000200020|
|LV_ENDDA                                                                                          |
|    99991231                                                                                      |
|    33333333                                                                                      |
|    99991231                                                                                      |
|    00000000                                                                                      |
|    00000000                                                                                      |
|    39003900390039003100320033003100                                                              |
----------------------------------------------------------------------------------------------------

调用堆栈

这部分列出了调用堆栈的信息,比如:

----------------------------------------------------------------------------------------------------
|活动调用/事件                                                                                     |
----------------------------------------------------------------------------------------------------
|号    型           程序                                包括                                行     |
|      名称                                                                                        |
----------------------------------------------------------------------------------------------------
|    9 FORM         ZHRR_0001                           ZHRR_0001_FRM                         564  |
|      FRM_WRITE_DATA                                                                              |
|    8 FORM         ZHRR_0001                           ZHRR_0001_FRM                         353  |
|      FRM_USER_COMMAND                                                                            |
|    7 METHOD       SAPLSLVC_FULLSCREEN                 LSLVC_FULLSCREENHUB                    58  |
|      LCL_OM_FULLSCREEN_HUB=>IF_SALV_GUI_OM_FULLSCREEN_HUB~USER_COMMAND                           |
|    6 FORM         SAPLSLVC_FULLSCREEN                 LSLVC_FULLSCREENF01                   994  |
|      USER_COMMAND                                                                                |
|    5 FORM         SAPLSLVC_FULLSCREEN                 LSLVC_FULLSCREENF01                  1149  |
|      PAI                                                                                         |
|    4 MODULE (PAI) SAPLSLVC_FULLSCREEN                 LSLVC_FULLSCREENI01                     4  |
|      PAI                                                                                         |
|    3 FUNCTION     SAPLSLVC_FULLSCREEN                 LSLVC_FULLSCREENU05                    91  |
|      REUSE_ALV_GRID_DISPLAY_LVC                                                                  |
|    2 FORM         ZHRR_0001                           ZHRR_0001_FRM                         320  |
|      FRM_DISPLAY_DATA                                                                            |
|    1 EVENT        ZHRR_0001                           ZHRR_0001                              73  |
|      END-OF-SELECTION                                                                            |
----------------------------------------------------------------------------------------------------

相关 ABAP 程序列表

这部分列出了相关 的ABAP 程序列表,比如:

----------------------------------------------------------------------------------------------------
|相关 ABAP 程序列表                                                                                |
----------------------------------------------------------------------------------------------------
|索引  |型 |程序                                    |组    |日期      |时间    |大小     |语言     |
----------------------------------------------------------------------------------------------------
|     0|Prg|ZHRR_0001                               |     0|2022-06-20|18:53:08|   332800|1        |
|     1|Prg|SAPMSSY0                                |     1|2022-06-20|18:54:55|   119808|1        |
|     2|Prg|SAPMSSYD                                |     1|2020-09-12|17:16:38|    32768|1        |
|     3|Prg|SAPFSYSCALLS                            |     1|2015-06-01|12:30:31|     7168|1        |
|     4|Prg|RSDBRUNT                                |     0|2018-05-28|12:04:00|   317440|1        |
|     5|Typ|RSSCR                                   |     0|2013-05-31|08:11:11|     6144|         |
|     6|Prg|RSDBSPBL                                |     0|2018-05-28|11:35:51|    81920|1        |
|     7|Prg|SAPDB__S                                |     0|2015-06-08|13:45:40|    20480|1        |
|     8|Typ|VARID                                   |     0|1997-05-12|16:51:30|     5120|         |
|     9|Typ|SSCRFIELDS                              |     0|2013-05-31|08:13:14|     5120|         |
|    10|Prg|RSDBSPVA                                |     0|2018-05-28|12:07:23|   173056|1        |
|    11|Prg|%_CSYDB0                                |     0|2018-05-28|11:35:51|    39936|1        |
|    12|Typ|RSVAMEMKEY                              |     0|1997-05-07|13:07:49|     3072|         |
|    13|Prg|RSDBSPMC                                |     0|2018-05-28|11:35:51|    92160|1        |
|    14|Typ|DDSHDESCR                               |     0|1997-09-03|03:05:16|     4096|         |
|    15|Typ|SPPARAMS                                |     0|1997-05-07|13:10:38|     2048|         |
...

小结

由于ST22运行时分析工具的相关信息很多,如何通过得到的信息快速判断问题原因,以及进行程序优化?

以下总结了几点建议,供参考:

  1. 通过基本信息得到运行时错误及异常类,比如上面示例的“CONVT_NO_NUMBER,CX_SY_CONVERSION_NO_NUMBER”;
  2. 通过短文本和错误分析得到问题原因,比如上面示例的“变量" 1,883.79"不能转换成number类型”;
  3. 通过异常对象的链、关于在何处终止的信息、源代码得到问题发生的位置,比如上面示例的“程序“ZHRR_0001”,包含文件“ZHRR_0001_FRM”,第564行”;
  4. 通过系统变量、程序变量的得到问题发生的运行时变量;
  5. 通过调用堆栈、相关 ABAP 程序列表得到问题发生的程序调用情况。

一般情况下,了解了以上1 - 3的内容,即可顺利掌握问题原因以及优化方案。特殊情况下,则需要通过4 - 5的内容,辅助分析问题的发生过程,进一步判断问题原因及优化方案。

原文转载自:SAP ST22 - ABAP运行时错误分析工具

[^1]:ABAP Dump Analysis

  • 26
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值