BADIS : Exercice

Cet exercice va vous permettre d’avoir une vision complète sur l’utilisation des BADIs.

Avant de commencer, lisez les articles suivants :
ABAP Objects
BADIs : Introduction

L’exercice couvre volontairement les deux étapes de définition et d’implémentation du BADI sachant que l’étape de définition est réalisée par SAP.

1-Définition d’un BADI
1.1-Ecran initial
Pour créer un BAdI, utilisez le BAdI Builder (Outils -> ABAP Workbench -> Utilitaires -> Business add-ins -> Définition) (Transaction SE18).
badis_exo-01

1.2-Propriétés
Le nom de la classe d’adaptation du BADI « ZCL_EX_BADI » est généré automatiquement et ne peut être modifié.
badis_exo-02

1.3-Interface
Le nom de l’interface du BADI « ZIF_EX_BADI » est proposé automatiquement. Il peut être modifié mais il est toutefois préférable de garder la logique d’appellation proposée par SAP. Le nom proposé est construit de la façon suivante :

Préfixe de l’espace nom, Y ou Z
IF_ (pour interface)
EX_ (pour exit)
Nom du business add-in
badis_exo-03

-> Pour définir l’interface, double-cliquez sur son nom ou utilisez le Class Builder (SE24).
badis_exo-04

-> Création de la méthode d’interface « USER_EXIT »
badis_exo-05

-> Affectation des paramètres de la méthode « USER_EXIT »
badis_exo-06

1.4-Activation
badis_exo-07

2-Implémentation d’un BADI
2.1-Ecran initial
Pour l’implémentation de business add-ins, utilisez la transaction SE19 (Outils -> ABAP Workbench -> Utilitaires -> Business Add-Ins -> Implémentation).

Entrez le nom de l’implémentation et sélectionnez Créer. Une boîte de dialogue s’affiche. Entrez le nom du business add-in. L’écran de gestion correspondant s’affiche.

Vous pouvez également utiliser la transaction de définition de business add-ins pour accéder à ses implémentations. Le menu contient une entrée ‘Implémentation’, que vous pouvez utiliser pour avoir une vue d’ensemble des implémentations existantes. Vous pouvez également créer de nouvelles implémentations à ce niveau.

badis_exo-08

2.2-Classe d’implémentation

Vous pouvez affecter le nom de votre choix à la classe d’implémentation. Cependant, il est conseillé de respecter la convention d’appellation proposée. Le nom proposé est construit de la façon suivante :

Préfixe de l’espace nom, Y ou Z
CL_ (pour classe)
IM_ (pour implémentation)
Nom de l’implémentation

Dans le cas de l ‘exemple, le nom proposé pour la classe d’implémentation est « ZCL_IM_BADI »
badis_exo-09

2.3-Méthode d’interface
-> Pour mettre en oeuvre la méthode, double-cliquez sur son nom. Le système lance alors l’éditeur Class Builder (SE24). Lorsque vous avez terminé, vous devez activer vos objets.
badis_exo-10

-> Implémentation de la méthode USER_EXIT de l’interface ZIF_EX_BADI
badis_exo-11

-> Implémentation du code source de la méthode
badis_intro-12

2.4-Activation
-> Une fois l’interface implémentée, vous devez activer tous vos objets.

3-Deuxième implémentation du BADI
-> Le principal avantage des BADIs est la possibilité de réutilisation. Un business add-in peut en effet avoir plusieurs implémentations dans le même système. Dans l’exemple qui suit, nous allons implémenter une deuxième fois le business add-in ZBADI.

-> Implémentation (SE19)
badis_exo-13

-> Implémentation de la méthode USER_EXIT de l’interface ZIF_EX_BADI

4-Programme d’appel

Pour appeler une méthode de business add-in dans un programme applicatif, vous devez inclure trois instructions dans le programme :

  1. Déclarez une variable de référence en référence à l’interface du business add-in (dans notre exemple, ‘ZIF’).
  2. Appelez la méthode statique GET_INSTANCE de la classe de service CL_EXITHANDLER. Le système vous renvoie une instance de l’objet requis. Ceci implique une distribution étroite implicite, de façon à ce que seules les méthodes d’interface de l’objet ayant la variable de référence ‘ZIF’ soient accessibles.
  3. Vous pouvez maintenant appeler toutes les méthodes du business add-in. Assurez-vous de spécifier correctement les paramètres des méthodes.
    Si le business add-in est dépendant d’un filtre, vous devez transmettre une valeur appropriée pour le paramètre FLT_VAL. Si le business add-in possède plusieurs implémentations actives, ces dernières seront appelées dans l’ordre alphabétique.

Pour tester les implémentations, il suffit d’exécuter le programme ci-dessus et de double-cliquer sur une des lignes affichées.

La première implémentaion affichera le détail du vol sélectionné et la deuxième fera appraître un message d’information.