Monday, April 22, 2013

Searching for breakpoints

Last week I had a look at the BI systems systemlog, and I found to my horror that someone (this was a generic job scheduling user, so no help there) had run a program (dynamic so no help there) that threw a lot of errors in the system log due to a breakpoint.I was down to about 2 minutes of logging. Hardly an ideal situation. Not to mention that some poor soul had some problems getting his program to work.




Armed with no dumps, no username, no jobname and a desire to avoid these thousands of errors, I dived into the problem.
My first thought was to find a way to determine the name of the actual program rather than the dynamic name. I even managed to find a function module that would translate the dynamic name in to a program name. However, that appeared to work for only function calls, not programs.

No help there. I then dived into the tracefiles in ST11. No joy. SM37.... there had to be something there. After all, it was a batch process. But no failures there. Apparently the break point is a perfectly valid command, so all batchjobs complete successfully. and all of the batchjobs at the time were pointing to the BI bacth manager. there were thousands of jobs scheduled. Again no help.

So I decided to bite the bullet and look for the source code. I found many less helpfull suggestions on the web. One was transaction EWK1. I have no idea when this was dropped, but it certainly doesn't exist in any of our systems. then someone suggested using the global search in SE80. However, I found that this requires spefici add-ons to be installed.again others suggested TREX, but that required that I attach a TREX and added all the code. Someone suggested using program RSRSCAN1, but this is pretty useless in an SAP system, as this only supports very old object names. I finally found RPR_ABAP_SOURCE_SCAN, but much to my dismay, this program was not present in our BI system, even though it was there in the ECC. But now i had hope. I tried looking at the code that I had working in the ECC, and found that all it did was calling another program: ABAP_SOURCE_SCAN. I crossed my fingers and tried running this program directly in our BI system, and lo and behold it worked !



I was able to search through all object type, and select only the active pieces of code too. This looks very similar to the code ferret in SALT. Really nice.... I was now able to identify only a few programs that had the active "break-point." code in them. Time to cleanup....






No comments:

Post a Comment