Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
JerryWang
Advisor
Advisor
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.



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



And then I see error in UI.



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




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.



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.



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



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



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.



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.



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



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


2 Comments