When you define a BAdI, you must specify a name, a BAdI interface as the interface for the enhancement option, and the required filters.
The name of a BAdI is in the same namespace as data types from the ABAP Dictionary, global classes, or interfaces. It is recommended that you use suitable prefixes, such as "BADI_".
A filter consists of a filter name and a data type (integer, string, and so on).
In addition, you also define BAdI properties that are relevant at the runtime of a program with the appropriate statements GET BADI and CALL BADI . For more information, see Instance Generation Mode and Multiple Use .
Other properties that can be assigned to a BAdI include:
An internal BAdI must only be implemented by SAP and is not visible outside of SAP.
A BAdI that is defined as a function code enhancement must not have any filters, must not be defined for multiple use, or assigned to any switch. It may contain methods that are independent of the actual function code enhancement.
A BAdI that is defined as a screen enhancement must be defined in the instance generation mode for the reused instantiation and must not be defined for multiple use. It may contain BAdI methods that can be used to fill or evaluate the screen fields of the respective subscreens.