Overview of the application
This is an SRM based application which gives the list of shopping carts created by a user based on the selection criteria he/she has selected for searching. Main search criteria is status of the shopping cart and time frame in which shopping cart was created.
Additional to listing the shopping carts, we also need to display some associated information which were in multiple tables and some times in multiple backend system. Fetching the associated information for the entire list of shopping carts for a user who has more than hundreds of shopping carts would mean the execution going to more than a minute. This was not acceptable from user perspective.
Approach for Pagination
We had to think about some customized pagination technique as the application is based on the selection criteria. So once the user has selected the crieria, we need to identify the shopping carts in the first go itself. That were broke the data which will be displayed to portal as something like key fields and non-key fields.
Key fields would be estentially the shopping cart numbers which is based on the selection criteria. Non-key fields will be the associated information related to individual shopping cart. When a user searches based on a selection criteria, we would identify the entire list of key fields i.e. shopping cart numbers. And then we fetch the associated information or the non-key fields for say as many records which we will be displaying the user first time in the table. This non-key field information is then stored in web dynrpo cache. Also the entire list of key fields.
Next time when the user requests for the next page of the table, then we identify the key fields for that page from the cache and fetch the non-key field information from the backend. This is again stored in web dynpro cache. By this we are just limiting the number of records for which associated information is picked from multiple tables. This indirectly improves the performance of the application
Advantage of this approach.
In applications where the data volumes are high this approach ensures that the WebDynpro page is not loaded with large volume of data at initialization hence indirectly improving the performance of the application. Also the ABAP code is customized such that only relevant details are retrieved and passed on to the Webdynpro application.