Developers of standard enterprise applications are confronted with the problem that pages of their application need to be customized to a certain degree by their customers. Customizing includes two aspects:
Customized Layout
A standard page typically offers more features and fields than
are required by the specific customer. Consequently, application developers
have to make their pages flexible in order to allow the switching off/on of
certain information and functions on the screen.
Customized Proposals
Certain input parameters of your application can be proposed
automatically to the user. If, for example, your application deals with
currencies and you have a default currency to be used, this default currency
can be proposed as input automatically without having the user to provide input
all the time.
This is what we call the "personalization" of pages.
Depending on the size and structure of a specific customer application, the personalization may be done several times. Maybe one page looks different in each business unit of the customer, and maybe one page even looks different within several departments of one business unit.
The goal of the personalization framework is to keep - as much as possible - work away from the application development being responsible for the layout of the page and for the development of corresponding adapter objects. The focus of adapter objects clearly is to pass information from the user input into the business logic behind the adapters, and vice versa.
The framework described in this part is an offer - it bases on a generalized filter model for information passed between adapter and page. The framework is an optional offer to be used by you - you also can build up own frameworks or do not use personalization at all. If not used, there are no negative impacts in means of performance and resource consumption.
The framework is released in several steps. The focus of the first step (which is described here) is to control the visibility of controls on pages and to automate the proposal of input values. This part first introduces the concepts for a customized layout (with an example), and then the concepts for customized proposals (also with an example). Both concepts can be used independently from one another.