Do SAT trace on applications which could not be launched by SAT
We know that it is quite convenient to use transaction code SAT to trace traditional dialog application. However the application to be traced is not dialog application, for example, it is Webdynpro or Fiori application, the steps are not so straightforward. This blog Next Generation ABAP Runtime Analysis (SAT) – How to analyze program flow introduces the step how to trace such application with the help of “In Parallel Session” below.
This blog introduces a simple alternative to trace a web application, written based on SAP_BASIS 7.40.
In my Fiori application I use an odata service to return the share calendar of given colleague. The odata service is launched by Chrome extension, postman. I need to do performance trace on it.
Step1: since I know the entry point of this odata service implementation is located in line 12, I set breakpoint there and click send button in postman, breakpoint is triggered. Click “New Tool” icon:
Step2: Special Tools, launch Trace( SE30/ST05 ):
double click the icon below:
Now the status turns green, which means the ABAP trace is switched on.
Step3: set another breakpoint at the end of the traced code, and click F7 to reach there. double click the icon in column “On/off” again, and now status turns red – trace is deactivated. And you should see an icon under column “TraceFile” which means the trace file is generated.
Step4: go back to SAT and you could find the generated trace file. Double click it, and the left steps are the same as you trace the dialog application.
As you see in this blog, you can also use this way to launch ST05 trace whenever you like during your debugging. The only limitation is, as could be found from the SAT file description, “Trace started with kernel default values”, it is not possible to use your own customized trace variant to do the trace. If you do need some features which are only available by customizing trace variant, you have to use the steps mentioned in the blog.
Nice simple and crisp.
If I understood it correctly, I can take trace of any section of my backend code which is called via the web application.