This blog let you understand the most effective and best practices rules to optimize the performance of your Web Dynpro application. Also it helps user to understand UI(User Interface) design, component and controller life cycle management, controller contexts, models like the Adaptive RFC model, AJAX function and Table Paging.
– Container layout rules and avoid deep container nesting:
(a) Make your layout as simple as possible try to avoid complex and nested layouts.
(b) Nesting of layouts always lead to a big impact on browser or client rendering performance. Instead of nesting layouts try to use a single large grid or matrix layout with column spans.
(c) Instead of making every UI elements invisible try to make UI Containers invisible.
(d) It is good approach to separate the presentation logic and business logic.
(e) It is good practice to use standard nomenclature (naming convention) for context nodes and elements to avoid confusion.
– Adobe Interactive form’s rule:
(a) While designing the adobe interactive form use the Form Caching function in the Designer phase.
(b) The amount of communication that takes place with the ADS (Adobe Document Services) server in interactive form should be minimum. Try to use only those interactive function that are strictly necessary.
(c) Need to keep scripting to a minimum level, since large amount of scripting in a form can have an effect on performance.
Programming model – Component and controller life cycle management:
– The wdDoModifyView() hook is designed for the creation of a UI tree or UI sub-tree at runtime in case it is not possible to declare the UI at design time. The method is neither intended for fine grain UI manipulations nor for context manipulations.
– Context manipulations are done in wdDoInit(), action event handlers or server side event handlers.
– Only add coding to a controller’s wdInit() method if the results of its execution are actually required at the start of the controller’s life cycle
– Use Custom controller’s when you have identified a specific reuse case or when a distinct unit of functionality can be identified and separated from the main component controller.
– Try to avoid context mapping if not needed. Only map the required sub-set of (inner) context (data) nodes and attributes to keep the mapped controller context as sim as possible.
– The first thing after creating a context node is to switch off the singleton checkbox. It will save you alot of trouble.
– To ensure about a data consistency within a Web Dynpro DC(Development Component), the data is to be stored in the Component Controller (or in a Custom controller) and the different view controller contexts reference to this data.
– Apply Adaptive RFC Models for accessing RFC modules in SAP systems.
– Low Memory Consumption: The Adaptive RFC Adapter was optimized for typical user interface scenarios. Therefore, even if large amounts of data are returned by an RFC call, only the data directly required by and displayed on the user interface is unmarshalled, which results lower memory consumption.
– Put as many RFCs in a single Adaptive RFC model as possible.
– Place Web Dynpro Models into separate model DCs. Therefore, model DCs will only be rebuild when they change. This greatly speeds up the development process.
New Ajax Function:
– Be alert about the increased number of server round trips for suggestion enabled Input Fields in the case the client repeatedly calls the server to query and send back a set of matching suggestion on-demand. The increased number of server round trips cycles may lead to impact on performance.
– Asynchronous input validation increases number of server round trips. Input validation logic cannot be processed independently on client side.
Web Dynpro Java Table Paging:
– To reduce the memory and to enhance client performance apply table paging technique. Optimize performance with server-side table paging techniques to display a large number of table rows.
– By retrieving displayed table records on demand and caching them on Web Dynpro server side results highly reduced memory consumption.
– In one back-end call read fixed page size (= number of records per back-end call ) . Read only displayed table records from back-end on-demand after rendering phase.
Have a question on this topic ? Please read more here.
In case you need assistance on SAP Support Services, please contact us. Please send us your questions, comments or¬†assistance request and our team would be glad to assist you.
By Nikhil Gupta (on behalf of SAP Consulting Team)
SAP :: Streamlined
We¬†offer¬†variety¬†of¬†services¬†including¬†SAP¬†ECC¬†,SAP¬†HR,SAP¬†BW,SAP¬†CRM,¬†SAP¬†SCM,SAP¬†BPM, Business¬†Objects,¬†SAP¬†ABAP¬†Development,¬†SAP¬†BASIS¬†and¬†SAP¬†NetWeaver¬†consulting.¬†We¬†have expertise¬†in¬†providing¬†implementation,development,¬†SAP¬†Migration¬†and¬†SAP¬†support¬†services¬†to SAP¬†customers¬†across¬†diverse¬†industries¬†at¬†a¬†global¬†level.
Have a question on SAP? Write to our SAP Architect : AskTheArchitect@Apprisia.com
(We promise a no-obligation consulting reply)