1)ABAP Source Code Enhancements(available since 7.0)
Implicit Enhancement Options in ABAP Source Codes
Explicit Enhancement Options in ABAP Source Codes
Creating Source Code Plug-Ins
2)Function Module Enhancements
Source code enhancements – Enhancements to the source code are carried out by means of ABAP source code enhancements.
Parameter interface enhancements – You can enhance the parameter interface of a function module with new, optional formal parameters as enhancement implementation elements.
3)Customer Exits(CMOD/SMOD)(Notes:As of Release 4.6, function module exits (customer exits for source code enhancements) were replaced with Business Add-Ins.)
There are several different types of customer exits.
Menu Exits
Menu exits add items to the pulldown menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications.
SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with “+” (a plus sign). You specify the menu item’s text when activating the item in an add-on project.
Screen Exits
Add screen layouts to applications. SAP creates screen exits by placing special subscreen areas on a standard screen and calling a customer subscreen from the standard screen’s flow logic.
Function Module Exits
Add functions to applications. Function module exits play a role in both menu and screen exits. When you add a new menu item to a standard pulldown menu, you use a function module exit to define the actions that should take place once your menu is activated. Function module exits also control the data flow between standard programs and screen exit fields.
SAP application developers create function module exits by writing calls to customer functions into the source code of standard programs. These calls have the following syntax: CALL CUSTOMER-FUNCTION ‘001’.
https://wiki.sdn.sap.com/wiki/display/ABAP/Customer+Exits+%28CMOD%29
4) Global Class Enhancements
Enhancements to the source code of methods, local classes, and so on – these enhancements are carried out by means of ABAP Source Code Enhancements.
Enhancements to components of classes and interfaces
5) Business Add-Ins (BAdIs)
Classic BAdIs (Note:As of Release 7.0 of the SAP NetWeaver Application Server ABAP (SAP NetWeaver 7.0), there is a new type of BAdI)
Business Add-Ins (BAdIs):The new Enhancement Framework and the new kernel-based BAdI (available since 7.0)
6) Web Dynpro Enhancements
Enhancements in a View
Enhancements in a Controller
Enhancements in a Window
7) Making Changes to Tables(Appends to structures and database tables )
8) Additional values in fixed-value domains
9) Search Help Append
https://wiki.sdn.sap.com/wiki/display/ABAP/Search+Help+Append
10) Transaction variant and Screen variant, and GuiXT
https://wiki.sdn.sap.com/wiki/display/ABAP/Transaction+and+Screen+variants
http://help.sap.com/erp2005_ehp_04/helpdata/EN/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
11) Table control variant
12) Index on standard table (available since 7.0)
http://help.sap.com/erp2005_ehp_04/helpdata/EN/85/685a41cdbf8047e10000000a1550b0/frameset.htm
13) Field exits (this technology is obsolete since 6.10)
http://wiki.sdn.sap.com/wiki/display/ABAP/Field+exits
14) R/3 or ECC (software component SAP_APPL)
Form user exit
https://wiki.sdn.sap.com/wiki/display/ERPLO/SD+User+exits
Business Transaction Events (BTE)
https://wiki.sdn.sap.com/wiki/display/ABAP/BTE+-+Business+Transaction+Event
https://wiki.sdn.sap.com/wiki/display/ABAP/Business+Transaction+Events+-+Process+Interface+-+Event+00001060+-+customer+implementation+for+customizing+dunning+notice
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/207835fb-0a01-0010-34b4-fef1240ba9b7
Validation and Substitution Rules
Advanced substitutions in FI
https://wiki.sdn.sap.com/wiki/display/ERPFI/Advanced+substitutions+in+FI
Creating user exits for substitutions
https://wiki.sdn.sap.com/wiki/display/ERPFI/Creating+user+exits+for+substitutions
Setting up the FI Validations
https://wiki.sdn.sap.com/wiki/display/ERPFI/Validations
Note 842318 - Frequently asked questions about validations + substitutions
https://websmp130.sap-ag.de/sap(bD16aCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=842318
Copy Rules
Derivation Rules
http://help.sap.com/saphelp_46c/helpdata/en/7a/4c38ee4a0111d1894c0000e829fbbd/frameset.htm
Note 387524 - Combination and derivation exit SEMBPS01/02
15) Bank Analyzer
Module Editor
16) Some basis tools may be enhanced:
If you want to undo the modifications you have made to certain Repository objects, you can do this on the initial screen of the corresponding ABAP Workbench tool using the Edit-> Modifications ->Reset to original function. You may also undo modifications in the Modification Browser (SE95) by selecting the Repository object and choosing Reset to original.