{"id":247,"date":"2012-12-16T15:05:31","date_gmt":"2012-12-16T14:05:31","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=247"},"modified":"2013-01-07T14:15:05","modified_gmt":"2013-01-07T13:15:05","slug":"premiere-analyse-de-code-abap","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/premiere-analyse-de-code-abap\/","title":{"rendered":"Premi\u00e8re analyse de code ABAP"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2722\" title=\"SonarAbapAnalysis\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SonarAbapAnalysis.jpg\" width=\"340\" height=\"441\" \/><\/a>Apr\u00e8s avoir vu dans le post pr\u00e9c\u00e9dent <a title=\"Sonar &amp; ABAP - Extraction du code\" href=\"http:\/\/qualilogy.com\/fr\/extraction-du-code-abap\" target=\"_blank\">comment r\u00e9cup\u00e9rer le code ABAP \u00e0 analyser<\/a>, \u00e0 l\u2019aide de l\u2019extracteur fourni par Sonar, nous allons proc\u00e9der \u00e0 notre premi\u00e8re analyse\u2026 mais pas avec le code que nous avons extrait.<\/p>\n<p>En effet, la premi\u00e8re fois que je vais param\u00e9trer une analyse pour une nouvelle technologie, je vais effectuer un premier essai avec du code dont je suis certain qu\u2019il ne pose pas de probl\u00e8mes, du code d\u00e9j\u00e0 test\u00e9 et \u00e9prouv\u00e9 par Sonar, et t\u00e9l\u00e9chargeable depuis cette page : <a title=\"Sonar Project Examples\" href=\"http:\/\/docs.codehaus.org\/display\/SONAR\/Sonar+Project+Examples\" target=\"_blank\">Sonar Project Examples<\/a>.<\/p>\n<p>Cette page renvoie vers d\u2019autres pages au sein desquelles vous pouvez naviguer pour d\u00e9couvrir diff\u00e9rents exemples de projets ou simplement clicker sur le lien qui permet de t\u00e9l\u00e9charger un fichier compress\u00e9.<\/p>\n<p><!--more--><\/p>\n<p>Celui-ci contient avec un r\u00e9pertoire <strong>..projectslanguages<\/strong> avec diff\u00e9rents sous-r\u00e9pertoires de code source, dont celui qui nous int\u00e9resse dans un dossier \u2018abap\u2019. Une fois d\u00e9zipp\u00e9, je vais copier ce r\u00e9pertoire dans mon environnement d\u2019analyse, en le renommant \u2018SonarAbap\u2019 afin de le diff\u00e9rencier du code extrait.<\/p>\n<p>Si nous regardons ce que nous avons :<\/p>\n<ul>\n<li>Un sous-r\u00e9pertoire \u2018src\u2019 avec 2 fichiers \u2018ZBCMKZ17.abap\u2019 et \u2018ZZBGS106.abap\u2019 (rappelez-vous les conventions de nommage dont nous parlions dans <a title=\"Sonar &amp; ABAP - Quelles questions\" href=\"http:\/\/qualilogy.com\/fr\/sonar-abap-les-questions\" target=\"_blank\">cette page). <\/a><\/li>\n<li>Un fichier \u2018sonar-project.properties\u2019 avec les diff\u00e9rents param\u00e8tres utiles pour notre analyse.<\/li>\n<\/ul>\n<h3><strong>Param\u00e9trage de l\u2019analyse<\/strong><\/h3>\n<p>Nous allons effectuer notre analyse sous Jenkins, sans pr\u00e9senter le d\u00e9tail de sa cr\u00e9ation puisque vous avez d\u00e9j\u00e0 l\u2019habitude de proc\u00e9der ainsi pour vos applications Java. Si vous \u00eates un consultant SAP ou Qualit\u00e9 et\/ou n\u2019avez jamais utilis\u00e9 Sonar ni m\u00eame proc\u00e9d\u00e9 \u00e0 son installation, patientez un peu. Notre prochaine s\u00e9rie portera sur une installation compl\u00e8te d\u2019un environnement d\u2019analyse avec Sonar.<\/p>\n<p>Il nous faut indiquer certains param\u00e8tres g\u00e9n\u00e9riques tels que le nom du projet ou sa version, bien s\u00fbr le langage et enfin, la localisation du code \u00e0 analyser :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsParameters.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2728\" title=\"SAP_JenkinsParameters\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsParameters.jpg\" width=\"515\" height=\"135\" \/><\/a><\/p>\n<p>Dans l\u2019exemple ci-dessus, j\u2019ai repris exactement les m\u00eames param\u00e8tres que dans fichier &lsquo;properties&rsquo; fourni par Sonar. J\u2019ai simplement indiqu\u00e9 que le r\u00e9pertoire racine (\u2018project home\u2019) se trouve l\u00e0 o\u00f9 j\u2019ai recopi\u00e9 le code, dans mon environnement d\u2019analyse, sous \u2018C :SRCABAPSonarAbap\u2019 (attention aux \u2018\/\u2019 dans l\u2019indication de ce directory).<\/p>\n<p>Nous pouvons maintenant lancer notre analyse et en v\u00e9rifier les r\u00e9sultats.<\/p>\n<h3><strong>Validation de l\u2019analyse<\/strong><\/h3>\n<p>Afin de valider notre premi\u00e8re analyse, nous allons v\u00e9rifier le log sous Jenkins.<br \/>\nTout d\u2019abord, le message suivant \u2026<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsLog11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2730\" title=\"SAP_JenkinsLog1\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsLog11.jpg\" width=\"459\" height=\"18\" \/><\/a>nous indique que l\u2019analyse s\u2019est effectu\u00e9e correctement, et que les r\u00e9sultats sont disponibles dans le tableau de bord Sonar. En parcourant rapidement la page de log, je ne d\u00e9c\u00e8le aucun message concernant un quelconque probl\u00e8me de parser. Ce serait un message de type \u2018Warning\u2019 qui n\u2019interrompt pas l\u2019analyse, mais c\u2019est une bonne habitude \u00e0 prendre afin de v\u00e9rifier si tous les fichiers sont correctement analys\u00e9s.<\/p>\n<p>Il nous reste \u00e0 v\u00e9rifier sous Sonar les r\u00e9sultats de notre premi\u00e8re analyse :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2731\" title=\"SAP_SonarABAP_AnalysisResult1\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult1.jpg\" width=\"533\" height=\"92\" \/><\/a><\/p>\n<p>Et la pr\u00e9sence de d\u00e9fauts dans ce code :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2732\" title=\"SAP_SonarABAP_AnalysisResult2\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult2.jpg\" width=\"591\" height=\"187\" \/><\/a><\/p>\n<p>Pour les deux fichiers que nous avons analys\u00e9s :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2733\" title=\"SAP_SonarABAP_AnalysisResult3\" alt=\"\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult3.jpg\" width=\"592\" height=\"104\" \/><\/a><\/p>\n<p>Nous avons pu voir comment param\u00e9trer notre premi\u00e8re analyse de code ABAP. Nous pouvons tr\u00e8s simplement dupliquer celle-ci sous Jenkins afin d\u2019effectuer d\u2019autres diagnostics, et modifier les param\u00e8tres de localisation du code (project.home).<\/p>\n<p>Nous avons pu v\u00e9rifier \u00e9galement les r\u00e9sultats de cette analyse, au niveau du log Jenkins comme dans le tableau de bord Sonar.<\/p>\n<p>Nous verrons par la suite quelles sont les bonnes pratiques importantes en mati\u00e8re de code ABAP et les violations que vous devez signaler, de mani\u00e8re \u00e0 pr\u00e9senter ces r\u00e9sultats sous forme d\u2019un audit de la qualit\u00e9 du code et d\u2019un plan d\u2019actions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apr\u00e8s avoir vu dans le post pr\u00e9c\u00e9dent comment r\u00e9cup\u00e9rer le code ABAP \u00e0 analyser, \u00e0 l\u2019aide de l\u2019extracteur fourni par Sonar, nous allons proc\u00e9der \u00e0 notre premi\u00e8re analyse\u2026 mais pas avec le code que nous avons extrait. En effet, la premi\u00e8re fois que je vais param\u00e9trer une analyse pour une nouvelle technologie, je vais effectuer [&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-247","post","type-post","status-publish","format-standard","hentry","category-sonar-abap"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/247"}],"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=247"}],"version-history":[{"count":6,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/247\/revisions"}],"predecessor-version":[{"id":252,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/247\/revisions\/252"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}