sap系统中的batch_SAP UI5里Batch操作和Read操作的区别

I would like to share with you my story today about fighting with one customer incident.

We can make changes on Appointment and click save button:

e2d64a0468f53a925f164fddac230c7e.png

There is a batch operation observed in Chrome network tab to update appointment as expected. However, why every time there are three subsequent appointment read roundtrips?

64cd443a6361bc5e0c8daf0b3fa1af1f.png

The callstack clearly shows that the three roundtrips are NOT issued by customer extension, or else the customer js file could be observed in the callstack.

549111b01cb7edb40be83ebb00117d09.png

Set a breakpoint on the top most callstack, h function. Check the content of e.target.data:

b24dbf4d3a80cbcb75a818695875b6a8.png

This is actually the batch request payload which could be observed in Chrome network tab:

dd74698751c2dd7cbc773ca1c1162338.png

This finding gives me more confidence that these roundtrips are issued by framework, not standard or customer application code.

So I just continue debugging until I reach this suspicious stack:

b9d3c3ff6fb804b81cffbc21a5a9cac3.png

in line 1957, this.bRefreshAfterChange = true.

8a1f2b8e9371e8f1206505d1f3283d91.png

However, in our internal system ( where everything works fine, there is no duplicate read operations ), this.bRefreshAfterChange = false, which has suppressed the refresh operation. This is the reason why the read operation could not be found in my internal system, since they are not executed at all. But in customer system, _isRefreshNeeded returns true, which leads to the execution of all subsequent read operations.

fd861a3f11bb8d21737fd513692cca9b.png

So why is this difference between two systems? In Chrome development tool, search the boolean variable name and we found one function setRefreshAfterChange defined for ODataModel. Just set a breakpoint in this method and re-launch the application in my internal system from beginning:

1325714d81015b688bd2b66855d2455a.png

Breakpoint is triggered:

72fa56643fe84c3350fd9de1cf0bf2ba.png

However, this line in customer system is missing, which is the root cause – our latest standard code didn’t reach customer system.

After I found the root cause, I search in SCN to check whether there are other poor guy which had encountered the same issue with me, and actually I found one:http://scn.sap.com/thread/3724174

3fb2b546832a5fd4efeab2a279eb1b3d.png

If I read this thread several months earlier, I would save my hours’ debugging today.

d158ee606c865f12bc56bde4554ff4cf.png

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

b0dc89a8778f8f42f17da2081659998f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值