ABAP (Advanced Business Application Programming) est le langage de programmation propriétaire de SAP. Si vous travaillez dans l'écosystème SAP et souhaitez personnaliser des rapports, créer des interfaces ou automatiser des traitements, la programmation ABAP est une compétence incontournable. Pourtant, beaucoup d'utilisateurs SAP hésitent à se lancer : l'environnement paraît complexe, la syntaxe semble austère et il est difficile de savoir par où commencer.
Ce guide complet a été conçu pour lever ces obstacles. Que vous soyez consultant SAP fonctionnel qui veut comprendre le code, développeur débutant ou analyste métier souhaitant personnaliser des rapports, vous trouverez ici tout ce qu'il faut pour débuter en programmation ABAP avec méthode et confiance.
Qu'est-ce qu'ABAP et pourquoi l'apprendre en 2026 ?
ABAP est né dans les années 1980 avec les premiers systèmes SAP. Depuis, il a considérablement évolué : ABAP Objects (programmation orientée objet), ABAP RESTful Application Programming Model (RAP) pour les applications S/4HANA, et l'intégration croissante avec SAP BTP. En 2026, connaître ABAP reste une compétence très recherchée sur le marché du travail SAP.
Concrètement, ABAP vous permet de :
- Créer des rapports personnalisés avec extraction et mise en forme de données SAP
- Développer des formulaires d'impression (SmartForms, Adobe Forms)
- Écrire des user-exits et BADIs pour adapter le comportement standard SAP
- Créer des interfaces entre SAP et des systèmes externes (IDocs, BAPIs, API REST)
- Automatiser des traitements batch via des programmes en arrière-plan
Même si vous ne devenez pas développeur ABAP à temps plein, comprendre la programmation ABAP vous aide à mieux dialoguer avec les équipes techniques, à lire le code existant et à estimer la faisabilité de développements personnalisés.
Les outils de développement ABAP indispensables
Avant d'écrire votre première ligne de code, vous devez connaître les principales transactions de l'environnement de développement SAP.
SE38 : l'éditeur ABAP
SE38 est l'éditeur principal pour créer, modifier et exécuter des programmes ABAP. C'est là que vous passerez la plupart de votre temps en tant que développeur débutant. Pour ouvrir SE38, saisissez simplement cette transaction dans la barre de commandes SAP et appuyez sur Entrée.
Dans SE38, vous pouvez :
- Créer un nouveau programme avec
Créer - Ouvrir un programme existant pour le modifier
- Exécuter un programme directement (F8)
- Activer votre code (Ctrl+F3) pour le rendre disponible
SE80 : l'Object Navigator
SE80 est l'environnement de développement intégré (IDE) de SAP, plus complet que SE38. Il permet de naviguer dans la hiérarchie des objets de développement : packages, programmes, classes, fonctions, vues et plus encore. Pour les projets d'une certaine taille, SE80 est préférable car il offre une meilleure visibilité sur l'ensemble du code.
SE37 : les modules fonctionnels
SE37 permet de créer et de consulter des modules fonctionnels (Function Modules) — des blocs de code réutilisables, équivalents aux fonctions ou procédures dans d'autres langages. Beaucoup de fonctionnalités SAP standard sont exposées sous forme de modules fonctionnels que vous pouvez appeler dans votre code.
ST05 : le trace SQL
ST05 est une transaction de diagnostic qui enregistre les requêtes SQL envoyées à la base de données. Elle est très utile pour optimiser les performances de vos sélections SELECT et comprendre comment SAP accède aux données.
Structure d'un programme ABAP : les bases
Un programme ABAP de base se compose de plusieurs sections. Voici la structure minimale d'un programme de rapport :
REPORT z_mon_premier_rapport.
* --- Déclarations de données ---
DATA: lv_message TYPE string,
lt_table TYPE TABLE OF mara.
* --- Logique principale ---
START-OF-SELECTION.
lv_message = 'Bonjour SAP !'.
WRITE: / lv_message.
L'instruction REPORT
Tout programme ABAP commence par REPORT suivi du nom du programme. Par convention, les noms de programmes créés par les clients SAP commencent par Z (ou Y) pour les distinguer des programmes SAP standard.
La section DATA
La section DATA déclare les variables locales du programme. En ABAP, chaque variable doit être déclarée avec son type avant d'être utilisée. Les types courants incluent :
| Type | Description | Exemple |
|---|---|---|
STRING |
Chaîne de caractères de longueur variable | DATA: lv_text TYPE string. |
CHAR (C) |
Chaîne de longueur fixe | DATA: lv_code TYPE c LENGTH 4. |
INT4 (I) |
Nombre entier | DATA: lv_count TYPE i. |
DECFLOAT16 (F) |
Nombre décimal | DATA: lv_amount TYPE f. |
DATS (D) |
Date (AAAAMMJJ) | DATA: lv_date TYPE d. |
TIMS (T) |
Heure (HHMMSS) | DATA: lv_time TYPE t. |
L'événement START-OF-SELECTION
START-OF-SELECTION marque le début de la logique principale du programme. C'est ici que vous écrivez vos instructions de lecture de données, de calcul et d'affichage.
Lire des données SAP avec SELECT
La commande SELECT est au cœur de la programmation ABAP. Elle permet d'interroger la base de données SAP (tables transparentes, vues, etc.). Voici les formes les plus courantes :
Sélectionner une seule ligne
DATA: ls_material TYPE mara.
SELECT SINGLE *
FROM mara
INTO ls_material
WHERE matnr = '000000000100000001'.
IF sy-subrc = 0.
WRITE: / 'Article trouvé :', ls_material-maktx.
ENDIF.
sy-subrc est une variable système ABAP qui indique si la dernière opération a réussi (0 = succès).
Sélectionner plusieurs lignes dans un tableau interne
DATA: lt_materials TYPE TABLE OF mara,
ls_material TYPE mara.
SELECT *
FROM mara
INTO TABLE lt_materials
WHERE mtart = 'FERT'
AND matkl = 'A001'
UP TO 100 ROWS.
LOOP AT lt_materials INTO ls_material.
WRITE: / ls_material-matnr, ls_material-maktx.
ENDLOOP.
Tableaux internes et structures en ABAP
Les tableaux internes sont l'une des structures les plus puissantes d'ABAP. Ils permettent de stocker plusieurs lignes de données en mémoire et de les manipuler avec des instructions spécialisées.
Déclarer un tableau interne
* Structure personnalisée
TYPES: BEGIN OF ty_ligne,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
mtart TYPE mara-mtart,
END OF ty_ligne.
DATA: lt_lignes TYPE TABLE OF ty_ligne,
ls_ligne TYPE ty_ligne.
Manipuler un tableau interne
* Ajouter une ligne
CLEAR ls_ligne.
ls_ligne-matnr = '000000000100000001'.
ls_ligne-maktx = 'Article test'.
ls_ligne-mtart = 'FERT'.
APPEND ls_ligne TO lt_lignes.
* Lire une ligne par index
READ TABLE lt_lignes INTO ls_ligne INDEX 1.
* Lire une ligne par clé
READ TABLE lt_lignes INTO ls_ligne
WITH KEY matnr = '000000000100000001'.
* Boucler sur le tableau
LOOP AT lt_lignes INTO ls_ligne.
WRITE: / ls_ligne-matnr, ls_ligne-maktx.
ENDLOOP.
* Trier le tableau
SORT lt_lignes BY matnr ASCENDING.
* Compter les lignes
WRITE: / 'Nombre de lignes :', lines( lt_lignes ).
Instructions de contrôle de flux
IF / ELSEIF / ELSE
DATA: lv_stock TYPE i VALUE 50.
IF lv_stock > 100.
WRITE: / 'Stock élevé'.
ELSEIF lv_stock > 20.
WRITE: / 'Stock normal'.
ELSE.
WRITE: / 'Stock faible — réapprovisionnement requis'.
ENDIF.
CASE / WHEN
DATA: lv_statut TYPE char1 VALUE 'A'.
CASE lv_statut.
WHEN 'A'.
WRITE: / 'Actif'.
WHEN 'I'.
WRITE: / 'Inactif'.
WHEN 'D'.
WRITE: / 'Supprimé'.
WHEN OTHERS.
WRITE: / 'Statut inconnu'.
ENDCASE.
Bonnes pratiques pour débutants ABAP
Apprendre ABAP ne se résume pas à connaître la syntaxe. Voici quelques règles fondamentales qui feront de vous un développeur apprécié de votre équipe :
1. Utiliser le préfixe Z ou Y pour vos objets
Ne jamais créer d'objets dans l'espace de noms SAP standard. Tous vos programmes, tables, fonctions et classes doivent commencer par Z ou Y.
2. Nommer vos variables avec des préfixes clairs
La convention de nommage ABAP la plus répandue utilise des préfixes :
lv_: variable locale scalaire (Local Variable)lt_: tableau interne local (Local Table)ls_: structure locale (Local Structure)gv_/gt_/gs_: variables globaleslc_: constante locale (Local Constant)
3. Éviter SELECT * et limiter les résultats
Sélectionner uniquement les champs nécessaires réduit la charge sur la base de données :
* À éviter
SELECT * FROM mara INTO TABLE lt_materials.
* Mieux
SELECT matnr mtart matkl
FROM mara
INTO CORRESPONDING FIELDS OF TABLE lt_materials
WHERE mtart = 'FERT'
UP TO 500 ROWS.
4. Utiliser WHERE dans les SELECT
Ne jamais faire de SELECT sans clause WHERE sur des tables volumineuses — cela peut paralyser le système.
5. Tester dans un système de développement
Ne jamais tester du code ABAP directement en production. Les systèmes SAP sont organisés en paysages : DEV → QAS → PRD. Le développement se fait toujours en DEV.
Plan d'apprentissage ABAP débutant
Voici un parcours progressif pour passer de zéro à opérationnel en programmation ABAP :
Semaine 1-2 : Fondamentaux
- Comprendre l'architecture SAP et le rôle d'ABAP
- Maîtriser SE38 et SE80
- Écrire les premières instructions WRITE, DATA, IF
Semaine 3-4 : Données
- Maîtriser SELECT, SELECT SINGLE, SELECT INTO TABLE
- Comprendre les tableaux internes : APPEND, LOOP AT, READ TABLE, SORT
- Manipuler les structures et types personnalisés
Semaine 5-6 : Rapports
- Créer un rapport complet avec paramètres de sélection
- Afficher les résultats dans un ALV Grid (transaction
SALVouREUSE_ALV) - Optimiser les performances avec ST05
Semaine 7-8 : Modules et réutilisabilité
- Créer et appeler des Form Routines (PERFORM / FORM)
- Comprendre les Function Modules (SE37)
- Introduction aux classes ABAP Objects
Conclusion
La programmation ABAP est accessible à quiconque est prêt à investir quelques heures par semaine dans son apprentissage. Les bases — SELECT, tableaux internes, LOOP AT, IF/CASE — se maîtrisent en quelques semaines. Ce qui fait la différence, c'est la pratique régulière sur un vrai système SAP.
Pour aller plus loin avec des exercices pratiques, des captures d'écran commentées de SE38 et SE80, et une dizaine de programmes ABAP prêts à l'emploi, téléchargez notre guide PDF ABAP débutant — disponible en français et en anglais.
Prêt à écrire vos premiers programmes ABAP ?
Notre guide PDF ABAP débutant couvre la syntaxe essentielle, les tableaux internes, les SELECT, les ALV et les bonnes pratiques — avec exercices corrigés et exemples réels.
Ressource associée
Télécharger le guide ABAP débutant PDF →
Accédez à notre guide PDF ABAP débutant complet : syntaxe, tableaux internes, SELECT, LOOP AT, SE38, SE80 — avec exercices corrigés et exemples réels.
Télécharger le guide ABAP débutant PDF →