Introduction ABAP #
Transaction codes essentiels #
Qu’est-ce qu’un Transaction Code ? #
Un Transaction Code (ou T-Code) est un raccourci textuel permettant d’accéder directement à une fonctionnalité SAP sans naviguer dans les menus. C’est l’équivalent d’une commande shell dans un terminal.
Saisir un Transaction Code #
Pour utiliser un T-Code :
- Placez le curseur dans le champ de commande (en haut à gauche)
- Tapez le code de transaction
- Appuyez sur Entrée
┌─────────────────────────────┐
│ /nSE80 │ ← Champ de commande
└─────────────────────────────┘
Syntaxe avancée #
| Syntaxe | Action |
|---|---|
SE80 |
Ouvre SE80 dans la session courante |
/nSE80 |
Ouvre SE80 en fermant l’écran actuel |
/oSE80 |
Ouvre SE80 dans une nouvelle session |
/nex |
Quitte la transaction courante |
/n |
Retour à l’écran SAP Easy Access |
Transaction codes pour le développement #
Voici les T-Codes incontournables pour débuter en ABAP :
| Transaction Code | Nom Complet | Utilisation |
|---|---|---|
| SE10 | Transport | Transaction CodeNom CompletUtilisation |
| SE80 | Object Navigator | Environnement de développement principal (packages, programmes, classes…) |
| ST22 | ABAP Runtime Error | Visualisation de la liste des dumps (erreurs runtime) |
Raccourcis clavier #
Pourquoi maîtriser les raccourcis ? #
Les raccourcis clavier peuvent multiplier par 3 votre vitesse de développement. Au lieu de naviguer dans les menus avec la souris, vous gardez les mains sur le clavier et restez concentré sur le code.
Raccourcis essentiels #
| Raccourci | Contexte | Action | Exemple d’usage |
|---|---|---|---|
| ALT + Clic | Dans un programme | Sélection verticale (colonne) | Indenter plusieurs lignes d’un coup |
| CTRL + Y | Dans une transaction | Sélection multiple | Sélectionner plusieurs lignes dans une liste |
| CTRL + D | Dans un programme | Duplique la ligne sélectionnée | Copier rapidement une ligne de code |
Ordre de transport (OT) et création – SE10 #
Objectifs #
- Comprendre le rôle d’un
ORDRE DE TRANSPORTdans SAP - Savoir créer un
OTdepuis la transactionSE10 - Identifier la structure d’un
ORDRE DE TRANSPORT(TACHES, OBJETCS) - Retenir les bonnes pratiques pour l’utilisation des
OT
L’objectif est de maîtriser les
OTpour transporter, organiser et suivre vos développements entre environnements SAP.
Définition #
Un
ORDRE DE TRANSPORT(OT) est un conteneur qui regroupe des objets de développement ou de configuration dans SAP.Il permet de transporter ces objets d’un ENVIRONNEMENT à un autre.
Schéma visuel
DEV (Développement) ──> QUAL (Recette/Validation) ──> PROD (Production)
Vous mettez vos objets (programmes, tables…) dans un carton (
OT), puis vous le transportez d’une maison (DEV) à une autre (QUAL/PROD). D’ailleurs, l’icône pour transporter unOTest un camion.
Un
OTlibéré est définitif et ne peut plus être modifié.
Pourquoi créer un OT ? #
Créer un OT permet de :
- Suivre vos développements
- Sauvegarder vos modifications
- Transporter vos créations vers d’autres systèmes SAP
| Environnement | Rôle | Exemple |
|---|---|---|
| DEV | Développement | Création et test du code |
| QUAL | Recette / Validation | Test fonctionnel par le métier |
| PROD | Production | Exécution réelle du programme |
Penser à l’
OTcomme un carton contenant vos objets : tout ce qui est dans ce carton suit le même trajet.
Types d’ordre de transport #
| Type | Utilisation | Exemples d’objets |
|---|---|---|
| Workbench Request | Objets de développement (ABAP, DDIC) | Programmes, tables, structures |
| Customizing Request | Paramètres de configuration | Tables de paramétrage |
| Transport of Copies | Copie temporaire d’un développement | Tests internes |
Workbench = code → DEV
Customizing = configuration → paramètres métiers.
Création d’un OT à partir de la transaction SE10 #
Étapes :
- Entrer
/nSE10puis valider
-
Cliquer sur
Créer(F6)
-
Choisir le type d’
OT→ Workbench ou Customizing → Valider
-
Donner une Description Synthétique et Enregistrer
-
Visualiser l’
OTet la tâche créée automatiquement pour l’utilisateur courant
Schéma simplifié de l’
OTet sa tâche :
OT (S4HK905579)
└─ Tâche Utilisateur (S4HK905580)
└─ Objets : Programmes, Tables, Includes
Une tâche correspond à ce que vous modifiez ou créez. Chaque utilisateur a sa propre tâche dans un
OTglobal. Autrement dit, plusieurs devs peuvent enregistrer des modifications/création dans un mêmeOT.
Structure d’un OT #
- Requête de transport : regroupe plusieurs tâches sous un même ID
- Tâche / Ordre de travail : contient les objets créés/modifiés par un utilisateur
Visualisation
OT Global (ID) ├─ Tâche 1 (Utilisateur A) → Objets ├─ Tâche 2 (Utilisateur B) → Objets
Ne jamais mélanger des objets de projets différents dans le même
OT.
Recherche d’un OT #
- Par ID : filtrer dans
SE10 - Par Auteur : filtrer pour voir les
OTcréés par un utilisateur - Recherche multiple : combiner critères pour retrouver
OTprécis
Ces filtres permettent de rapidement localiser vos développements et comprendre leur historique.
Bonnes pratiques #
| Bonne pratique | [!NOTE] |
|---|---|
Nom clair de l’OT |
Ex. : ZAELION_TRI_2025 |
| Grouper objets du même projet | Évite confusions et oublis |
Libérer OT uniquement après test complet |
OT libéré = définitif |
| Vérifier cohérence avec chef de projet | Avant tout transport en QAS/PRD |
Le nom et la structure de l’
OTsont essentiels pour le suivi et la maintenance.
Exercice pratique #
- Créer un
OTWorkbench “ZAELION_TRI_2025” (TRI sera remplacé par ton trigramme (1ère lettre de ton prénom et le 2ères lettres de ton nom de famille)) - Visualiser la structure
OTet vérifier l’ID de tâche
La libération de l’
OTfera l’objet d’un module propre
Resume #
- Un
OTest un conteneur pour vos objets SAP- Permet de transporter vos développements entre environnements
- Créé via
SE10et rattache vos programmes et objets- Structure :
OTglobal → tâches utilisateurs → objets- Respecter les bonnes pratiques pour éviter erreurs et confusion
Chaque
OTest un carton contenant vos créations, transporté de maison en maison (DEV → QUAL → PROD) de façon sécurisée et traçable.
Création d’un PACKAGE via SE80 ou SE21 #
Objectifs #
- Comprendre le rôle d’un
PACKAGEdans l’organisation des développements SAP - Savoir créer un
PACKAGEviaSE80ouSE21 - Comprendre la différence entre
PACKAGElocal et transportable - Organiser ses objets pour faciliter maintenance et transport
Les objectifs visent à maîtriser la structuration des objets ABAP pour simplifier transport, maintenance et collaboration.
Definition #
Un
PACKAGE(anciennementDEVELOPMENT CLASS) est un conteneur logique qui regroupe les objets de développement ABAP.
Le
PACKAGEest comme un classeur avec des tiroirs : chaque programme, table ou Include est rangé dans un tiroir identifié.
Visualisation PACKAGE : ZAELION_TRI_2025 ├─ Programme ZTRI_AELION_01 ├─ Include ZTRI_AELION_01_TOP ├─ Table ZT_AELION_2025
Un
PACKAGEfacilite le regroupement par projet ou module fonctionnel et est indispensable pour transporter des objets.
Pourquoi créer un PACKAGE ? #
Créer un PACKAGE permet :
- Organiser les développements par thème ou projet
- Éviter les conflits entre objets similaires
- Simplifier les transports via un OT cohérent
Type de PACKAGE |
Description | Exemple |
|---|---|---|
Local ($TMP) |
Non transportable, pour essais locaux | $TMP |
| Transportable | Lié à un OT, transportable entre systèmes | ZSD, ZMM, ZFI |
Un objet créé dans
$TMPne peut pas être transporté.
Z/Y = client → transportable ;
$TMP= test → local uniquement.
Creation d’un PACKAGE avec SE80 #
- Entrer
/nSE80
- Dans la liste déroulante, choisir
PACKAGE
-
Saisir le nom du
PACKAGE(ex.ZAELION_TRI_PACKAGE) → Entrer
-
Confirmer la création via popup
-
Renseigner la Description synthétique et valider
TRI - PACKAGE SPECIFIC AELION 2025
-
Associer ton OT
-
Valider
PACKAGE ZAELION_TRI_PACKAGE └─ OT associé (ex. S4HK905579) └─ Tâches (ex. S4HK905580) └─ Objets
Creation d’un PACKAGE avec SE21 #
- Entrer
/nSE21 - Saisir le nom du
PACKAGE→ Entrer - Renseigner Titre et
PACKAGEparent si applicable - Sauvegarder et associer un OT si transportable
SE21est plus direct,SE80permet de visualiser l’arborescence complète des objets.
Bonnes pratiques #
| Bonne pratique | Explication |
|---|---|
| Toujours commencer par Z ou Y | Convention SAP pour objets clients |
| Nom explicite et structuré | Exemple : ZSD_TRAINING_2025 |
| Grouper les objets par thème | Facilite maintenance et transport |
Lier PACKAGE à un OT cohérent |
Tous les objets liés partent ensemble |
Un
PACKAGEbien structuré réduit les erreurs, facilite la collaboration et maintient l’historique clair.
Exercice pratique #
- Créer un
PACKAGEtransportableZAELION_TRI_PACKAGE - Associer ton
OT - Vérifier dans
SE80l’arborescence duPACKAGE
Resume #
- Le
PACKAGEest un classeur logique pour regrouper objets ABAP- Permet d’organiser, maintenir et transporter les objets
- On le crée via
SE80ouSE21- Types : local (
$TMP) ou transportable (Z/Y)- Toujours associer un OT pour le transport sécurisé
Chaque
PACKAGEest un classeur où chaque tiroir contient vos programmes et Includes, organisé pour être facilement transporté et retrouvé.
Creation de programme – SE38 / SE80 #
Objectifs #
- Comprendre ce qu’est un
PROGRAMMEABAP et son rôle dans SAP - Créer un
PROGRAMMEviaSE38ouSE80 - Connaître les types de
PROGRAMMESdisponibles - Lancer, sauvegarder et transporter un
PROGRAMMEABAP
L’objectif est de comprendre comment structurer, créer et exécuter un
PROGRAMMEABAP dans SAP, tout en respectant l’organisation par PACKAGE et OT.
Definition #
Un
PROGRAMMEABAP est un ensemble d’instructions exécutables par SAP.
Il sert à traiter des données, afficher des résultats ou automatiser des actions.
Un
PROGRAMMEest comme une recette : chaque ligne de code est une instruction pour obtenir un résultat final. Le PACKAGE est votre classeur de recettes, et l’OT le carton pour transporter les recettes.
- Lire une table client
- Calculer des totaux, traiter des chaîne de caractère
- Afficher un rapport à l’écran
Types de programmes #
| Type de PROGRAMME | Description | Exemple |
|---|---|---|
| Exécutable (Type 1) | PROGRAMME principal exécuté par l’utilisateur |
Rapport, traitement, liste clients |
| Module pool (Type M) | PROGRAMME avec écrans personnalisés (dynpros) |
Application de saisie interne |
| Include (Type I) | Bloc de code réutilisable inclus dans un autre PROGRAMME |
Déclaration commune de variables |
| Function group (F) | Contient des fonctions réutilisables | Fonctions standard SAP |
| Class pool (K) | Définition d’une classe ABAP orientée objet | Classe utilitaire, gestion de logs |
Le type détermine l’usage et l’interface du
PROGRAMME.
Creation d’un programme avec SE80 #
-
Entrer
/nSE80
-
Choisir
Programme
-
Saisir le nom du
PROGRAMME→ EntrerZAELION_FGI_HELLOWORLD
-
Confirmer la création via les popups
-
Vérifier Titre et Type
Programme exécutableet Sauvegarder
-
Associer PACKAGE et OT
-
Valider
-
Ouvrir le
PROGRAMME(double clique)
-
Passer en mode Modifiable (Ctrl+F1)
SE80offre la visualisation arborescente :PROGRAMME→ Includes → Tables → Fonctions.
Creation d’un programme avec SE38 #
- Entrer
/nSE38 - Saisir le nom du
PROGRAMME(ex. ZAELION_TRI_HELLOWORLD) - Renseigner le Titre
- Sélectionner
Programme exécutable - Sauvegarder et choisir le PACKAGE (ex. ZAELION_2025_FGI)
- Associer un OT et valider
- Passer en mode Modifiable (Ctrl+F1)
Suivre toujours le flux : Nom Z/Y → PACKAGE → OT → Activer → Exécuter.
Premier pas dans le programme #
PROGRAMME généré automatiquement :
*&---------------------------------------------------------------------*
*& Report ZAELION_TRI_HELLOWORLD
*&---------------------------------------------------------------------*
REPORT ZAELION_TRI_HELLOWORLD.
Ajouter le code :
WRITE: 'Bonjour le monde !'.
Tu devrais avoir :
*&---------------------------------------------------------------------*
*& Report ZAELION_TRI_HELLOWORLD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZAELION_TRI_HELLOWORLD.
WRITE: 'Bonjour le monde !'.
WRITE affiche du texte à l’écran. Cela permet de vérifier que le
programmefonctionne avant d’ajouter des traitements complexes.
Etapes d’execution #
-
Enregistrer (Ctrl+S)
-
Activer (Ctrl+F3)
-
Exécuter (F8)
-
Retour arrière (F3)
Suivre toujours l’ordre : Enregistrer → Activer → Exécuter pour éviter erreurs de compilation.
Bonnes pratiques #
| Bonne pratique | Explication |
|---|---|
Nommer un PROGRAMME avec Z ou Y |
Convention SAP pour objet client |
Lier le PROGRAMME à un PACKAGE |
Facilite organisation et transport |
| Associer un OT cohérent | Evite dispersion d’objets |
| Activer systématiquement | PROGRAMME non activé = non exécutable |
Commencer simple (WRITE) |
Tester exécution avant logique complexe |
Exercice pratique #
- Créer un
PROGRAMMEZAELION_TRI_HELLOWORLD - Ajouter un
WRITEsimple - Sauvegarder, Activer, Exécuter
- Vérifier le message affiché
- Observer la structure PACKAGE + OT dans
SE80
Resume #
- Un
PROGRAMMEABAP est une suite d’instructions exécutables- Sert à traiter des données, afficher des résultats, automatiser des actions
- Types : Exécutable, Module pool, Include, Function group, Class pool
- Créé via
SE38ouSE80- Doit être sauvegardé dans un PACKAGE et associé à un OT
- Execution : Enregistrer → Activer → Exécuter
- Commencer simple avec
WRITEpour vérifier fonctionnement
Le
PROGRAMMEest la recette, le PACKAGE le classeur des recettes, et l’OT le carton pour transporter vos recettes vers d’autres systèmes.
Creation d’un INCLUDE – SE38 / SE80 #
Objectifs #
- Comprendre le rôle d’un
INCLUDEdans un programme ABAP - Créer un
INCLUDEviaSE38ouSE80 - Savoir l’intégrer dans un programme principal
- Organiser son code ABAP pour plus de clarté et de réutilisation
L’objectif est de modulariser le code ABAP afin de le rendre plus lisible, réutilisable et facile à maintenir, tout en permettant le travail collaboratif.
Definition #
Un
INCLUDEest un fichier de code réutilisable inséré dans un ou plusieurs programmes ABAP.
Il permet de séparer le code pour le rendre plus lisible et modulaire.
Un
INCLUDEest comme un chapitre d’un livre : le programme principal est le livre complet, et chaqueINCLUDEest un chapitre que l’on peut écrire ou réutiliser ailleurs.
Les
INCLUDESne peuvent être exécutés seuls. Ils doivent être intégrés dans un programme principal.
Pourquoi utiliser des INCLUDES ? #
| Avantage | Description |
|---|---|
| Lisibilité | Séparer déclarations, traitements et formulaires |
| Réutilisabilité | Partager le même code entre plusieurs programmes |
| Maintenance facilitée | Modifier une partie sans impacter l’ensemble du programme |
| Collaboration | Plusieurs développeurs peuvent travailler sur des INCLUDES différents |
Toujours penser “un
INCLUDE= un rôle précis” (top, écran, logique) pour éviter la confusion.
Types d’INCLUDES #
Type d’INCLUDE |
Contenu habituel | Exemple |
|---|---|---|
INCLUDE de déclaration |
Variables globales, constantes, types | ZAELION_TRI_HELLOWORLD_TOP |
INCLUDE d’affichage d’écran |
Logique d’écran | ZAELION_TRI_HELLOWORLD_SCR |
INCLUDE de logique |
Sous-Logique principale du programme | ZAELION_TRI_HELLOWORLD_F01 |
Le type n’est pas imposé par SAP, c’est une convention pour structurer votre programme ABAP.
Creation d’un INCLUDE via SE80 #
*&---------------------------------------------------------------------*
*& Report ZAELION_TRI_HELLOWORLD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZAELION_TRI_HELLOWORLD.
WRITE: 'Bonjour le monde !'.
- Ajouter dans le programme :
INCLUDE ZAELION_TRI_HELLOWORLD_TOP.
Tu devrez avoir ceci :
*&---------------------------------------------------------------------*
*& Report ZAELION_FGI_HELLOWORLD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZAELION_TRI_HELLOWORLD.
WRITE: 'Bonjour le monde !'.
INCLUDE ZAELION_TRI_HELLOWORLD_TOP.
-
Double-cliquer sur le nom de l’
INCLUDE→ popup de création → valider → sauvegarder si demander
-
Ajouter un WRITE pour tester :
WRITE: 'Bonjour le monde depuis l''INCLUDE TOP !'.
Tu devrez avoir ceci :
*&---------------------------------------------------------------------*
*& Include ZAELION_FGI_HELLOWORLD_TOP
*&---------------------------------------------------------------------*
WRITE: 'Bonjour le monde depuis l''INCLUDE TOP !'.
-
Sauvegarder, Activer les objets, Exécuter le programme principal pour voir le résultat
Vérifier toujours l’intégration : un
INCLUDEnon activé empêche l’exécution correcte du programme principal.
Bonnes pratiques #
| Bonne pratique | [!IMPORTANT] |
|---|---|
Nommer les INCLUDES avec le préfixe du programme |
Identifier facilement l’INCLUDE et son programme parent |
Regrouper les INCLUDES par fonction |
Ex : …_TOP, …_SCR, …_F01 |
| Activer systématiquement après modification | Evite que le programme principal ne compile pas |
Documenter le rôle de chaque INCLUDE |
Ajouter un commentaire en haut du fichier |
| DRY – Ne pas répéter de code | Centraliser la logique commune dans un seul INCLUDE |
Exercice pratique #
- Modifier le WRITE (ajout de
/après leWRITE:)
WRITE:/ 'Bonjour le monde !'.
- Créer l’
INCLUDEZAELION_TRI_HELLOWORLD_TOP
INCLUDE ZAELION_TRI_HELLOWORLD_TOP.
- Ajouter le WRITE dans l’
INCLUDE:
WRITE:/ 'Bonjour le monde depuis l''INCLUDE TOP !'.
- Sauvegarder, Activer les objets
- Exécuter le programme principal et vérifier l’affichage
- Faite de même avec les
INCLUDESZAELION_TRI_HELLOWORLD_SCRetZAELION_TRI_HELLOWORLD_F01
SOLUTION
REPORT ZAELION_TRI_HELLOWORLD
*&---------------------------------------------------------------------*
*& Report ZAELION_TRI_HELLOWORLD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZAELION_TRI_HELLOWORLD.
WRITE:/ 'Bonjour le monde !'.
INCLUDE ZAELION_TRI_HELLOWORLD_TOP.
INCLUDE ZAELION_TRI_HELLOWORLD_SCR.
INCLUDE ZAELION_TRI_HELLOWORLD_F01.
INCLUDE ZAELION_TRI_HELLOWORLD_TOP
*&---------------------------------------------------------------------*
*& Include ZAELION_FGI_HELLOWORLD_TOP
*&---------------------------------------------------------------------*
WRITE:/ 'Bonjour le monde depuis l''INCLUDE TOP !'.
INCLUDE ZAELION_TRI_HELLOWORLD_SCR
*&---------------------------------------------------------------------*
*& Include ZAELION_TRI_HELLOWORLD_SCR
*&---------------------------------------------------------------------*
WRITE:/ 'Bonjour le monde depuis l''INCLUDE SCR !'.
INCLUDE ZAELION_TRI_HELLOWORLD_F01
*&---------------------------------------------------------------------*
*& Include ZAELION_TRI_HELLOWORLD_F01
*&---------------------------------------------------------------------*
WRITE:/ 'Bonjour le monde depuis l''INCLUDE F01 !'.
Exécution :
Resume #
- Un
INCLUDEcontient du code réutilisable dans un ou plusieurs programmes- Se crée via
SE38ouSE80et s’intègre dans un programme avecINCLUDE- Permet de rendre le code plus clair, modulaire et facile à maintenir
- Doit être sauvegardé dans un PACKAGE et associé à un OT
Chaque
INCLUDEest un chapitre du livre que constitue votre programme. On peut le modifier, le réutiliser et le transporter sans toucher au reste du livre.
Gestion des dumps et du débogueur – ST22
#
Objectifs #
- Comprendre ce qu’est un
DUMPdans SAP - Savoir analyser un
DUMPvia la transactionST22 - Découvrir le débogueur ABAP et apprendre à l’utiliser
- Identifier la différence entre débogage via
/HetPOINTS D'ARRET
L’objectif est d’apprendre à diagnostiquer les erreurs ABAP et à suivre l’exécution du code pour corriger les anomalies.
Définition #
Un
DUMP(ouABAP Runtime Error) est une erreur fatale qui arrête un programme ABAP pour protéger le système.
SAP enregistre alors un rapport détaillé dansST22pour analyser la cause.
C’est comme un écran bleu sur un ordinateur, mais SAP fournit toutes les informations nécessaires pour comprendre et corriger le problème.
Exemples de DUMPs courants #
Code du DUMP |
Signification | Exemple |
|---|---|---|
| CONVT_NO_NUMBER | Erreur conversion texte → nombre | “ABC” converti en entier |
| SYNTAX_ERROR | Erreur de syntaxe ABAP | Programme mal activé ou Include manquant |
Les
DUMPSsont souvent causés par des valeurs inattendues ou des erreurs de code. Les lire attentivement permet de trouver la source exacte.
Analyse d’un DUMP avec ST22 #
-
Entrer
/nST22 -
Choisir la période (“Today” ou filtrer par utilisateur/programme)
-
Cliquer sur le
DUMPà analyser
-
Examiner les sections clés :
| Section | Rôle |
|---|---|
| Short Text | Description rapide de l’erreur |
| Error Analysis | [!IMPORTANT] technique |
| Source Code Extract | Ligne ABAP où le programme a planté |
| Variables in Memory | Valeurs des variables au moment du DUMP |
| Call Stack | Ordre d’exécution des programmes et includes |
Double-cliquer sur une ligne du Source Code Extract ouvre directement SE38 à la ligne fautive.
Utiliser le DEBUGUEUR ABAP #
Le débogueur permet d’exécuter le code ligne par ligne, inspecter/modifier les variables et comprendre le comportement du programme.
Débogage d’une transaction – /H #
- Entrer
/Hdans la barre de commande → Debugging switched on - Exécuter la transaction à analyser
- SAP ouvre automatiquement le débogueur avant l’exécution
| Action | Touche / Icône | Description |
|---|---|---|
| Suivant | F5 | Exécute la ligne courante, entre dans les sous-programmes |
| Sauter | F6 | Passe la ligne sans entrer dans les sous-appels |
| Continuer | F8 | Exécute jusqu’au prochain point d’arrêt |
| Breakpoint dynamique | Ctrl+Shift+F8 | Pause sur une ligne spécifique |
Activer /H avant de cliquer ou valider un formulaire pour observer le flux complet.
Débogage d’un programme – SE38 / SE80 #
-
Ouvrir le programme via SE38 ou SE80
-
Ajouter un point d’arrêt sur une ligne (cliquer dans la marge → point rouge)
-
Sauvegarder et exécuter le programme (F8)
| Onglet | Utilité |
|---|---|
| Variables locales/globales | Voir les valeurs des variables en mémoire |
| Tables internes | Explorer le contenu des itabs |
| Call Stack | Voir l’ordre d’exécution des programmes |
| Breakpoints/Watchpoints | Gérer les arrêts et surveiller les variables |
Les variables peuvent être modifiées directement dans le débogueur pour tester des scénarios.
Bonnes pratiques #
| Bonne pratique | [!IMPORTANT] |
|---|---|
Lire attentivement ST22 |
Identifier la cause exacte du DUMP |
| Utiliser /H pour transactions | Comprendre le flux complet |
| Utiliser points d’arrêt pour code | Tester logiques et corrections |
| Modifier variables avec prudence | Ne pas modifier production directement |
| Documenter les corrections | Facilite le suivi et la maintenance |
Exercice pratique #
- Générer volontairement un
DUMPsimple (ex. DIVISION BY ZERO)
*&---------------------------------------------------------------------*
*& Report ZAELION_FGI_HELLOWORLD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zaelion_fgi_helloworld.
WRITE:/ 'Bonjour le monde !'.
INCLUDE zaelion_fgi_helloworld_top.
INCLUDE zaelion_fgi_helloworld_scr.
INCLUDE zaelion_fgi_helloworld_f01.
*&---------------------------------------------------------------------*
*& DUMP
*&---------------------------------------------------------------------*
DATA: lv_num TYPE i,
lv_den TYPE i,
lv_res TYPE i.
lv_num = 10.
lv_den = 0.
lv_res = lv_num / lv_den.
WRITE: / 'Résultat :', lv_res.
- Exécuter
- Analyser le
DUMPdansST22 - Ajouter un point d’arrêt dans ton programme, exécuter et observer les variables
Résumé #
- Un
DUMPest une erreur fatale ABAP qui arrête le programme et génère un rapport dansST22ST22permet d’analyser : message, code fautif, variables, call stack- Débogueur ABAP : exécuter ligne par ligne, inspecter/modifier variables
- Accès : /H pour transactions, point d’arrêt pour programmes
- Fonctions clés : F5 (suivant), F6 (sauter), F8 (continuer), breakpoints dynamiques
ST22= carnet d’incidents, débogueur = microscope pour suivre ligne par ligne ce que fait le programme.