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.


  1. very incomplete u have any further about?

  2. Whether it's complete or not totally depends on what you expect and what you are looking for. Don't expect on this blog.

    What exact information are you looking for?

  3. Totally surprised to see Nico commenting that this is an incomplete post.. I would say this is the best description i came across for enhancing a component.. I read several links as well in SDN.. This is pretty simple and well knit.... Thanks a ton Pieter for taking ur time to write this post for starters like me.. God Bless..

  4. Question: how do I know which field to add, and how to configure those fields?
    e.g. I want to add a field that determine the channel of communication (email, telephone, written letters, etc).
    Under which folder can I know where to find such fields?
    Is there any such dictionary somewhere?

  5. I'm new here, but I've read a lot of stuff from this site, and must say THANKS A TON for the time and effort you put in to explain and share your knowledge.

    One little addition on this subject that you could talk about : the entry in BSPWDV_EHSET_ASG.
    Thanks again Peter

  6. Hello Pieter,

    I'm trying to enhance the standard component. I followed the steps, enhance component & view. But, the context node does not have the option to enhance it. How can I enhance the context node in order to redefine the methods of the attributes? Please help.

    1. Maren, I wouldn't know. It should be possible to enhance the context node after enhancing the view. You might need to leave the transaction and go back in before it is possible? Have you found the solution yet?