{"id":245,"date":"2012-12-09T15:00:31","date_gmt":"2012-12-09T14:00:31","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=245"},"modified":"2013-01-05T15:01:28","modified_gmt":"2013-01-05T14:01:28","slug":"extraction-du-code-abap","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/extraction-du-code-abap\/","title":{"rendered":"Extraction du code ABAP"},"content":{"rendered":"<p>Nous continuons notre s\u00e9rie de posts sur l\u2019analyse de code ABAP avec Sonar. Aujourd\u2019hui, l\u2019\u00e9tape pr\u00e9alable \u00e0 l\u2019analyse : l\u2019extraction du code.<\/p>\n<p>Nous avons vu dans le premier article <a title=\"Sonar Abap - Ce qu'il faut savoir\" href=\"http:\/\/qualilogy.com\/fr\/sonar-abap-ce-quil-faut-savoir\" target=\"_blank\">Sonar &amp; ABAP \u2013 Ce qu\u2019il faut savoir<\/a>, que le code ABAP est stock\u00e9 dans le workbench SAP, et donc nous allons devoir installer un programme dans ce workbench afin d&rsquo;extraire le code \u00e0 analyser et le transf\u00e9rer sur note plate-forme d\u2019analyse Sonar.<\/p>\n<p>Oui, il va nous falloir nous connecter au workbench, afin d\u2019installer et ex\u00e9cuter ce programme. <!--more--><\/p>\n<p>Si vous \u00eates un sp\u00e9cialiste SAP et avez d\u00e9cid\u00e9 de suivre notre s\u00e9rie de posts afin de d\u00e9couvrir comment Sonar peut vous aider \u00e0 am\u00e9liorer la qualit\u00e9 du code ABAP de votre entreprise, alors vous savez tr\u00e8s certainement comment acc\u00e9der au workbench SAP et effectuer l\u2019installation de cet extracteur.<\/p>\n<p>Si vous utilisez d\u00e9j\u00e0 Sonar mais ne connaissez rien \u00e0 SAP, rassurez-vous : il est peu probable que l\u2019on vous donne un acc\u00e8s au workbench, mais qu\u2019un administarteur SAP se chargera d\u2019effectuer cette installation.<\/p>\n<p>Par la suite, nul besoin d\u2019un administrateur pour r\u00e9aliser les extractions, n\u2019importe qui pourra effectuer celles-ci tr\u00e8s simplement et sans aucune connaissance du workbench. De surcro\u00eet, ce sera le plus souvent votre client ou l\u2019\u00e9quipe de projet concern\u00e9e qui fera cette extraction pour vous, puisqu\u2019ils ont la connaissance des objets (programmes, includes, function-pools, etc.) correspondant au code \u00e0 analyser.<\/p>\n<h3><strong>Download de l\u2019extracteur Sonar<\/strong><\/h3>\n<p>Ce programme peut se r\u00e9cup\u00e9rer depuis la page suivante du site Sonar, qui explique l\u2019<a title=\"Sonar - Installation du plugin ABAP\" href=\"http:\/\/www.sonarsource.com\/products\/plugins\/languages\/abap\/installation-and-usage\/\" target=\"_blank\">installation du plugin ABAP<\/a>.<\/p>\n<p>Et dans cette page, 2 liens distincts correspondant au code de l\u2019extracteur, pour diff\u00e9rentes versions du workbench SAP : &lsquo;Version 6.20 to 6.40&rsquo;, &lsquo;Version 7.00+&rsquo;. Ces programmes (ABAP, n&rsquo;h\u00e9sitez pas \u00e0 jeter un coup d&rsquo;oeil pour voir \u00e0 quoi ressemble ce langage) sont issus des programmes de <a title=\"Extracteur de code ABAP\" href=\"http:\/\/www.dalestech.com\/products\/massdownload.htm\" target=\"_blank\">Mass Download<\/a> developp\u00e9s par Dalestech Consulting Ltd.<\/p>\n<p>R\u00e9cup\u00e9rez les deux programmes, mais il est tr\u00e8s probable que vous utiliserez l\u2019extracteur pour la release 7.00+ car les autres versions sont vraiment anciennes.<\/p>\n<h3><strong>Installation de l\u2019extracteur Sonar<\/strong><\/h3>\n<p>M\u00eame si un administrateur effectuera les t\u00e2ches suivantes, autant lui faciliter la t\u00e2che en lui indiquant auparavant ce que nous allons faire. Et vous en donner un aper\u00e7u \u00e9galement (note : vous pouvez clicker sur toutes les images d\u2019\u00e9cran ci-dessous afin d\u2019agrandir celles-ci, pour plus de d\u00e9tails).<\/p>\n<p>Une fois dans SAP \u2026<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP-Easy-Access.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2694\" title=\"SAP Easy Access\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP-Easy-Access.jpg\" alt=\"\" width=\"933\" height=\"501\" \/><\/a>Entrer dans la transaction SE38 de cr\u00e9ation d\u2019un programme et dans l\u2019\u00e9cran correspondant, saisir le nom du programme (dans cet exemple ZTEST1000) de type \u2018code source\u2019. Nous avons vu dans le post <a title=\"Sonar ABAP - Les questions\" href=\"http:\/\/qualilogy.com\/fr\/sonar-abap-les-questions\" target=\"_blank\">Sonar &amp; ABAP \u2013 Les questions<\/a> que vos programmes commen\u00e7aient par la lettre \u2018Z\u2019 ou \u2018Y\u2019.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2695\" title=\"SAP_TranSE38_1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_1.jpg\" alt=\"\" width=\"543\" height=\"293\" \/><\/a><\/p>\n<p>Puis entrer une description pour ce programme, et son type \u2018Executable\u2019 (par opposition \u00e0 module-pool, include, etc.)<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2696\" title=\"SAP_TranSE38_2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_2.jpg\" alt=\"\" width=\"702\" height=\"496\" \/><\/a><\/p>\n<p>Attention: l\u2019administrateur SAP va ensuite vous demander dans quel package \u201ctransporter\u201d ce programme. Sans entrer dans les d\u00e9tails, il faut savoir que tout code ABAP nouveau ou modifi\u00e9 suit un workflow de validation dans lequel il est \u201ctransport\u00e9\u201d depuis le serveur de d\u00e9veloppement jusqu\u2019au serveur de production. En l\u2019occurence, nous n\u2019avons pas besoin de valider notre programme d\u2019extraction (aucun d\u00e9veloppeur local ne l\u2019a cr\u00e9\u00e9) et nous serons le seul utilisateur \u00e0 ex\u00e9cuter ce programme dans le futur.<\/p>\n<p>Nous allons donc indiquer \u00e0 l\u2019administrateur que ce programme ne sera pas \u201ctransport\u00e9\u201d et pour cette raison, nous allons sauvegarder celui dans le package local :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2697\" title=\"SAP_TranSE38_3\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_3.jpg\" alt=\"\" width=\"571\" height=\"385\" \/><\/a><\/p>\n<p>Ouf. Le plus dur est fait. Il nous reste maintenant \u00e0 entrer le code source de notre extracteur dans le programme ABAP que nous venons de cr\u00e9er. Un simple Copier-Coller dans l\u2019\u00e9diteur du Workbench fera l\u2019affaire :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Editeur_1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2698\" title=\"SAP_Editeur_1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Editeur_1.jpg\" alt=\"\" width=\"532\" height=\"250\" \/><\/a><\/p>\n<p>Activer le programme avec le bouton correspondant, ce qui aura pour effet de v\u00e9rifier la syntaxe du programme, sauvegarder celui-ci et le rendre disponible pour ex\u00e9cution.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Editeur_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2699\" title=\"SAP_Editeur_2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Editeur_2.jpg\" alt=\"\" width=\"549\" height=\"255\" \/><\/a><strong><\/strong><\/p>\n<p><strong>Utilisation de l\u2019extracteur Sonar<\/strong><\/p>\n<p>Il est possible de lancer notre programme d\u2019extraction \u00e0 l\u2019aide de la m\u00eame transaction SE38, transaction \u2018\u00e0 tout faire\u2019 qui nous a permis de le cr\u00e9er et qui nous permet de l\u2019ex\u00e9cuter dans diff\u00e9rents modes (directement, en mode debug, en arri\u00e8re-plan. Dans l\u2019exemple suivant, l\u2019administrateur (user SE43737) a deux programmes dans l\u2019onglet \u2018local\u2019 qu\u2019il peut s\u00e9lectionner pour ex\u00e9cution.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_41.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2701\" title=\"SAP_TranSE38_4\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_TranSE38_41.jpg\" alt=\"\" width=\"692\" height=\"285\" \/><\/a><\/p>\n<p>Il est \u00e9galement possible d\u2019utiliser la transaction SA38 sp\u00e9cialement d\u00e9di\u00e9e au lancement des programmes, et \u00e0 destination des utilisateurs. Il serait m\u00eame possible de programmer un \u00e9cran sp\u00e9cifique qui appelle ce programme. Encore une fois, tout d\u00e9pend de votre cas d\u2019utilisation, de qui effectuera l\u2019extraction, selon quelle fr\u00e9quence, sur quel p\u00e9rim\u00e8tre (areas SAP, serveurs, etc. ).<\/p>\n<p>Mais dans tous les cas, il vous sera n\u00e9cessaire d\u2019effectuer au moins une fois l\u2019installation de l\u2019extracteur de code Abap et un premier test d\u2019extraction.<\/p>\n<p>Une fois le programme lanc\u00e9, vous pouvez saisir les premi\u00e8res lettres pour les noms d\u2019objets que vous souhaitez extraire : classes, programmes, etc. (concernant les types et nomenclatures d\u2019objet, cf. notre post <a title=\"Sonar Abap - Ce qu'il faut savoir\" href=\"http:\/\/qualilogy.com\/fr\/sonar-abap-ce-quil-faut-savoir\" target=\"_blank\">Sonar &amp; ABAP \u2013 Ce qu\u2019il faut savoir<\/a>). L\u00e0 encore, ce sera votre client ou les \u00e9quipes de projet qui d\u00e9cideront quel code analyser et comment l\u2019extraire.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Extract1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2702\" title=\"SAP_Extract1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Extract1.jpg\" alt=\"\" width=\"484\" height=\"470\" \/><\/a><\/p>\n<p>L\u2019int\u00e9r\u00eat de l\u2019extracteur SAP de Sonar est qu\u2019il est capable d\u2019aller chercher tous les objets utilis\u00e9s par le code que vous souhaitez extraire. Ici, on voit que pour le programme que nous souhaitons utiliser, nous allons \u00e9galement incorporer d\u2019autres objets de type Include, Function, etc.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Extract2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2703\" title=\"SAP_Extract2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_Extract2.jpg\" alt=\"\" width=\"727\" height=\"543\" \/><\/a><\/p>\n<p>Il ne vous reste plus qu\u2019\u00e0 r\u00e9cup\u00e9rer le code extrait, en local sur la machine depuis laquelle vous avez r\u00e9alis\u00e9 toutes ces op\u00e9rations.<\/p>\n<p>Les prochains posts seront consacr\u00e9s aux analyses et \u00e0 leur pr\u00e9paration, ainsi qu\u2019aux r\u00e8gles (bonnes pratiques) ABAP.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous continuons notre s\u00e9rie de posts sur l\u2019analyse de code ABAP avec Sonar. Aujourd\u2019hui, l\u2019\u00e9tape pr\u00e9alable \u00e0 l\u2019analyse : l\u2019extraction du code. Nous avons vu dans le premier article Sonar &amp; ABAP \u2013 Ce qu\u2019il faut savoir, que le code ABAP est stock\u00e9 dans le workbench SAP, et donc nous allons devoir installer un programme [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-245","post","type-post","status-publish","format-standard","hentry","category-sonar-abap"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/245"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":246,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/245\/revisions\/246"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}