Wednesday, July 28, 2010
Enhancing a component and a view
The Webclient UI provides a flexible user interface that can be altered according to the companies' needs. Fields can be moved around, added and deleted from the screen easily. There are some changes that cannot be done by customizing, and you might require an enhancement of a certain component.
Enhancing a component enables you to overrule the standard SAP coding and replacing it with your own. Enhancements can be done using SE80, but are preferably done using the BSP Workbench (Transaction BSP_WD_CMPWB)
When you want to alter coding in the BSP Workbench, you first need to enhance the component and enhance the view. In order to be able to do this, you have to first create an enhancement set. This is a one-time exercise where you create the 'container' for all your enhancements.
The enhancement set is created using SM34 view cluster BSPWDVC_CMP_EXT. You must create one before you can enhance any component.
When you check the BSPWDVC_CMP_EXT, you will see that this also contains views for enhancement definitions. You don't need to fill in anything here, as information will be added here once components are actually enhanced in the workbench.
When you have created the enhancement set, go to the BSP Workbench and check that in the field 'Enhancement Set' (if it is not visible, click the button), you can select the enhancement set you have created.
Now find the component you want to change and click on the display button. In order to enhance the component, click the button. Enter the values in the fields requested. It is recommended to stick to a logical naming convention to make sure you can find the enhanced methods easily later on. The system will now add this component to the enhancement set.
From now on, when you enter the component in the workbench, all views will be grey. A grey view means that it has not been enhanced, but that all logic is inherited from the parent (the standard component). Again, enter the values in the fields requested. Before you can continue with redefining methods, you should now first go one step back and open the component again from the previous screen so that the newly generated classes are loaded into the screen.