Header Ads

ENHANCEMENT SET CONCEPT



ENHANCEMENT SET:

sap provides a concept to enhance SAP standard UI components with out modifying the standard SAP UI COMPONENTS. All modifications that are carried by customer will be stored in the container called, ENHANCEMENT SET.

It is a common requirement for a WEBUI developer to add extra functionality ( creating context nodes, adding new event handlers and creating new inbound and outbound plugs for navigation ....etc) to the SAP STANDARD UI COMPONENT.

Lets have a look at the main transactions and tables which are necessary in this concept. 

Transactions : BSP_WD_CMPWB (component workbench )
                          SM34 (View cluster maintenance)
                          SM30 (View Maintenance )


Tables/View:  BSPWDVC_CMP_EXT  (View Cluster)
                        BSPWDV_EHSET_ASG  (view to maintain data).


BSP_WD_CMPWB ( business server pages - web dynpro - component workbench). This is the transaction to use to create or enhance any component. kindly look at the screen shot below.




There are two ways to create enhancement set.

1. We can directly create enhancement set by clicking on NEW button as highlighted in the above screen shot.

a. click on NEW button, enter new enhancement set name and description in dialog screen it appears.




b. click on right mark and store it in $TMP (Temporary) Package or Transport it(According to requirements).  Enhancement Set Created.

Lets Look at second way.

2. This is something like doing it manual.

   a . Go to SM34 transaction and give view cluster name BSPWDVC_CMP_EXT and click on Maintain button.










  b. Click on New Entries and Enter Enhancement set name and description and press save.


Enhancement set created.


Now, you may create multiple enhancement sets. However, WEBCLIENT framework, at a time can use only one ENHANCEMENT set. When you open component work bench transaction, active enhancement set will be preset in the ENHANCEMENT SET field. This value is client specific. You can change active enhancement in the table BSPWD_EHSET_ASGN.


Go to Transaction SM30 and enter value BSPWDV_EHSET_ASG and click on maintain . You can see,  for each client, there will be one enhancement set assigned.
I am assigning my newly created enhancement set for my client.



Now , when ever I open component workbench, this enhancement set will be preset in the ENHANCEMENT SET field.


Ok. We have created enhancement sets. What if some wants to load particular enhancement dynamically ?


Well, we have a answer for that. In this kind of situations we need to create a new implementation for the BADI (business add in ) COMPONENT_LOADING. In this BADI we need to change the code in the method IF_BSP_WD_CMP_LOADING_BADI~GET_ACTIVE_ENHANCEMENT_SET. 

Kindly look at the default implementation of this method in the below screen shot. They are reading client specific enhancement set from the table BSPWD_EHSET_ASGN.


We need to create new implementation for this BADI to write our own logic to load the enhancement set.
Powered by Blogger.