Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 12h24   #1
Membre régulier
 
Inscription : mars 2006
Messages : 198
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 198
Points : 83
Points : 83
Par défaut Implémentation de BADI

Bonjour,

J'utilise une BADI spécifique, et je veux créer une nouvelle implémentation de cette BADI.
En fait, cette BADI contient plusieurs implémentations d'interfaces, chacune d'elles contient plusieurs et les mêmes méthodes mais dont le contenu diffère d'une implémentation à l'autre.

1ère question : le besoin consiste à redéfinir la méthode, disons, METH_001, qui va être appellée dans un programme. Est ce que la nouvelle implémentation doit contenir uniquement la METH_001 ou toutes les méthodes ?

2ème question :
dans le programme, on instancie un objet de la classe implémentant lesdites interfaces, et on fait obj->METH_001.
Quelle méthode METH_001 (de quelle interface) est exécutée par le programme ? autrement, à quelle implémentation de la METH_001 le programme fait appel ?

J'espère que j'ai bien exprimé mon interrogation.

Merci d'avance de vos réponses.

Hiraa
Hiraa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 13h28   #2
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Salut,

Pour ta première question :
Quand une classe implémente une interface, toutes les méthodes sont déclarées dans la dite classe et on peut placer du code dans chacune d'elles. Tu n'as juste qu'à mettre du code dans la méthode correspondant à ton besoin, le fait qu'il y ait des méthodes vides n’impacte rien.

Pour ta deuxième question :
À un point donné, le programme va faire appel à la même méthode de toutes les classes actives implémentant la dite méthode.
Pour être plus précis, quand je m'étais amusé à déboguer le standard j'ai vu que SAP récupère depuis la base le nom de toutes les classes implémentant l'interface et va, dans une boucle, créer un objet en référence à chaque classe trouvée et faire appel à la méthode de l'objet en cours.
__________________
Boaf...signature <= ça suffira ça ??
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2012, 18h05   #3
Candidat au titre de Membre du Club
 
Homme
Ingénieur IT - SAP
Inscription : avril 2007
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur IT - SAP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2007
Messages : 30
Points : 11
Points : 11
Envoyer un message via MSN à ShaGaTsoin
Bonjour,

Comme l'a dit Celdrøn, "toutes les méthodes sont déclarées dans la dite classe et on peut placer du code dans chacune d'elles". Par contre j'aurais une question par rapport à ça : Si je ne veux pas mettre de code dans certaines des méthodes déclarées, le contrôle étendu de ma classe me remonte une erreur par méthode vide (et inactive du coup). Existe-t-il un autre moyen que d'activer toutes les méthodes pour éviter ces erreurs ?

Merci d'avance...
ShaGaTsoin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web