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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go 語言的原子操作和互斥鎖的區別Go
- SAP UI5 StandardListItem和ObjectListItem的區別UIObject
- SAP UI5 CSS 類 sapUiSmallMarginEnd 的工作和新增原理UICSS
- batch、epoch、iteration的區別BAT
- SAP UI5 batch 請求的響應解析流程分析UIBAT
- 在 SAP BAS 裡使用 SAP UI5 應用消費 OData 的 Create 和 Delete 操作UIdelete
- SAP UI5 和 OpenUI5 的區別和聯絡UI
- SAP UI5 框架是如何執行 batch 請求的單步除錯UI框架BAT除錯
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- SAP MTA 裡定義 SAP UI5 module 的一個例子UI
- SAP ABAP CDS view 裡 INNER JOIN 和 Association 的區別View
- SAP UI5和angular裡的常量定義UIAngular
- SAP UI5應用裡的列表處理UI
- 關於 SAP UI5 裡包含的 jQuery 版本UIjQuery
- while read line 與for迴圈的區別While
- 熟悉常用的Linux操作和Hadoop操作LinuxHadoop
- 如何操作SAP UI5應用Footer區域工具欄按鈕的背景顏色UI
- flink batch dataset 的基本操作BAT
- NgRx 裡 first 和 take(1) 操作符的區別
- SAP UI5 檢視裡的 OverflowToolbar 控制元件UI控制元件
- flowable的查詢操作和刪除操作
- SAP ABAP OData 服務的 $count 和 $inlinecount 兩個操作的區別inline
- SAP Cloud for Customer裡BusinessPartner, Customer和Employee這些BO的區別Cloud
- SAP UI5應用裡搜尋功能的實現UI
- SAP UI5應用裡的頁面路由處理UI路由
- SAP UI5 index.html 裡的 bootstrap script 介紹UIIndexHTMLboot
- SAP UI5 裡的 Busy Dialog 控制元件使用概述UI控制元件
- SAP UI5 裡的 Busy Indicator 控制元件使用概述UIIndicator控制元件
- 什麼是 JavaScript 裡的非同步操作和回撥函式JavaScript非同步函式
- 圖的基本操作和實現
- SAP S/4HANA裡extension include view和extension view的區別View
- SAP 電商雲 Spartacus UI SSR 裡 engine 和 engine instance 的區別UI
- SAP ABAP OData 服務裡 EntityType 和 EntitySet 的區別試讀版
- SAP UI5應用裡型別為Edm.DateTime的日期控制元件設計原理UI型別控制元件
- HBase實操:HBase-Spark-Read-Demo 分享Spark
- SAP UI5 Web Component裡如何自定義CSS styleUIWebCSS
- 如何把SAP UI5應用部署到SAP雲平臺的Fiori Launchpad裡去UI
- SAP UI5 Responsive Grid Layout 裡的 Label-Field Ratio 在螢幕型別 S 下的表現UI型別