ENHANCEMENT POINTS - IMPLICIT ENHANCEMENT

ENHANCEMENT POINTS

Enhancement points are nothing but empty places / empty slots where we can add our code to extend the standard SAP software.

These are not SUB-ROUTINE / FUNCTIONS / METHODS , But these are a ENHANCEMENT POINTS (New technology)

EXAMPLE:

Enhancement  ENO  E IMP NAME


End Enhancement.

EN0 = enhancement number

E IMP NAME =Enhancement implementation Name


There are 2 types of Enhancement Points

1. Implicit Enhancement:

Implicit Enhancement are empty slots available at starting and ending of every   * program
                                                                                                                   * functions
                                                                                                                   *sub routines
                                                                                                                   * modules.....

Theses are not visible  because they are implicit in nature , i.e implicit means internal.

If we want view these Implicit enhancement , we need to click on ENHANCE ICON  as below.






Then Click On MENU -> EDIT -> ENHANCEMENT OPERATIONS -> SHOW IMPLICIT.






Now these will be displayed with a line at starting and ending.




Now just right click on the line and follow these steps as shown below.




click on create implementation  and give a suitable name for it.


EXAMPLE

RAISE AN ERROR MESSAGE WHEN AN USER DOES NOT ENTER DELIVERY QUANTITY WHILE CREATING OR CHANGING IN VL01N,VL02N.


TCODE = VL01N,VL02N

TABLES = LIPSD

FIELD NAME = G_LFIMG

So Implicit Enhancement will be available at starting and ending of every sub routine or function or program.

Here we will search for user exit for Tcode VL01N Because to implement this we need access key .

And the alternate method to execute this requirement is through IMPLICIT ENHANCEMENT
 because it will be available at sub routines at starting and ending.

STEP1:

Go to Tcode SE93 and Provide TCODE as VL01 and click on DISPLAY.





Copy the program name and double click on it 





Here provide as USEREXIT in find parameter 

And select check box as AS STRING and MAIN PROGRAM and press ENTER






search for our program name




Repeat the above steps until we get the requried user exits.



Now check these user exits as per our requirement .

For our requirement the user exit is because we need to checks before saving.




Just double click on it form userexit_save_document_prepare we will move into form screen as below



My requirement is to implement this enhancement by IMPLICIT only..

So to view implicit enhancement just click on ENHANCE ICON AS BELOW





Then go to edit option then enhancement operations in that show implicit enhancement operation as below



TESTING BY PLACING BREAK POINT

Before creating implicit enhancement we will check whether this implicit enhancement suitable or not by placing break point at our form  AS BELOW



Now go to tcode VL02N and try to change delivery quantity field we should trigger to our break poin at our form as below.

Here am trying to change delivery quantity 20 to 0 then i will click on save button break point should trigger.



 changing quantity from 20 to 0 as below and  clicked on save.





 Break point will occurred


So it is right place to create implicit enhancement to create it just right click on the lines and select enhancement implementation and click on create as shown below.




After clicking on CREATE just Choose the type of enhancement as CODE .



After clicking on code click on create icon.



now provide a name to it





And our IMPLICIT ENHANCEMENT WILL APPEAR 




Now write the logic as requirement






Save and activate the enhancement.

Go to Tcode VL02N and give delivery number as 80011788.



click on enter

And try giving delivery quantity as INITAIL and click on SAVE button we will get an error message.