android studio没有错误提示_明明没有发生超时错误,为什么SAP WebClient UI会显示超时错误提示?...

da60cd66f47c70ac04536c37e29fe6c4.png

In my blog Timeout page and WebUI freezing issue – Another cause, the 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.

631ca45b34a6cd97c8a946d4bb5cc812.png

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

33fefb22b574c39e431e4bc2e3a84a22.png

And then I see error in UI.

2cd06f3066e610d1017df32f3baafef7.png

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

6228beeca26e1468ab1c521bda02190f.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.

e8e7fc7d632dd0c8bd7f47cecd911d12.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.

97fa3207eeb40576d1198a17728dae76.png

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

c5ca813e8706ccdcbfc16ed719f1173c.png

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

ec13e6bc0b63a783906da9acc3eea63b.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.

54b5d124c6449ad22a0d428daf547372.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.

4470ebaf82dbccc7771826d87d42ae99.png

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

5c43533303014855fa5a2db8d83d3b5e.png

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

32f945795e976b3e6eff865a3ef24590.png

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

9ae5275b3767e667923a5fb4b28ea2d6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值