BAPI - These are published programs which is used to upload data i
nto SAP system.
BADI - This is a program enhancement technique. SAP pr
ovides BADI openings in the standard programs. You need to search for the s
uitable BADI as ur requirement and then do the coding and plug in the progr
am.
USEREXIT - It is also a program enhancement technique. here also u
need to find suitable userexit and code in ur program.
The main diff
bet BADI and USEREXIT is that in USEREXIT u code in the standard SAP progra
m, hence any updation in the version of the standard program will lead to t
he loss of ur coding. But same is not the case of BADI. Here the code remai
ns outside the standard program.
2. Both BDC and BAPI will work. For a
njoi SAP transaction, prefer a BAPI over a BDC