Enhancements In SAP ABAP - Interview Guide

Enhancements in SAP ABAP has evolved as mentioned below:


SAP Standard Programs Changes
  • Changes are applied directly to SAP standard source code using ABAP editor.
  • In order to change a SAP standard object is required a passcode released by http://support.sap.com/sscr using user and password of our customer. 
  • Passcode is generated using object to be changed, installation number and SAP release.

User Exits
  • Changes are applied directly to SAP specific include never changed by SAP.
  • A SSCR passcode is required, but is possible to use implicit enhancement.
  • Example: MV45AFZZ (sales order user exit), MV50AFZ1 (deliveries), RV60AFZC (invoices).

Call Customer-Function
  • User exits are organized be project definition based on SAP application/module.
  • Project definitions are listed into SMOD transaction.
  • To implement an user exit is required to create a project implementation with CMOD transaction.
  • A project definition can be involved in only one project implementation.
  • A project implementation could be include more than one project definition.
  • User exit activation is based on project implementation. All project definitions included are active or not.
  • For test purpose only is possible to activate a project definition without an implementation.

Business Add-In (BADI)
  • Developed with object oriented programming.
  • BADI definition are collected into SE18 transaction.
  • Definition properties enables BAdI for:
    • Multiple implementation.
    • Only SAP internal use.
    • Filter object.
  • Implementation could be created and managed by transaction SE18 and SE19.
  • Sometimes BAdI definition includes example class.
Enhancement Framework
  • Includes BAdI migration tool, explicit enhancement spot, implicit enhancement based of certain statements like as FORM, FUNCTION, TYPES, function and class interfaces

VOFM Formulas
  • Based on VOFM transaction and applied into customizing environment in order to be activated

Business Transaction Event (BTE)
  • Based on FIBF transaction that define the customer product allowing activation.
  • User exit source code is implemented in customer function module with interface like as corresponding «sample» standard function.

Validation & Substitution
  • Based on GGB0 & GGB1 transaction.
  • User exit are implemented into a subroutines program.
  • Program RGUGBR00 generated the environment by application.

 





HOW TO SEARCH FOR ENHANCEMENT OBJECTS


User Exit
  • Starting from SAP standard program is possible to search user exit with pattern «USEREXIT_*».

Call Customer-Function
  • Starting from SAP standard program is possible to search user exit with pattern «CALL CUSTOMER-FUNCTION».
  • Using SMOD transaction is possible to search using matchcode by package of standard program where is defined to apply the changes.

Business Add-In (BADI)
  • Using SE18 transaction is possible to search using matchcode by package of standard program where is defined to apply changes.
  • BAdI initialization is based on interface class, is possible to search in standard program if this interface class is used.
  • Search CL_EXITHANDLER=>GET_INSTANCE in main program or set a breakpoint.

Enhancement Framework
  • For explicit enhancements search as for a BAdI definition with SE18 transaction using package of standard program to be changed.
  • Implicit enhancements could be created into SAP standard program with a minimal restriction. Is possible to enhance INCLUDES, FUNCTIONS, FORMS, FUNCTION INTERFACE DEFINITIONS, TYPES, DATA. Is not possible to enhance for example a MODULE of a screen.
  • All enhancement types are based on a main program, then if an include is used by more than one program the enhancement needs to be apply for each program needed.

VOFM Formulas
  • VOFM formulas are called by customizing activities. For example pricing procedure, output message type determination, etc.

Business Transaction Event (BTE)
  • Starting from SAP standard program is possible to search user exit with pattern «*CALL*<event>*P/E*»  (P for process, E for event)

Validation & Substitution
  • Validation and substitution are called by customizing activities. For example Financial validation created into GGB0 transaction.



Append Custom Fields To SAP Standard Table

  • SAP standard tables and structures could be enhanced with custom append definition. 
  • Using SE11 transaction enter into SAP standard object in display mode and apply an APPEND using button on right in toolbar.
  • It is possible to create different APPEND for the same SAP standard table. 

Due to automatic alphabetic ordering, any new append could be cause of redefinition of previous custom append.
In order to maintain the append history should be use the following naming convention for new append structure:
  ZA<01>_<gap#>_<sap_structure> (exaple: ZA01_SDE001_VBAK)
<01>           progressive number
<gap#>         development gap number, based on standard of implementation of                  your project
<sap_structure> name of sap standard structure/table enhanced

Important: all fields inserted into a custom append should be named with fixed prefix ZZ; this prevent possible error based on new field created by SAP with support package named with same code of custom include. SAP never create ZZ field in standard structure/table


Explicit Enhancements 
  • These are predefined enhancement sections, usually defined by SAP. Explicit Enhancements are stored in Enhancement Spots. In program RIAUFMVK you can see some examples of them. 
  • Explicit Enhancements are pretty easy to implement; in the ABAP editor, get into the Enhancement Mode by clicking the spiral button. Then, right click into the enhancement point you plan to implement and select Enhancement Implementation->Create. You will be asked a name and a description and after this you can simply add your code. 

Implicit Enhancements 

This type of enhancement are predefined in the following places of an ABAP program:

  • At the end of an include (some restrictions apply; for example, at the end of a method include)
  • At the end of Private, Protected and Public sections of a Class
  • At the end of the Implementation of a Class
  • Before the END INTERFACE in an Interface definition
  • At the end of a structure definition
  • At the beginning and at the end of: forms, functions, methods
  • In the parameters list of a method, at the end of: CHANGING, IMPORTING and EXPORTING

To see what Implicit Enhancements are available, in the ABAP editor follow this path: Edit->Enhancement Operations->Show Implicit Enhancement Options.