SAP : guide de l’ABAP debugger

Posté dans : SAP ABAP 0
Guide de l'ABAP debugger
Guide de l’ABAP debugger

ABAP debugger : Introduction

Je sais ce que vous allez vous dire. De façon générale, le mot « ABAP debugger » peut faire peur. D’ailleurs, c’est quoi ce mot barbare ? De fait, pourquoi ABAP debugger et en quoi est-ce utile ?

À vrai dire, cela provient de l’anglais « To debug », qui pourrait se traduire en français par le mot « Déboguer ». En réalité, cela ne vous aide pas beaucoup plus je parie… OK.

Pour commencer, quel consultant ne s’est jamais retrouvé face à ceci :

Dump
Dump

En effet, nul doute que la première fois que cela nous arrive, nous sommes un peu perdu…

Lorsqu’un développeur crée un programme, malgré toute l’aide disponible, que ce soit des contrôles de syntaxe ou encore des vérifications du logiciel lors de la compilation de celui-ci, il arrive régulièrement que tout ne soit pas parfait, et que certains problèmes n’ont pas été envisagé.

Ainsi, il est indéniable que l’ABAP debugger est avant tout un outil destiné aux développeurs, pour les aider à éviter ce genre de messages, qu’on appelle « Dump« . En effet, c’est un outil très important qui permet d’analyser les programmes ABAP pour corriger les erreurs.

Néanmoins, nous allons voir ensemble à quel point cet outil peut s’avérer utile pour tout consultant SAP et surtout, nous allons voir comment l’utiliser. Effectivement, l’ABAP debugger pour aussi être utilisé pour analyser mais surtout comprendre les programmes déjà existants.

De plus, il est à noter que SAP propose 2 debugger : le classique et sa nouvelle version. Par ailleurs, nous ne traiterons ensemble que cette nouvelle version, disponible depuis SAP NetWeaver 2004.

D’abord, rendons-nous dans l’interface de l’ABAP debugger. À cette fin, il existe plusieurs moyens d’y accéder :

ABAP debugger : Accès

Repository Browser
Repository Browser

Afin de pouvoir y accéder, il faut se rendre dans la transaction SE80 : Repository Browser. Ici, vous pouvez sélection un programme par exemple, puis faire :

  • Tout d’abord, effectuer un clic droit sur le nom du programme
  • Ensuite, aller dans le menu « Exécuter »
  • Enfin, cliquer sur « Debugging »
Job
Job

En vous rendant dans la transaction SM37 (Job overview), vous pouvez chercher un job pour simuler son exécution en mode debug. Pour cela :

  • Le job doit être terminé
  • Sélectionner le job à l’aide de la check box
  • Entrer la commande « jdbg » dans la barre de transaction
  • Appuyer sur « Enter »
Programmes
Programmes

Concernant les différents programmes, méthodes, fonctions modules, … il est possible de lancer l’ABAP debugger en plaçant un Breakpoint. Nous reviendrons sur ce terme un peu plus tard mais simplement, ce point va permettre de lancer le debugger lors de l’exécution du programme

  • Rendez-vous dans un programme de votre choix (via repository)
  • Cliquez sur la colonne beige, à côté du code
  • Un petit panneau « STOP » apparaît
  • Votre Breakpoint est placé

A la prochaine exécution du programme, le debugger s’ouvrira

Transactions
Transactions

Lorsque vous vous trouvez dans une transaction, indiquez /h et appuyer sur « Enter ».

SAP vous indiquera alors le message suivant :

Debugging switch on
Debugging switch on

ABAP debugger : Layout

Ainsi, nous voilà dans notre ABAP debugger. Il se présente comme suit :

ABAP debugger
ABAP debugger

1. Exécution du programme

En effet, lorsque le programme est en mode « run », une petit flèche jaune indique la position actuelle dans laquelle vous vous trouvez. Il faut savoir qu’à cette ligne, l’opération n’a pas encore été exécutée.

Position actuelle
Position actuelle

Puis, pour se déplacer dans le code, il existe plusieurs moyens :

Single Step

La prochaine opération sera exécutée, puis SAP s’arrêtera.
Raccourci clavier : F5

Execute

La prochaine opération sera exécutée. Attention, si le curseur se situe en face d’un block (tel qu’une routine, un fonction module, etc.), celui-ci sera entièrement exécuté. SAP s’arrêtera ensuite.
Raccourci clavier : F6

Return

Le block en cours (tel qu’une routine, un fonction module, etc.) sera entièrement exécuté. SAP retournera alors dans le code ayant appelé le block exécutable.
Raccourci clavier : F7

Continue

Process le code jusqu’au prochain Break point / Watchpoint. S’il n’y en a pas / plus, le programme sera exécuté en entier et le debugger se fermera.
Raccourci clavier : F8

Go to statement

Il est possible de se déplacer à un endroit bien précis dans le code. Pour déplacer le curseur à l’endroit désiré, effectuez un clic droit sur l’opération désirée et choisissez : Goto Statement. Votre curseur se déplacera alors à cet endroit.

Goto Statement
Goto Statement

2. Les différentes présentations / desktop

Tout d’abord, notons que SAP propose à l’utilisateur plusieurs choix de présentation du debugger. En effet, nous pouvons distinguer 3 Desktop différents, ainsi qu’une présentation standard. En fait, SAP va simplement disposer les menus de manière différente, en fonction de votre choix. Voici 2 exemples :

Desktop 1

Desktop 1
Desktop 1

Desktop 3

Desktop 3
Desktop 3

3. Zone des variables

En vue d’accéder aux différentes variables présentes dans le programme, SAP propose cette zone de travail. Décortiquons ensemble les différents menus :

Pour commencer, des variables peuvent être ajoutées dans ces 2 tableaux « Variables 1 et 2 ». En effet, il suffit de double cliquer sur la variable choisie et celle-ci apparaîtra :

Tab Variable 1
Tab Variable 1

De ce fait, sa valeur est affichée, à droite de son nom. Par ailleurs, Il est tout à fait possible de l’afficher également en écrivant son nom dans le champ approprié.

Ensuite, il est possible d’afficher uniquement les variables qu’on appellera Variables « Locales ».

À vrai dire, SAP distingue 2 types de variable. La première est la variable locale. Celle-ci n’est disponible dans le code que lorsque l’on accède à son bloc.

Pour donner une exemple simple, lorsqu’un programme fait appelle à une Routine, les variables présentes dans la routine seront des variables « Locales ». Elles ne seront disponibles que pendant l’exécution de la routine.

Enfin, à l’inverse, les variables globales sont accessibles partout dans le programme. SAP leur alloue un tableau, dans lequel vous pourrez toutes les retrouver.

4. Le code source

Pour terminer la présentation du layout, abordons rapidement le code source présent dans le debugger.

Nul doute que cette partie est extrêmement importante puisque celle-ci vous indiquera en permanence où se situe SAP, ce qu’il compte faire ensuite, quelles sont les étapes qui ont été sautée lors de l’exécution du programme, etc.

Ainsi, il est d’une importance capitale pour vous de comprendre cette zone, et surtout, de savoir vous déplacer dans celle-ci.

Partant de ce fait, SAP vous met à disposition plusieurs outils. Voyons cela ensemble.

ABAP debugger : Breakpoint et Watchpoint

Désormais, nous allons utiliser ces outils pour forcer le debugger à s’arrêter à des endroits précis. Commençons par définir ces 2 notions :

Breakpoint

En premier lieu, un Breakpoint est défini pour que le programme s’arrête à cet endroit précis. En effet, il existe plusieurs moyens de placer un Breakpoint mais, peu importe le moyen utilisé, SAP s’arrêtera à ce dernier lors de son exécution.

Watchpoint

En second lieu, au contraire d’un Breakpoint utilisé pour s’arrêter à un endroit précis, un Watchpoint est utilisé pour monitorer une variable. Ainsi, lorsque cette dernière change de valeur, le debugger s’arrête.

1. Breakpoint

À vrai dire, il existe plusieurs types de Break point. En effet, ils peuvent avoir plusieurs utilités et plusieurs durées de vie.

  • Persistent Breakpoint
  • Session Breakpoint
  • External Breakpoint
  • Debugger Breakpoint

Désormais, voyons comment placer un Breakpoint dans le but d’arrêter le debugger.

Premièrement, placez votre curseur sur la colonne, à gauche de la ligne de programme pour laquelle vous désirez insérer un Breakpoint, et effectuez un clic gauche.

Session Breakpoint
Session Breakpoint

Deuxièmement, toujours avec votre curseur, effectuez un clic droit, et choisissez le type de Breakpoint désiré.

Breakpoint
Breakpoint

Troisièmement, pendant le debug, rendez-vous dans le menu destiné aux breakpoints.

Breakpoint at
Breakpoint at

Ainsi, vous pouvez choisir à quel endroit vous désirez placer d’autres Breakpoints.

  • À un statement particulier, tel que « IF » pour contrôler une condition
  • Dans des cas bien précis, à une routine,
  • Ou encore à un message d’erreur, pour en analyser la source

2. Watchpoint

Comme vu précédemment, un Watchpoint est utilisé pour scruter les changements d’une variable bien précise.

À savoir qu’un Watchpoint ne peut être défini que pendant une session de debug.

Ainsi, pour créer un Watchpoint, suivez ces étapes :

Create Watchpoint
Create Watchpoint

Alors, une boîte de dialogue apparaît.

Create Watchpoint
Create Watchpoint

Ensuite, vous devez renseigner la variable à analyser. Une fois placé, en utilisant le raccourci clavier F8 ou le bouton « Continue », SAP déroulera le programme jusqu’à ce que la valeur de cette variable change, ou jusqu’à terminer le programme si cette dernière ne varie pas.

ABAP debugger : Conclusion

À la suite de cet article, vous aurez eu un aperçu des possibilités qu’offre cet outil extrêmement utile qu’est le debugger.

Que ce soit en tant que développeur ABAP, ou consultant fonctionnel, il vous sera indispensable de maitriser sur le bout des doigts celui-ci.

En vérité, nous n’avons que survolé ensemble ses fonctionnalités. En effet, il se veut des plus complet et permet d’effectuer encore bien d’autres tâches.

Vous souhaitez accéder à l’ensemble de notre bibliothèque de formations SAP en illimité ? Testez gratuitement notre plateforme de formation pour une période d’essai de 7 jours.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *