SAP S/4HANA Customer Management裡的頁面搜尋結果的分頁顯示原理
You might also be interested with this blog Search Paging implementation in S/4HANA and CRM Fiori application.
The search implemented by WebClient UI framework in S/4HANA for Customer Management(called as S4CRM for short) does have paging mechanism with a small difference compared with other SAP products. Suppose I have specified the following search criteria:
In my test system I prepares lots of Service Request as test data, so 200 Service Requests found as expected. The results are divided into 10 pages with each page displaying 20 rows by default.
Two key points for paging implementation in CRM WebClient UI framework:
(1) Business data with number which equals to “max hit” value specified by end user is retrieved from database and held in application memory in ABAP backend server.
In my example above, the number is 200.
(2) As WebClient UI is a server-rendering technology, all html source code are prepared in ABAP server. The browser simply displays those html source code assembled in the backend. ABAP backend only renders source code for records which will be visible in current page.
Take my above example for illustration, after I click search button, 200 Service Requests are fetched and held in the given buffer implemented in Agent search application. WebClient UI framework then prepare html source code for first 20 Service Requests. When I click page index “2”, the source code for 21th~ 40th records are generated. If you woud like to get these two conclusions by yourself, you can following my research steps below.
(1) You can use ST05 to find out the exact code where the Service Requests are fetched from new CDS view in S4CRM: CRMS4_SERVHSRCH
Then the last record is discarded:
Set a breakpoint in view ICCMP_INBOX/INBOXRESULTVIEW.HTM, inspect variable “me” in debugger:
And use this reference path to find the 200 records held in BOL collection wrapper: {O:5768*\CLASS-POOL=CL_BSP_WD_COLLECTION_WRAPPER\CLASS=LCL_COLLECTION_REF}-IF_BSP_WD_COLLECTION_REF~COLLECTION
(2) When I click the page index “2”, the second page is displayed:
the assembed html source code for these rows with index from 21 to 40 could be observed in Http response sent from ABAP backend:
How does backend server know it should render rows starting with index 21? This index is passed by frontend via http request parameter ItemTree_visibleFirstRow. If you still have doubt about the prefix C36_W138_V139_, please refer to my blog WebClient UI element ID generation logic
Just set breakpoint on method CL_THTMLB_CELLERATOR~GET_REQUEST_PARAMETERS to figure out where the backend interprets this visibleFirstRow:
In BSP renderer class CL_THTMLB_CELLERATOR, this gv_visible_first_row is used as the starting index of current page – lv_current_row_index:
Then each rows’ cells are rendered within the loop against 8 columns visible in UI by default:
Table Columns header information are stored in lt_cellerator_cols:
For trouble shooting purpose you can inspect the final rendered html source code for current page in variable GT_TABLE_ENTRIES:
html source code for rows in second page starting from index 21:
and ends with index 40:
why gt_table_entries have 168 records? 20 records are displayed in a page by default plus one row for table column display, and in each row 8 columns are displayed with default configuration, as a result: ( 20 + 1 ) * 8 = 168
Further Reading and update for S4CRM
CRM One Order Model Redesign in S/4HANA for Customer Management 1.0 – Part 1 – this blog give you more detail about One Order Model Redesign and how One order readworks under this new adapted model in S/4HANA.
- Part 2 – continue with Part 1, focus on write scenario.
- Create Mass Products by code in S4HANA for Customer Management – this blog briefly introduces how CRM Product works in S/4HANA for Customer Management and provides the example how to create product using ABAP code.
- Create Mass Service document in S4HANA for Customer Management – How to create a huge volume of Service Order, Service Confirmation and Service Request by One Order function module
- One order extensibility in S4HANA for Customer Management – explain how to create extension field in S/4HANA for Customer Management using S/4 extension tool instead of Application Enhancement Tool(AET) originally used in SAP CRM
- One Order Partner Component model in S/4HANA for Customer Management – it is well known that in service document header and each item, it is possible to maintain multiple partners with different party roles. How is it handled in the new world?
- Step by step to create custom partner function in S4HANA for Customer Management
- One Order Status Component in S4HANA for Customer Management
- Best Practices for SAP S/4HANA for customer managementTwo processes are supported:
(1) Service Order Management
(2) IC Service Request ManagementThe package provides all accelerators needed to set up and test a system with these processes configured and ready to use.
It provides customers, partners and SAP the possibility to explore the solution quickly.
The package is also the basis for a engineered implementation service.
- How to create employee in S/4HANA for Customer Management
- Paging Implementation in S/4HANA for Customer Management
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2716193/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- S/4HANA for Customer Management裡的搜尋分頁處理
- SAP Hybris裡搜尋顯示結果的實現原理
- SAP Spartacus 產品搜尋頁面結果裡的 filter 設計明細Filter
- SAP S/4HANA Customer Management(CRM)模組的Partner模型設計模型
- 利用搜尋結果頁SEO的方法
- SAP S/4HANA Material Fiori應用的搜尋實現原理
- SAP UI 搜尋分頁技術UI
- SAP Spartacus B2B 頁面 Disable 按鈕的顯示原理
- 如何分頁顯示資料庫查詢結果?資料庫
- SAP Spartacus unit detail 頁面顯示後自動 focus 設定的原理AI
- 如何增加bing/google的搜尋每頁結果(未解決)Go
- SAP Spartacus B2B 頁面 Disable Confirmation 對話方塊的顯示原理
- 從 SAP 幫助文件的頁面,談談 SAP Content Management 的實現
- php分頁顯示PHP
- 如何建立HTML Mashup並插入到SAP Cloud for Customer標準頁面裡HTMLCloud
- SAP S/4HANA Material Fiori應用根據擴充套件欄位搜尋的實現原理套件
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- selenium 搜尋不到頁面最底部的按鈕
- 底部導航在一級頁面顯示,二級頁面不顯示
- pbootcms獲取結果頁面的搜尋keyword值和tag值boot
- Mybatis分頁外掛只顯示第一頁的問題MyBatis
- SAP CRM頁面assignment block動態顯示與否的控制邏輯BloC
- SAP Cloud Application Programming bookshop 例子 Vue頁面不能正常顯示的原因分析CloudAPPVue
- vue 3 頁面全屏顯示Vue
- SAP Customer Data Cloud(Gigya)的使用者搜尋實現Cloud
- SAP S/4HANA裡如何建立Customer主資料以及執行後續處理
- SAP UI5 列表控制元件分頁顯示資料時,如何自定義分頁大小UI控制元件
- chat-gpt-google-extension: 在谷歌搜尋結果中同時顯示ChatGPT結果的chrome外掛Go谷歌ChatGPTChrome
- SAP Spartacus B2B 頁面 Popover Component 的條件顯示邏輯
- pbootcms模板英文站搜尋效果頁面包屑顯示最佳化boot
- 蘋果計劃在App Store搜尋頁面中增加廣告位蘋果APP
- TP5 搜尋按條件分頁
- DjangoRestFramework 實現分頁功能與搜尋功能DjangoRESTFramework
- PHP 陣列搜尋 sdk & 陣列分頁PHP陣列
- 使用 Nuxt 的 showError 顯示全屏錯誤頁面UXError
- Angular6-Filter實現頁面搜尋AngularFilter
- Searchmetrics:頁面載入越快搜尋排名越高
- 如何查詢SAP Cloud for Customer UI頁面對應的技術模型明細CloudUI模型