{"id":193,"date":"2012-12-16T15:04:43","date_gmt":"2012-12-16T14:04:43","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=193"},"modified":"2013-01-05T15:05:17","modified_gmt":"2013-01-05T14:05:17","slug":"primer-analisis-de-codigo-abap","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/primer-analisis-de-codigo-abap\/","title":{"rendered":"Primer an\u00e1lisis de c\u00f3digo 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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SonarAbapAnalysis.jpg\" alt=\"\" width=\"340\" height=\"441\" \/><\/a>Hemos visto en el post anterior <a title=\"Sonar &amp; Abap  Extracci\u00f3n del c\u00f3digo\" href=\"http:\/\/qualilogy.com\/es\/extraccion-del-codigo-abap\" target=\"_blank\">c\u00f3mo extraer el c\u00f3digo ABAP<\/a> utilizando el extractor proporcionado por Sonar.<\/p>\n<p>Ahora vamos a hacer nuestro primer an\u00e1lisis &#8230; pero no con el c\u00f3digo que hemos recuparado con el extractor.<\/p>\n<p>De hecho, la primera vez que voy para un an\u00e1lisis con una nueva tecnolog\u00eda, voy a empezar una prueba con un c\u00f3digo que puedes estar seguro de que no tiene problema, un c\u00f3digo ya probado y comprobado por Sonar y descargable a partir de esta p\u00e1gina: <a title=\"Sonar Project Examples\" href=\"http:\/\/docs.codehaus.org\/display\/SONAR\/Sonar+Project+Examples\" target=\"_blank\">Sonar Project Examples<\/a>.<\/p>\n<p>Esta p\u00e1gina contiene v\u00ednculos a otras p\u00e1ginas en las que puedes navegar para encontrar diferentes ejemplos de proyectos o simplemente descargar un archivo comprimido.<\/p>\n<p><!--more--><\/p>\n<p>En este archivo, encontramos un directorio <strong>..\\projects\\languages\\<\/strong> con diferentes subdirectorios de c\u00f3digo fuente, incluyendo el que nos interesa, en una carpeta &#8216;abap&#8217;. Una vez descomprimido, voy a copiar este directorio en mi entorno de an\u00e1lisis, y cambiar el nombre en &#8216;SonarAbap&#8217; para diferenciarlo del c\u00f3digo extra\u00eddo anteriormente.<\/p>\n<p>Ahora tenemos:<\/p>\n<ul>\n<li>Una carpeta \u2018src\u2019 con 2 ficheros \u2018ZBCMKZ17.abap\u2019 y \u2018ZZBGS106.abap\u2019 (recuerdate las nomenclaturas ABAP <a title=\"Sonar &amp; ABAP - Preguntas\" href=\"http:\/\/qualilogy.com\/es\/sonar-abap-las-preguntas\" target=\"_blank\">en esta pagina<\/a>),<\/li>\n<li>Un fichero \u2018sonar-project.properties\u2019 con los diferentes parametros para configurar nuestro an\u00e1lisis.<\/li>\n<\/ul>\n<h3><strong>Configuraci\u00f3n del an\u00e1lisis<\/strong><\/h3>\n<p>Vamos a realizar nuestro an\u00e1lisis con Jenkins, sin presentar los detalles de su creaci\u00f3n, puesto que ya sabes hacerlo para las aplicaciones Java. Si eres un consultor SAP y\/o nunca has utilizado Sonar y Jenkins, ni tampoco los tienes instalados, nuestra pr\u00f3xima serie te ense\u00f1ar\u00e1 como hacer una instalaci\u00f3n completa de un entorno de an\u00e1lisis Sonar.<\/p>\n<p>Necesitamos identificar algunos par\u00e1metros gen\u00e9ricos, como el nombre del proyecto o el numero de versi\u00f3n, y por supuesto el lenguaje. Por \u00faltimo, indicamos la ubicaci\u00f3n del c\u00f3digo:<\/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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsParameters.jpg\" alt=\"\" width=\"515\" height=\"135\" \/><\/a><\/p>\n<p>En el ejemplo anterior, los par\u00e1metros son los mismos que en el archivo &#8216;properties&#8217; proporcionado por Sonar. Simplemente, el directorio ra\u00edz (project.home) es donde he copiado el c\u00f3digo en mi entorno de an\u00e1lisis en &#8216;C :\\SRC\\ABAP\\SonarAbap&#8217; (cuidado que debes usar una barra &#8216;\/&#8217; en el parametro).<\/p>\n<p>Ahora podemos ejecutar nuestro an\u00e1lisis y verificar los resultados.<\/p>\n<h3><strong>Validaci\u00f3n de an\u00e1lisis<\/strong><\/h3>\n<p>Para validar nuestro an\u00e1lisis inicial, vamos a comprobar el log de Jenkins.<br \/>\nEn primer lugar, el siguiente mensaje &#8230;<\/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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_JenkinsLog11.jpg\" alt=\"\" width=\"459\" height=\"18\" \/><\/a>nos dice que el an\u00e1lisis se llevo a cabo correctamente y que los resultados est\u00e1n disponibles en el panel de control Sonar. Navegando r\u00e1pidamente en la p\u00e1gina de log, no veo ning\u00fan mensaje acerca de cualquier problema. Un mensaje de tipo &#8216;warning&#8217; (sin interrumper el an\u00e1lisis) podr\u00eda indicar un problema de parser y que un archivo ne se ha analizado correctamente, pues es siempre bueno comprobar el log.<\/p>\n<p>Vamos a ver en el dashboard Sonar los resultados de nuestro an\u00e1lisis inicial:<\/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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult1.jpg\" alt=\"\" width=\"533\" height=\"92\" \/><\/a><\/p>\n<p>Y defectos en el c\u00f3digo:<\/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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult2.jpg\" alt=\"\" width=\"591\" height=\"187\" \/><\/a><\/p>\n<p>Para los dos ficheros analizados:<\/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\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/12\/SAP_SonarABAP_AnalysisResult3.jpg\" alt=\"\" width=\"592\" height=\"104\" \/><\/a><\/p>\n<p>Hemos visto c\u00f3mo configurar nuestro primer an\u00e1lisis de c\u00f3digo ABAP. Podemos replicarlo f\u00e1cilmente en Jenkins y cambiar los par\u00e1metros de ubicaci\u00f3n del c\u00f3digo (project.home).<\/p>\n<p>Tambi\u00e9n pudimos comprobar los resultados de este an\u00e1lisis, en el log de Jenkins y en Sonar.<\/p>\n<p>M\u00e1s adelante veremos cu\u00e1les son las mejores pr\u00e1cticas de c\u00f3digo ABAP, con el fin de presentar una auditor\u00eda de la calidad del c\u00f3digo ABAP y recomendar un plan de acci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hemos visto en el post anterior c\u00f3mo extraer el c\u00f3digo ABAP utilizando el extractor proporcionado por Sonar. Ahora vamos a hacer nuestro primer an\u00e1lisis &#8230; pero no con el c\u00f3digo que hemos recuparado con el extractor. De hecho, la primera vez que voy para un an\u00e1lisis con una nueva tecnolog\u00eda, voy a empezar una prueba [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-sonar-abap"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/193"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":194,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/193\/revisions\/194"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}