Qu est-ce qu un BAdI dans SAP ? Explication des Business Add-Ins

Catégorie
General
Publié
Auteur
Johannes

Un BAdI signifie Business Add-In. C’est une technologie moderne et orientee objet de SAP qui vous permet d’etendre le code standard SAP sans le modifier directement (extension sans modification).

Qu’est-ce qu’un BAdI ?

Imaginez-le comme une prise electrique dans le mur :

  • SAP fournit la “prise” : A des endroits predefinis dans le code standard, SAP integre ce qu’on appelle des definitions BAdI. Ce sont des “crochets” ou “points d’entree” prepares.
  • Vous branchez votre “prise” : En tant que developpeur, vous pouvez creer vos propres implementations BAdI pour ces definitions BAdI. C’est votre propre code ABAP (sous forme de classe) qui sera alors appele a cet endroit dans le flux standard.

L’idee centrale est : Vous ajoutez votre propre logique sans toucher au code original de SAP. Cela presente d’enormes avantages, surtout lors des mises a niveau et de la maintenance, car vos extensions restent separees du standard.

Comment cela fonctionne-t-il techniquement (simplifie) ?

  1. Definition BAdI (par ex. dans SE18) : SAP (ou parfois des partenaires/clients) definit un BAdI. L’element central est une interface qui prescrit une ou plusieurs methodes (les “crochets”) que vous pouvez implementer. La definition specifie egalement si le BAdI est par exemple dependant d’un filtre ou s’il peut etre actif plusieurs fois.
  2. Implementation BAdI (par ex. dans SE19) : Vous creez une implementation pour une definition BAdI. Vous creez une classe d’implementation qui implemente l’interface BAdI. Dans les methodes de cette classe, vous ecrivez votre propre code ABAP.
  3. Appel dans le code standard SAP : A l’endroit correspondant dans le programme standard, il y a du code comme GET BADI ... (pour obtenir une reference aux implementations actives) et CALL BADI ...->nom_methode(...) (pour appeler la methode de votre implementation).

Proprietes importantes des BAdIs

  • Sans modification : La propriete la plus importante. Les extensions restent non affectees par les changements du standard.
  • Oriente objet : Base sur ABAP Objects (interfaces et classes).
  • Dependance aux filtres : De nombreux BAdIs peuvent etre filtres. Votre implementation ne devient active que lorsque certaines valeurs de filtre (par ex. societe, pays) correspondent.
  • Utilisation multiple : Certains BAdIs permettent que plusieurs implementations soient actives simultanement. D’autres n’autorisent qu’une seule implementation active.
  • Switch Framework : Les BAdIs peuvent etre couples au Switch Framework, de sorte que les extensions puissent etre activees et desactivees via les Business Functions.
  • Partie du Enhancement Framework : Les BAdIs modernes sont integres dans le concept d’extension general (Enhancement Spots/Options).

Types de BAdIs

  • BAdIs “classiques” : L’ancienne generation (avant NetWeaver 7.0). Ils sont appeles de maniere techniquement legerement differente.
  • “Nouveaux” BAdIs (Kernel-BAdIs) : La forme moderne, integree dans l’Enhancement Framework, appelee via GET BADI/CALL BADI. Ceux-ci doivent etre preferes.

Distinction par rapport aux anciennes techniques

Les BAdIs sont les successeurs des anciennes techniques d’extension comme les Customer Exits (exits de modules fonction, transactions SMOD/CMOD) et les User Exits (routines FORM dans les includes standard). Les BAdIs sont plus flexibles, mieux encapsules et orientes objet.

En resume : Les BAdIs sont la methode standard recommandee par SAP, orientee objet, pour inserer une logique metier supplementaire, des validations ou des manipulations de donnees a des endroits definis dans les processus standard SAP, sans avoir a modifier le noyau.