In my blog Timeout page and WebUI freezing issue – Another causethe behavior that a time out page is displayed in UI, although there is no time out at all but instead some exception occurred in ABAP backend. From my point of view this time out page is misleading. In that blog I share one of my example how to find the root cause which causes the ABAP exception in an efficient way.

In this document I will explain to you why the time out page is designed to be rendered after some backend exception occurs.

First I need to find a scenario which will trigger an ABAP backend exception. Fortunately I have already one at hand ( I should not say fortunately since this scenario is responsible by my team and I need to fix it anyway):

After I click F4 on field Base Category, a popup window is expected to appear.

/wp-content/uploads/2014/03/clipboard1_420672.png

However due to a bug in my code, there is one runtime error in ABAP backend:

/wp-content/uploads/2014/03/clipboard2_420673.png

And then I see error in UI.

/wp-content/uploads/2014/03/clipboard3_420689.png

After I click any place in UI, I see the time out page below.

/wp-content/uploads/2014/03/clipboard4_420690.png

How to find the logic why this time out page is chosen and rendered by UI Framework

In the beginning I am not clear where to set breakpoint to debug as this timeout page rendering is implemented via UI framework.

So I plan to have a try with HTTP Professional.

/wp-content/uploads/2014/03/clipboard5_420691.png

I click “Record” button in toolbar to enable trace mode, and reproduce my operation in UI. Immediately I observed there is HTTP 500 error recorded. The log tells me that it tries to get a popup window but failed with result HTTP/1.1 500 Internal Server Error.

/wp-content/uploads/2014/03/clipboard6_420695.png

Right after the 500 error, there is a HTTP 302 redirection and the redirected target is CRM_UI_FRAME/logon_error.htm.

/wp-content/uploads/2014/03/clipboard7_420696.png

Click “Content” tab, it also shows error detail including ABAP callstack.

/wp-content/uploads/2014/03/clipboard8_420697.png

Now we can start trouble shooting in ABAP side. Quickly I notice the text in timeout page is stored in variable

application->gv_logon_error_message. Again use Where Used function in ABAP workbench and set breakpoint in hit, then reproduce the scenario one again.

/wp-content/uploads/2014/03/clipboard9_420698.png

Break-point is triggered as expected. Here due to 500 error, the popup name could not be got, so a session restart is planned as documented in comment 53.

I just do not understand why my UI framework colleague choose the OTR text TIMEOUT1. IMHO a text like “Some error happened, restart your session” is perhaps better.

/wp-content/uploads/2014/03/clipboard10_420699.png

Then the JavaScript for session restart is filled and redirection is launched as below:

/wp-content/uploads/2014/03/clipboard11_420700.png

Put the mouse on hyperlink and we will see redirection Javascript hint:

/wp-content/uploads/2014/03/clipboard12_420704.png

To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

Leave a Reply