Olá Ravi,
BADI
Os Business Add-Ins são uma nova técnica de melhoria da SAP baseada em objetos ABAP.
Os BADI permitem um cenário de sistema multinível (soluções SAP, de parceiros e de clientes, bem como versões por país, soluções setoriais, e similares). Os Business Add-Ins podem ser criados em cada nível dentro dessa infraestrutura de sistema.
Alguns BADI podem ter múltiplas implementações independentes, o que é muito melhor para a implementação de software, pois vários desenvolvedores podem implementar o mesmo BADI de forma independente.
Customer-exit
As SAÍDAS DE CLIENTE (melhorias) são FUNÇÕES, sendo chamadas utilizando CALL FUNCTION (ou mais precisamente CALL CUSTOMER FUNCTION).
As saídas de cliente pressupõem uma infraestrutura de dois níveis (SAP e soluções de cliente).
Uma saída de cliente implementada em um projeto não pode ser implementada em outro.
User-exits (modificações)
As SAÍDAS DE USUÁRIO são FORMULÁRIOS e são chamadas a partir de programas padrão da SAP utilizando PERFORM.
Dentro do formulário (saída de usuário) é possível ler e alterar quase qualquer dado global do programa principal.
As saídas de usuário são mais flexíveis porque você tem mais informações para usar em seu código, mas por outro lado, é muito fácil manipular incorretamente os dados globais e levar o programa padrão a um erro ou até mesmo tornar o banco de dados inconsistente.
As saídas de usuário não têm classificação alguma.
Basicamente projetado para o módulo SD.
As saídas de usuário só podem ser escritas usando uma chave de acesso.
Com as saídas de usuário, o código que o desenvolvedor escreveu não estará presente na próxima versão a menos que uma ferramenta de assistência para modificações seja utilizada.
Recompense pontos se achar útil:)
Saudações
Sathish