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:
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?
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.
Set a breakpoint on the top most callstack, h function. Check the content of e.target.data:
This is actually the batch request payload which could be observed in Chrome network tab:
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:
in line 1957, this.bRefreshAfterChange = true.
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.
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:
Breakpoint is triggered:
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/3724 174
If I read this thread several months earlier, I would save my hours’ debugging today.
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2718379/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP UI5 StandardListItem和ObjectListItem的區別UIObject
- SAP UI5 CSS 類 sapUiSmallMarginEnd 的工作和新增原理UICSS
- Go 語言的原子操作和互斥鎖的區別Go
- SAP UI5 batch 請求的響應解析流程分析UIBAT
- batch、epoch、iteration的區別BAT
- 在 SAP BAS 裡使用 SAP UI5 應用消費 OData 的 Create 和 Delete 操作UIdelete
- SAP UI5 和 OpenUI5 的區別和聯絡UI
- SAP MTA 裡定義 SAP UI5 module 的一個例子UI
- SAP UI5和angular裡的常量定義UIAngular
- SAP UI5應用裡的列表處理UI
- 關於 SAP UI5 裡包含的 jQuery 版本UIjQuery
- SAP UI5 框架是如何執行 batch 請求的單步除錯UI框架BAT除錯
- SAP ABAP CDS view 裡 INNER JOIN 和 Association 的區別View
- read name 和 read 在 Bash 中的區別
- read repeatable&read committed 區別MIT
- 聊聊jdbc的batch操作JDBCBAT
- read committed 和 repeatable read 上鎖的區別MIT
- SAP UI5應用裡的頁面路由處理UI路由
- SAP UI5應用裡搜尋功能的實現UI
- SAP UI5 裡的 Busy Indicator 控制元件使用概述UIIndicator控制元件
- SAP UI5 檢視裡的 OverflowToolbar 控制元件UI控制元件
- SAP UI5 index.html 裡的 bootstrap script 介紹UIIndexHTMLboot
- NgRx 裡 first 和 take(1) 操作符的區別
- 如何操作SAP UI5應用Footer區域工具欄按鈕的背景顏色UI
- SAP 批次管理(Batch management)BAT
- SAP UI5 裡的 Busy Dialog 控制元件使用概述UI控制元件
- 什麼是 JavaScript 裡的非同步操作和回撥函式JavaScript非同步函式
- UPDATE操作和UNDO
- SAP S/4HANA裡extension include view和extension view的區別View
- SAP 電商雲 Spartacus UI SSR 裡 engine 和 engine instance 的區別UI
- 「SAP技術」SAP業務操作查詢裡的萬用字元字元
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- flowable的查詢操作和刪除操作
- pread,pwrite,read,write區別
- SAP UI5 Web Component裡如何自定義CSS styleUIWebCSS
- SAP UI5應用裡型別為Edm.DateTime的日期控制元件設計原理UI型別控制元件
- flink batch dataset 的基本操作BAT
- SAP ABAP OData 服務裡 EntityType 和 EntitySet 的區別試讀版