Extraction du code ABAP

Nous continuons notre série de posts sur l’analyse de code ABAP avec Sonar. Aujourd’hui, l’étape préalable à l’analyse : l’extraction du code.

Nous avons vu dans le premier article Sonar & ABAP – Ce qu’il faut savoir, que le code ABAP est stocké dans le workbench SAP, et donc nous allons devoir installer un programme dans ce workbench afin d’extraire le code à analyser et le transférer sur note plate-forme d’analyse Sonar.

Oui, il va nous falloir nous connecter au workbench, afin d’installer et exécuter ce programme.

Si vous êtes un spécialiste SAP et avez décidé de suivre notre série de posts afin de découvrir comment Sonar peut vous aider à améliorer la qualité du code ABAP de votre entreprise, alors vous savez très certainement comment accéder au workbench SAP et effectuer l’installation de cet extracteur.

Si vous utilisez déjà Sonar mais ne connaissez rien à SAP, rassurez-vous : il est peu probable que l’on vous donne un accès au workbench, mais qu’un administarteur SAP se chargera d’effectuer cette installation.

Par la suite, nul besoin d’un administrateur pour réaliser les extractions, n’importe qui pourra effectuer celles-ci très simplement et sans aucune connaissance du workbench. De surcroît, ce sera le plus souvent votre client ou l’équipe de projet concernée qui fera cette extraction pour vous, puisqu’ils ont la connaissance des objets (programmes, includes, function-pools, etc.) correspondant au code à analyser.

Download de l’extracteur Sonar

Ce programme peut se récupérer depuis la page suivante du site Sonar, qui explique l’installation du plugin ABAP.

Et dans cette page, 2 liens distincts correspondant au code de l’extracteur, pour différentes versions du workbench SAP : ‘Version 6.20 to 6.40’, ‘Version 7.00+’. Ces programmes (ABAP, n’hésitez pas à jeter un coup d’oeil pour voir à quoi ressemble ce langage) sont issus des programmes de Mass Download developpés par Dalestech Consulting Ltd.

Récupérez les deux programmes, mais il est très probable que vous utiliserez l’extracteur pour la release 7.00+ car les autres versions sont vraiment anciennes.

Installation de l’extracteur Sonar

Même si un administrateur effectuera les tâches suivantes, autant lui faciliter la tâche en lui indiquant auparavant ce que nous allons faire. Et vous en donner un aperçu également (note : vous pouvez clicker sur toutes les images d’écran ci-dessous afin d’agrandir celles-ci, pour plus de détails).

Une fois dans SAP …

Entrer dans la transaction SE38 de création d’un programme et dans l’écran correspondant, saisir le nom du programme (dans cet exemple ZTEST1000) de type ‘code source’. Nous avons vu dans le post Sonar & ABAP – Les questions que vos programmes commençaient par la lettre ‘Z’ ou ‘Y’.

Puis entrer une description pour ce programme, et son type ‘Executable’ (par opposition à module-pool, include, etc.)

Attention: l’administrateur SAP va ensuite vous demander dans quel package “transporter” ce programme. Sans entrer dans les détails, il faut savoir que tout code ABAP nouveau ou modifié suit un workflow de validation dans lequel il est “transporté” depuis le serveur de développement jusqu’au serveur de production. En l’occurence, nous n’avons pas besoin de valider notre programme d’extraction (aucun développeur local ne l’a créé) et nous serons le seul utilisateur à exécuter ce programme dans le futur.

Nous allons donc indiquer à l’administrateur que ce programme ne sera pas “transporté” et pour cette raison, nous allons sauvegarder celui dans le package local :

Ouf. Le plus dur est fait. Il nous reste maintenant à entrer le code source de notre extracteur dans le programme ABAP que nous venons de créer. Un simple Copier-Coller dans l’éditeur du Workbench fera l’affaire :

Activer le programme avec le bouton correspondant, ce qui aura pour effet de vérifier la syntaxe du programme, sauvegarder celui-ci et le rendre disponible pour exécution.

Utilisation de l’extracteur Sonar

Il est possible de lancer notre programme d’extraction à l’aide de la même transaction SE38, transaction ‘à tout faire’ qui nous a permis de le créer et qui nous permet de l’exécuter dans différents modes (directement, en mode debug, en arrière-plan. Dans l’exemple suivant, l’administrateur (user SE43737) a deux programmes dans l’onglet ‘local’ qu’il peut sélectionner pour exécution.

Il est également possible d’utiliser la transaction SA38 spécialement dédiée au lancement des programmes, et à destination des utilisateurs. Il serait même possible de programmer un écran spécifique qui appelle ce programme. Encore une fois, tout dépend de votre cas d’utilisation, de qui effectuera l’extraction, selon quelle fréquence, sur quel périmètre (areas SAP, serveurs, etc. ).

Mais dans tous les cas, il vous sera nécessaire d’effectuer au moins une fois l’installation de l’extracteur de code Abap et un premier test d’extraction.

Une fois le programme lancé, vous pouvez saisir les premières lettres pour les noms d’objets que vous souhaitez extraire : classes, programmes, etc. (concernant les types et nomenclatures d’objet, cf. notre post Sonar & ABAP – Ce qu’il faut savoir). Là encore, ce sera votre client ou les équipes de projet qui décideront quel code analyser et comment l’extraire.

L’intérêt de l’extracteur SAP de Sonar est qu’il est capable d’aller chercher tous les objets utilisés par le code que vous souhaitez extraire. Ici, on voit que pour le programme que nous souhaitons utiliser, nous allons également incorporer d’autres objets de type Include, Function, etc.

Il ne vous reste plus qu’à récupérer le code extrait, en local sur la machine depuis laquelle vous avez réalisé toutes ces opérations.

Les prochains posts seront consacrés aux analyses et à leur préparation, ainsi qu’aux règles (bonnes pratiques) ABAP.

Cette publication est également disponible en Leer este articulo en castellano : liste des langues séparées par une virgule, Read that post in english : dernière langue.

Laisser un commentaire

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