SAP CRM WebClient UI的Delta處理機制介紹
A real case which is related to Automatic Delta Handling
I use a ticket which I am struggling with recently to start this blog. It took me almost the whole day to dig out the root cause. How to reproduce the issue – Just create a new Product by clicking new Product button:
The strange thing is, after button is clicked, I didn’t see the expected new product creation page. Instead, I saw the weird page below: the whole UI area almost kept unchanged except the page title changed from “Search:Products” to “Product: New”. Why the left product creation page failed to be rendered???
How I find the root cause
Since the UI page didn’t crash, there is no surprise that I didn’t find any related dumps in ST22.
I am 100% sure that there must be some exception occurred in the backend and caught by framework, but unfortunately without any message raised out in UI. So I use the tip described in my blog to start debugging. Several minutes later, I felt really frustrated since the breakpoint for ABAP keyword CATCH is triggered so frequently in UI framework processing. I was completely lost in the debugging. ( At that time I didn’t try conditional breakpoint group since I am not sure whether it could help) Then I asked for help from one colleague who is an UI expert. He suggested:” Hey, try to switch off delta handling and try again”. Wait, what is the delta handling? After exploring for quite a time I switched it off and retry, here below is the result under delta handling off mode:
Bingo! This time the framework did provide quite useful information to me – something wrong in overview page toolbar processing. I looked into GET_BUTTONS method and found there is a case that one initial reference variable is being used.
Once that line is executed,
The exception is caught by UI framework.
Here below is something more I want to share with you regarding Automatic delta handling
What is Delta Handling mechanism in Webclient UI?
The Delta Handling is a collection of mechanisms to reduce the rendering time on the client and the network load when transporting the request and response between server and client. It consists of Manual delta handling ( out of scope of this blog) and Automatic delta handling. The Manual Delta Handling bases on the tag library TAJAX. With this library we can define areas on views and rules for updating these areas basing on events.
In most of the case Automatic Delta Handling (ADT) is used. The ADH uses also the technique provided by the tag library TAJAX. Instead of defining complex rules for dependencies between TAJAX-areas, when the page is being prepared for the rendering, ADH detects which areas (e.g. views) of the page have changed. Only such changed areas are then redrawn in the browser. It is nearly transparent for we application developer, as long as there is no too complicated JavaScript used in the UI page. If you are interested with this, you could read the comment on method CL_AJAX_UTILITY->SHOULD_RENDER and debug it.
Where is ADT mode configured
Suppose I log on to UI via business role TPM_PRO, which has DEFAULT as the technical profile:
In the SPRO customizing Customer Relationship Management->UI Framework->Technical Role Definition->Define Technical Profile Here we can enable or disable the ADT:
How to switch off ADT temporarily
Tcode: SU3, select “Parameters” TAB, and add the following user parameter “CRM_TAJAX_DH_MODE” and set it to “OFF”
Make sure you close the browser and open a new one after the change.
How can I permanently switch off my view for ADH
All UI component views which are not supported for ADH are centrally maintained in view BSPWDV_ADH_DSBL via SM31:
My colleague gave me such suggestion: When you find your UI component works abnormally, it could be helpful to run your UI component with ADT switched off, which sometimes can give you some hint.
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2709638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP CRM WebClient UI異常的持久化機制WebclientUI持久化
- SAP CRM WebClient UI和Hybris Commerce的懶載入機制WebclientUI
- SAP CRM WebClient UI上將text area裡的文字清空的後臺處理WebclientUI
- ABAP Webdynpro和CRM WebClient UI不同的UI表現機制WebclientUI
- SAP WebClient UI配置決定(configuration)的邏輯介紹WebclientUI
- SAP WebClient UI和business switch相關的邏輯介紹WebclientUI
- SAP CRM WebClient UI和Fiori UI混搭並存WebclientUI
- SAP WebClient UI頁面標籤的決定邏輯介紹WebclientUI
- SAP CRM WebClient UI和Hybris backoffice UI開發的相同點WebclientUI
- 將SAP CRM WebClient UI的表格匯出成PDFWebclientUI
- SAP CRM WebClient UI 支援的一些 url 引數WebclientUI
- SAP CRM WebClient UI html 格式的 Text 顯示邏輯WebclientUIHTML
- SAP CRM WebClient UI和Hybris的controller是如何被呼叫的WebclientUIController
- 使用Selenium自動化測試SAP CRM WebClient UIWebclientUI
- 在SAP CRM WebClient UI中用javascript觸發ABAP eventWebclientUIJavaScript
- SAP CRM WebClient UI Text Type 顯示的過濾邏輯WebclientUI
- SAP CRM WebClient UI的on_new_focus應該怎麼理解WebclientUI
- SAP CRM WebClient UI表格編輯模式的除錯明細WebclientUI模式除錯
- 在SAP CRM WebClient UI裡開啟ABAP Webdynpro頁面WebclientUI
- SAP CRM WebClient UI和ABAP Webdynpro頁面的互相跳轉WebclientUI
- SAP CRM WebClient UI Text 可編輯與否的控制邏輯WebclientUI
- SAP CRM WebClient UI cross component跳轉的一個具體例子WebclientUIROS
- Hybris service layer和SAP CRM WebClient UI架構的橫向比較WebclientUI架構
- SAP UI5 sap.ui.Device.media 的使用介紹UIdev
- SAP UI5 sap.ui.core.Element 的概要介紹UI
- SAP UI5 sap.ui.Device.media.RANGESETS 的使用介紹UIdev
- SAP CRM WebClient UI上以html格式顯示note的問題討論WebclientUIHTML
- 關於Delta Lake的ACID事務機制簡介
- SAP WebClient UI的白屏問題分析WebclientUI
- SAP UI5 sap.ui.export.Spreadsheet API 介紹UIExportAPI
- ABAP Webdynpro和WebClient UI不同的會話管理機制WebclientUI會話
- 如何把SAP CRM WebClient UI上某個欄位高亮加粗顯示WebclientUI
- UI5 Source code map機制的細節介紹UI
- SAP CRM附件模型的Authorization scope原理介紹模型
- Jerry答網友提問:SAP CRM WebClient UI裡的EXT,STRUCT等含義WebclientUIStruct
- 三種動態控制SAP CRM WebClient UI assignment block顯示與否的方法WebclientUIBloC
- SAP S/4HANA Cross Selling機制介紹ROS
- SAP Connection inbound郵件接收處理機制