Académique Documents
Professionnel Documents
Culture Documents
Déroulement de la formation
Session du matin: cours et concepts + une pause café
La pause déjeuner
Session de l’après-midi: pratique dans le système
Conclusion
Questions et réponses
Évaluation de la formation
INTRODUCTION
PRESENTATION DU FORMATEUR
Expérience projet
• Plus de 8 ans d’expérience sur divers projets
• 2 projets d’implémentation SAP from scratch
• Plus de 5 projets d’évolutions
• Une multitude de projets en TMA
Planning de la formation
Planning de la formation
• Jour 1
Matinée : Rappel d’éléments ABAP
Après midi : Exercices pratiques
• Jour 2
• Jour 3
• Jour 4
Planning de la formation
Planning de la formation
• Jour 1
• Jour 2
• Matinée :
• Vue générale
• Concepts
• Eléments de Syntaxe
• Composants
• Après midi
• Exercices pratiques
• Jour 3
• Jour 4
Planning de la formation
Planning de la formation
• Jour 1
• Jour 2
• Jour 3
• Matinée :
• Gestion des exceptions
• Concepts avancés
• ABAP Workbench
• Control framework (ALV Object…)
Après midi
• Exercices pratiques
• Jour 4
Planning de la formation
Planning de la formation
• Jour 1
• Jour 2
• Jour 3
• Jour 4
• Matinée :
• BADIS
• Web Programming (BSP, Webdynpro..)
Après midi :
• Exercices pratiques
PRESENTATION DU PROJET
LE PROJET
• Un BAPI est une interface définie contenant les traitements et les données d'un
système applicatif, implémenté comme les méthodes d'un objet du Business
Object Repository (BOR).
Rappels ABAP
BAPI et modules de fonction RFC :
• Un BAPI est une interface qui peut s'utiliser dans de nombreuses applications
Rappels ABAP
BAPI explorer:
• Permet d'afficher des informations complémentaires sur les objets de gestion et
les BAPI qui leur appartiennent
• Peut être lancé via la transaction « BAPI »
Rappels ABAP
Appel d’une BAPI depuis un programme ABAP:
Directement appeler le module de fonction qui le comporte
les informations relatives aux erreurs sont transférées au programme en utilisant
le paramètre d'interface RETURN
Les modules de fonction BAPI ne contiennent pas d'exceptions ni de dialogues
utilisateur
Leur fonction unique est d'encapsuler la logique applicative
Rappels ABAP
Tables internes:
Rappels ABAP
Tables internes:
• Les tables standard gèrent de manière interne un index linéaire. Ce type de table
peut être accédé en utilisant soit l'index de table soit des clés.
• Les tables triées sont triées selon la clé et sauvegardées. Un index linéaire est ici
aussi géré de manière interne. Ce type de table peut être accédé en utilisant soit
l'index de table soit des clés.
• Les tables d'adresses de calculs ne gèrent pas d'index linéaire de manière
interne. Vous pouvez seulement y accéder en utilisant des clés.
Rappels ABAP
Tables triées:
• Toujours sauvegardée correctement triée
• L’accès utilise une clé binaire
• Si cette clé n’est pas unique le système retient l’enregistrement avec l’index le
plus faible
• Le temps pour insérer un enregistrement est plus long que pour une table
standard puisque le système vérifie que le tri est correct après chaque insertion
Rappels ABAP
Les tables d'adresses de calculs :
La table est gérée par une procédure interne de hashage
Une table hashée est une collection d’enregistrements qui peuvent être adressés
grâce à une clé unique
On ne peut pas utiliser d’index pour accéder à ce type de table
Toutes les entrées ont une clé unique
Le temps d’accès est constant quelque soit le nombre d’enregistrements.
On ne peut y accéder qu’en utilisant les opérations génériques du type SORT, LOOP.
Les opérations avec accès implicites ou explicites aux index ne sont pas autorisées
(comme LOOP ... FROM ou INSERT itab avec un LOOP).
Rappels ABAP
Vues de table :
• Les vues s'appliquent à différentes tables du Dictionnaire ABAP
• Contiennent des zones issues d'une très grande table ou de plusieurs tables
Rappels ABAP
Contrôle des autorisations:
Rappels ABAP
Objets d’autorisations et autorisations:
Rappels ABAP
Insertion d'AUTHORITY-CHECK dans des programmes :
Rappels ABAP
Dynpro - Avantages:
Rappels ABAP
Dynpro - Utilisation:
Rappels ABAP
Dynpro – Composantes:
Rappels ABAP
Ajustement du standard:
Rappels ABAP
Extensions fonctionnelles:
Rappels ABAP
Types d’extensions:
• Exits de programme
• Les développeurs SAP ont inclus des exits en certains points des programmes
applicatifs pour vous permettre d'appeler des sections de vos propres programmes
• Extensions du Dictionnaire
• Append de table : vous permet d'ajouter des zones supplémentaires à des tables
standard
• Informations sémantiques des éléments de données : utilisation d'une extension
pour modifier la description ou la documentation d'une zone (F1, aide).
Rappels ABAP
Variantes
Rappels ABAP
Variantes
Vous pouvez définir et stocker des variantes pour tout écran de sélection. Lancez le
programme et
sélectionnez Variantes -> Sauvegarder comme variante.
Les variantes facilitent l'utilisation des écrans de sélection grâce aux fonctions
suivantes :
• Pré-affectation de valeurs aux zones de saisie ;
• Masquage de zones de saisie ;
• Sauvegarde de ces paramètres en vue d'une réutilisation
Une variante peut renvoyer à plusieurs écrans de sélection.
Les variantes sont dépendantes du mandant.
En cliquant sur l'icone Informations d'un écran de sélection, vous obtenez des
renseignements complémentaires sur les variantes.
Rappels ABAP
Textes de sélection
Rappels ABAP
Textes de sélection:
• Sur l'écran de sélection, le nom des variables figure à côté des zones de saisie.
• Vous pouvez les remplacer par des textes de sélection, que vous pouvez ensuite
traduire dans toutes les langues souhaitées.
• Les textes de sélection sont affichés dans la langue de travail de l'utilisateur
Rappels ABAP
Outils d’analyse du code:
• Code inspector
• Outil de vérification d’objets du repository
• Permet la vérification d’objets individuels ou de groupe d’objets
• Permet de lancer des inspections qui, grâce à des variantes d’inspection, examinent
un groupe d’objets
Rappels ABAP
Outils d’analyse du code:
• Code inspector
• Outil de vérification d’objets du repository
• Permet la vérification d’objets individuels ou de groupe d’objets
• Permet de lancer des inspections qui, grâce à des variantes d’inspection, examinent
un groupe d’objets
Rappels ABAP
Outils d’analyse du code:
• Code inspector
• Outil de vérification d’objets du repository
• Permet la vérification d’objets individuels ou de groupe d’objets
• Permet de lancer des inspections qui, grâce à des variantes d’inspection, examinent
un groupe d’objets
ABAP
• Exercices pratiques
Introduction à l’ABAP OBJECT
• La programmation orientée objet
La programmation orientée objet
Objectifs
ABAP Objects
Modèle de programmation objet basé sur les classes et les interfaces d’ABAP
Objects
Il existe une inter-portabilité entre les deux modèles, il est possible d’appeler les
procédures classiques à partir des méthodes
ABAP Objects
• Concept
PROGRAMMATION ORIENTÉ OBJET
• Caractéristiques
• Les objets sont des abstractions du monde réél
• Les objets sont constitués de données et de fonctions appartenant à ces données
• Les objets peuvent être implémentés réalistement
• Avantages de la programmation orientée objet
• Structure et consistance du processus de développement améliorés
• Temps de maintenance réduit avec réduction du risque d’erreurs
• Meilleurs implication de l’utilisateur dans l’analyse, le design et la maintenance
• Les options d’évolution sont simples et plus sécurisées
PROGRAMMATION ORIENTÉ OBJET
Abstraction
Possibilité de refléter les processus tels qu’ils existent réellement
Fonctionnement réel modélisé en classes et objets
Encapsulation
Les détails de l’implémentation sont caches derrières des interfaces
Permet de s’assurer que la représentation abstraite d’un objet est utilisée
uniquement en accord avec sa définition
Héritage
Abstraction dérivées de spécifications existantes
Instanciation
Permet de créer plusieurs instances d’une même classe
POURQUOI ABAP OBJECT ?
ABAP
Procure les API essentielles (tel le Framework de contrôle) dans des classes
orientées objet
La plupart des nouveaux produit SAP sont rédigés en ABAP orienté objet
BASES DE LA PROGRAMMATION OO
Public
Tous les composants de cette section sont publics et peuvent être adressés par
toutes les sous classes, la classe elle-même ainsi que les autres classes externes
Protégé
Les composants de cette section peuvent être adressés et utilisés uniquement
dans la même classe elle-même ou ses sous classes
Privé
Peut uniquement être utilisé par les méthodes de la classe
DÉFINIR UNE SECTION DE VISIBILITÉ
INSTANCIATION PUBLIQUE
Permet à tout utilisateur de créer l’objet (par défaut)
INSTANCIATION PROTÉGÉE
Permet la création des objets dans les méthodes des sous classes
INSTANCIATION PRIVÉE
Seule la classe elle-même peut créer les objets
DÉFINITION DE L’INSTANTIATION
CLASS class_name
DEFINITION CREATE
PUBLIC | PROTECTED | PRIVATE.
ENDCLASS.
COMPOSANTS
LES COMPOSANTS D’UNE CLASSE
1. Attributs
2. Méthodes
3. Évènements
COMPOSANTS - ATTRIBUTS
Les attributs des composants
Toutes les données déclarées à l’intérieur de la méthode ont une portée locale
Une méthode d’instance peut accéder à tous les attributs et les événements
Syntaxe :
Pour instanciation
Syntaxe
Syntaxe:
Syntaxe:
Syntaxe
IF obj->functional_method( ) = abap_true.
…… do some thing
ENDIF.
APPEL DE MÉTHODE
oref->get_data( ).
class=>get_data( ).
P2 = oref->get_data( P1 ).
Quizz
Questions
• Le développement orienté objet a été créé bien après les langages de
programmation classiques vrai ou faux ?
• Que veut dire l’instanciation multiple ?
• Que veut dire l’encapsulation ?
• Dans ABAP Objet que veut dire une classe ?
• Quelle est la différence entre un composant statique et un composant d’instance ?
• Dans ABAP Object que veut dire un constructeur ?
• Quand on définit une classe, est ce qu’on doit toujours définir un constructeur ?
Variables de référence spéciales
Self-référence
Me
Super
DÉCLARATION REPORTÉE DE CLASSE
Syntaxe
CLASS c2 DEFINITION.
PUBLIC SECTION.
DATA c1ref TYPE REF TO c1.
ENDCLASS.
CLASS c1 DEFINITION.
PUBLIC SECTION.
DATA c2ref TYPE REF TO c2.
ENDCLASS.
Déclencheur
Déclencheur 11
Génère
Génère un
un événement
événement
Gestionnaire1
Gestionnaire1
Déclencheur
Déclencheur 22
Génère
Génère un
un événement
événement
Gestionnaire
Gestionnaire 22
TERMES
Évènements
Méthodes gestionnaires
SET HANDLER
handler_instance->handler_method
FOR ALL INSTANCES.
SET HANDLER
handler_instance->handler_method
FOR handled_instance.
ENREGISTRER GESTIONNAIRES
ABAP OBJECTS
• Gestion des exceptions
Gestion des exceptions
Les exceptions sont
Des évènements propagés lors de l’exécution d’un programme ABAP quand celui-
ci est interrompu parce qu’il est impossible de continuer son traitement d’une
manière convenable
CX_STATIC_CHECK
CX_DYNAMIC_CHECK
CX_NO_CHECK
PROPAGATION DES EXCEPTIONS
Il suffit de rajouter l’expression RAISING à la déclaration
d’une méthode (routine):
HÉRITAGE
INTERFACE
AMI
HÉRITAGE
Animal Superclasse
Généralisation
Sous-class
Spécialisation
Dog Cat
HÉRITAGE
HERITAGE
• Avantages
• Les relations de généralisation / spécialisation permettent, si utilisées
intelligemment, de réduire la redondance de code
• Les éléments communs aux classes ne sont stockés qu’une seule fois dans une
localisation centralisée
• Contraintes
• Il faut connaitre parfaitement la structure de la super classe pour décider si les
composants hérités sont suffisants pour la sous classe
• Il faut souvent adapter la super classe lors du rajout d’une sous classe.
HERITAGE
• Syntaxe de l’héritage
HERITAGE
• Propriétés de l’héritage dans ABAP object
• Pas de gestion de l’héritage multiple, une sous classe ne peut hériter que d’une
unique super classe
• Seuls les rajouts et modification d’attributs sont permis dans la sous classe, on ne
peut pas supprimer un élément de la superclasse dans une sous classe
• L’héritage est une relation à sens unique, la sous classe reconnait sa super classe
mais cette dernière ne connais pas toutes ses sous classes.
VISIBILITÉ DANS L’HÉRITAGE
Public
Contient tous les composants publics de toutes les superclasses et ses propres
composants publics ajoutés
Protégé
Contient tous les composants protégés de toutes les superclasses ainsi que ses
propres composants
Privé
Contient ses propres composants privés. Adressé par ses propres méthodes.
REDÉFINITION DE MÉTHODE
Ré-implémenter la méthode de la superclasse. Dans la partie
déclaration de la classe:
Syntaxe
Est utilisée comme un modèle pour les sous classes sans besoin de l’utilisation (et
donc l’instanciation) d’objets de cette classe
Syntaxe
ENDCLASS.
CLASSES FINALES ET MÉTHODES
Concept utilisé quand on souhaite protéger une classe ou une
méthode d’une spécialisation non contrôlée
METHOD constructor.
CALL METHOD super->constructor.
ENDMETHOD.
INTERFACE
Décrit la visibilité publique d’une section d’une classe donnée
dans une possibilité d’implémentation
Peut être définie localement ou globalement dans la
bibliothèque de classe
INTERFACES
Modélisation des interfaces dans les diagrammes UML
INTERFACE
Décrit la visibilité publique d’une section d’une classe donnée dans une
possibilité d’implémentation
INTERFACE intf1.
METHODS meth.
ENDINTERFACE.
INTERFACE intf2.
INTERFACES intf1.
METHODS meth.
ENDINTERFACE.
COMPOSITION DES INTERFACES
ENDCLASS.
CLASS class IMPLEMENTATION.
METHOD intf1~meth. … ENDMETHOD.
METHOD intf2~meth….. ENDMETHOD.
ENDCLASS.
ALIAS POUR LES COMPOSANTS
Syntaxe
Syntaxe
ALIAS POUR LES COMPOSANTS
Exemple
INTERFACE i1.
…
ENDINTERFACE.
CLASS c2 DEFINITION.
PUBLIC SECTION.
INTERFACES i1.
METHODS m2.
ENDCLASS.
AMI
EXEMPLE
CLASS c2 IMPLEMENTATION.
METHOD m2.
DATA oref TYPE REF TO c1.
CREATE OBJECT oref.
WRITE oref->a1.
ENDMETHOD.
ENDCLASS.
AMI
ABAP OBJECTS
• ABAP Workbench
CLASS BUILDER
Les classes globales
Elles sont crées dans l’outil Class Builder et visibles depuis tout le programme
ABAP
ABAP est OO
Mise a part les différences syntaxiques, ABAP supporte les classes aussi bien que
JAVA
En ABAP, la déclaration et l’implémentation d’une classe sont séparés en deux
parts distinctes
SIMILARITÉS - CLASSES
Mise a part les différences syntaxiques, ABAP supporte les classes aussi bien que
JAVA
En ABAP, la déclaration et l’implémentation d’une classe sont séparés en deux
parts distinctes
SIMILARITÉS – IMPLÉMENTATIONS
Pour les opérations basiques, la syntaxe peut être presque être traduite en
« un à un »
”->” (ou ”-”) remplace ”.”, ”.” remplace ”;”, ”me” remplace ”this”
En ABAP, les bloques sont délimités par des mots clés au lieu de {}
La propagation des Exceptions est gérée de la même manière
SIMILARITÉS – EXCEPTIONS ET HÉRITAGE
Lorsque l’on travaille avec les contrôles GUI, pour chaque objet sur le frontend, il
existe un objet proxy pour la classe correspondante dans les programmes ABAP.
CL_GUI_CUSTOMER_CONTAINER
CL_GUI_DOCKING_CONTAINER
CL_GUI_SPLITTER_CONTAINER
CL_GUI_DIALOGBOX_CONTAINER
CONTRÔLES D’APPLICATION
CL_GUI_TOOLBAR
CL_GUI_PICTURE
CL_GUI_HTML_VIEWER
CL_GUI_TEXTEDIT
CL_GUI_SIMPLE_TREE
CL_GUI_ALV_GRID
ENJOY DEMO CENTER
T-code DWDM
ABAP OJECTS
• BAdIs
ENHANCEMENT EN UTILISANT BUSINESS ADD-
Les BAdIs (Business Add-Ins) sont les plus importantes
technologies utilisées pour adapter SAP aux besoins
spécifiques
BSP
…
QUESTIONS ET RÉPONSES
Q&R
Merci de votre attention