专栏首页Jerry的SAP技术分享一个好用的SAP ABAP工作进程跟踪工具

一个好用的SAP ABAP工作进程跟踪工具

As an ABAPer we have SAT, ST05 ( or sometimes ST12 ) for trace in our toolbox, and recently I find this report which could also do the trace job.

Although the trace information it generates is quite technical and perhaps more useful for those guys who are interested with the ABAP kernel.

How to use this report

(1) SE38, execute report RSTRC000, mark the checkbox “Keep Work process”, so that a free work process will be owned exclusively by you unless you release it via this report again. And change the trace Level to 2: Full trace. Select the component which you would like to trace, for example Database.

Click save button and you can see the work process 23 is locked.

you could observe that the work process 23 has status “halt” in tcode SM50.

(2) Now it is ready to run the program which you would like to trace ( just the similar process as SAT or ST05 ). Use /nse38 to go to ABAP editor starting from the current screen of report RSTRC000, and run your program. For me, I just run a report which will query material data from database table COMM_PRODUCT. Once the program finishes, run report RSTRC000 again.

click button “Default val.” so that trace Level is changed to 1 automatically,

then click save button and you could observe the previously locked work process 23 is released.

Now you could click “Display” button to review trace log:

You could export the trace locally to review it. For me I prefer to use my favourite text editor “sublime text” to review text file. Here below I just list the trace review of several trace component which I have already tried myself.

Database log

from the log, I could find which database tables are involved in the report execution and which ABAP program triggers such access. Some C language call could be observed but due to security or authority reasons maybe, we could not review the source file like ablink.c in folder /bas/*.

We could also find the detail OPEN SQL statement from the log, however I could not find the value of query parameter as shown below – they are displayed as ? in the trace.

ABAP proc.

It just lists all the ABAP class which are involved in the report execution but without method name of those class. In my case from the trace I can just know there are totally 40 different ABAP class with prefix CL_CRM_PROD* ( which are responsible by me) involved in the execution.

Database (DBSL)

Since we are currently use HANA as our database, I could have a very draft understanding about how the OPEN SQL like SELECT XXX FROM table statement is executed in HANA.

Lock Management

This time I would like to trace the lock behavior in tcode COMMPR01. I switch to edit mode which triggers a lock request to enqueue server to lock the product and then I make changes on its description field.

in the trace this enqueue request is perfectly recorded:

  • the enqueue object
  • the database table on which the enqueue object is working
  • the guid of the product instance being locked
  • the tcode name COMMPR01
  • the user which triggers the enqueue request

From my point of view this option is a good substitute for the enqueue trace in ST05.

Background

I run my report ZHANA_OBJECT_SEARCH in the background and

and I could see from the job log that it is successfully executed.

and this information is also available in RSTRC000 trace:

I didn’t try all the other trace options and maybe they are useful under some extreme use cases. If you are interested, you can start now try it yourself

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在SAP WebClient UI里使用AJAX进行异步数据读取

    For POC purpose I need to implement the AJAX functionality in Webclient UI compo...

    Jerry Wang
  • 如何启用SAP Business by design里的Correction Invoice功能

    Subject: [Tip] How to enable the function Correction Invoice for customer invoic...

    Jerry Wang
  • 使用SAP Transaction Launcher将ABAP Webdynpro嵌入到WebClient UI中

    THINK twice why you want to include an ABAP webdynpro component into CRM UI, as ...

    Jerry Wang
  • Fix Notification Switching Position Issue

    I once faced with a problem. I wrote a piece of code related with notifcation. E...

    技术小黑屋
  • nano:基本操作

    JNingWei
  • OpenCV 利用getTickCount()与getTickFrequency()计算执行时间

    其实这是个很简单的应用,贴出来是因为我经常能用到这两个函数,顺便写一下吧。 double t1 = (double)getTickCount(); . . . ...

    chaibubble
  • CodeForces 665B Shopping

    B. Shopping time limit per test 1 second memory limit per test 256 megabyt...

    ShenduCC
  • HOJ-2056 Bookshelf(线性动态规划)

    L is a rather sluttish guy. He almost never clean up his surroundings or regulat...

    ShenduCC
  • 聊聊flink的RichParallelSourceFunction

    flink-streaming-java_2.11-1.6.2-sources.jar!/org/apache/flink/streaming/api/func...

    codecraft
  • 聊聊flink的RichParallelSourceFunction

    flink-streaming-java_2.11-1.6.2-sources.jar!/org/apache/flink/streaming/api/func...

    codecraft

扫码关注云+社区

领取腾讯云代金券