Enhancements represent potential customer requirements that have not been developed in the standard. Instead, the standard provides for further development of such exits at the customer site, using logic specific to the customer. Upward compatibility is assured since SAP guarantees that the call of an enhancement from the standard software and the calling interface will remain valid in future releases.
You can make enhancements to the standard using Text Enhancements and Customer Exits .
From Release 4.6A, you can implement enhancements for the system standard using a new technique called Business Add-Ins
check the below links for your questions
1. what is the defference between enhancement and user-exits?
2. Difference between CMOD and SMOD?
check these links..
Enhancements are hooks provided by SAP within many standard programs, screens and menus on which customers may hang custom functionality to meet business requirements.
User exits allow us to add our own functionality to SAP standard program without modifying it . These are implemented in the form of subroutines and hence are also known as FORM EXITs. The user exits are generally collected in includes and attached to the standard program by the SAP.
All User exits start with the word USEREXIT_...
<User defined code>
1) ADDING OF NEW FIELDS IN PRICING
In Pricing in SD the fields on the basis of which pricing is done are derived from the FIELD CATALOG which is a structure KOMG .This structure is used to transfer transaction data to the pricing procedure in SD and is also known as communication structure. This structure KOMG consists of two tables KOMK for Header related fields and KOMP for item related fields.
The fields which are not in either of the two tables KOMK and KOMP
cannot be used in pricing .Sometimes a need arises when the pricing
is to be based on some other criteria which is not present in the form of fields in either of the two tables.
This problem can be solved by using USEREXITS which are provided for pricing in SD.
Pricing takes place both when the SALES ORDER (Transaction VA01) is created as well as when INVOICING (Transaction VF01) is done. Hence SAP provides 2 user exits ,one for sales order processing which is
Depending upon which table (KOMK or KOMP) the new fields were inserted we use either of the above two user exits. These user exits are found in include MV45AFZZ of the standard SAP sales order creation program SAPMV45A.
In the case of user exit which will be called when invoicing is done, these are provided in the include RY60AFZZ which is in the standard SAP program SAPMV45A. The names of the user exits are same. i.e.
These user exits are used for passing the data from the communication structure to the pricing procedure, for this we have to fill the newly created field in the communication structure KOMG for this we fill the code in the above user exit using the MOVE statement after the data that
has to be passed is taken from the database table by using the SELECT statement. The actual structure which is visible in these user exits and which is to be filled for that particular field is TKOMP or TKOMK.
Before the coding for these user exits is done, it is necessary to create a new field in either of the two tables KOMK or KOMP .For this purpose includes are provided in each of them .
To create the field in header data (KOMK) the include provided is KOMKAZ and to create the field in item data(KOMP) the include provided is KOMPAZ.
1) MENU EXITS
2) FUNCTION EXITS
3) TABLE EXITS
4) SCREEN EXITS
5) KEYWORD EXITS
6) FIELD EXITS
SUSR0001.This enhancement uses function exit EXIT_SAPLSUSF_001 .
Enhancement : SUSR0001 User Exit after logon to SAP system.
When the User logs in the system ,this exit is called each and every time for every user after logon to the R/3 system.
Function Exit : EXIT_SAPLSUSF_001 .
Every dialog user passes thrugh this function module after logon,It can be used to execute individual customer checks and send mesages to the user.
TABLE USR02 CONTAINS LOGON DATA and can be used in this exit to get the user logon data and take necessary actions as required by the customer requirement and even LOG_OFF (not recommended by SAP).
STEPS REQUIRED FOR IMPLEMETING THE EXIT
1) Open CMOD(Project maintenance) Transaction.Enter a project name starting with Z.Press enter.
2) Goto Enhancement window by clicking the enhancement button in the application tool bar.
3) Write SUSR0001 in the enhancement column and press enter.
4) Goto Components window(It will show al the exits included in this enhancement), in our case only one Function Exit will be shown.
5) Double click on the Function exit EXIT_SAPLSUSF_001.
The following function source code will be displayed in the function editor
6) Double click on the include ZXUSRU01 .If it will ask to create the include say yes .
7)Write the following code in the include.
DATA W_TEXT(30) TYPE C.
DATA W_DATE(10) TYPE C.
WRITE sy-datum TO W_DATE DD/MM/YYYY.
CONCATENATE ' Date is ' W_DATE INTO W_TEXT.
CALL FUNCTION 'POPUP_TO_INFORM'
titel = 'Welcome to Paradise !'
txt1 = 'Have A Nice Day'
txt2 = W_TEXT
TXT3 = ' '
TXT4 = ' '
8)Save the include and activate it .Activate the Project also by going to the menu in CMOD transaction.Now The user exit SUSR0001 has been implemented and is ready to use.
9) Logon to the R/3 system . A dialog box will appear with the message
Welcome to Paradise ! with date .
NOTE: BAPIs like BAPI_USER_GET_DETAIL can also be used to get user info or directly read from tables USR02 etc.
PP User Exit .
This user exit is used in PP and is for u to try
MCP20020 User exit for reading info structure when transferring reqts
it contains function exit
When planned independent requirements are transferred from SOP to
program data, the data is read at material/plant level as standard. You
can use this user exit to have a greater or smaller number of
characteristics for data selection. In this case, the data is read on a
different level than that in the standard system.
The interface of this user exit corresponds to that of function module
'MC_PG_TRANSFER_PBED', but the info structure and the key fields table
(structure IKEYF) are also transferred. YF). The characteristic
attributes of the characteristics used for data must be transferred to
the user exit in field 'Value' of the key fields table.
For further information, see function module: 'MC_PG_TRANSFER_
Hope this helps
<b>if it helped, you can acknowledge the same by rewarding</b>
Let me share my points with u.
Enahancements menas to extend the functionality with out ditrubing the existing functionlality.
Suppose functionality is existing for populate data for PO number only, client wants to populate one more field data then that will write in user exit nothing but enhancement.
Hope this helps you. Reply for queries, shall post the updates.