✒️ABAP / El debugger ABAP Por Gustavo Rondon Hernandez
ABAP El debugger ABAP

1 | El debugger ABAP
Cuando programamos en ABAR un programa solo va a funcionar tal como deseamos que funcione si y solo si el código ABAP que forma parte del programa ha sido escrito a la perfección, es decir exactamente tal como se lo necesita.
Si existe alguna diferencia o error en el código ABAP entonces el programa va a producir resultados diferentes a los esperados, lo que dentro del ámbito de la programación solemos llamar como errores.
Ahora bien, en ocasiones detectar esos errores es bastante fácil, lo podemos hacer a simple vista, mirando el código y en otras ocasiones es bastante más complejo y va a requerir que ejecutemos varias veces el programa en cuestión, probablemente en cada ejecución necesitemos utilizar distintos valores de entrada para producir distintos resultados y vamos a necesitar saber exactamente cuáles son los valores que van tomando las variables internas del programa.
Para poder realizar todo este análisis SAP pone a nuestra disposición una herramienta sumamente útil que se llame
debugger ABAP o depurador ABAP.
El debugger ABAP
Es una de las herramientas más poderosas que tiene SAP para el análisis y la solución de problemas.
Se utiliza para ejecutar programas paso a paso y durante el proceso se puede verificar la lógica, inspeccionar el contenido de las variables de programa, las tablas intermas, las variables del sistema, las áreas de memoria, entre otras opciones.
El debugger es una herramienta imprescindible para los programadores de cualquier lenguaje de programación.
Saber utilizar correctamente el debugger ABAP es tan importante como saber programar en ABAP y esto se debe a que gran parte de nuestro tiempo de trabajo como programadores ABAP lo vamos a emplear detectando y corrigiendo errores, ya sea de programas nuevos que estamos desarrollando nosotros mismos o de programas creados por otros programadores y que tengamos que modificar.
Ahora bien, antes de comenzar a utilizar el debugger es importante que sepamos que existen dos versiones de la misma herramienta, por un lado tenemos el debugger clásico que es la primera versión o funcionalidad de esta poderosa herramienta con la que contamos los ABAPers y luego con el pasar de los años SAP incorporo el nuevo debugger, el cual presenta muchísimas mejoras respecto de su antecesor, por lo que prácticamente no tiene ningún sentido utilizar el debugger clásico.
Para modificar la funcionalidad del debugger, dentro del editor ABAP correspondiente a la transacción SE38, accedemos al menú Utilidades I Opciones tal como vemos en la siguiente imagen:
Luego accedemos a las pestañas Editor ABAP / Debugging y dentro de Función debugging debemos tener seleccionada la opción F.debugging nueva para utilizar el debugger nuevo.
Ahora que ya tenemos configurado correctamente el debugger ABAR vamos a utilizar el programa ABAP Z_PRUEBA_EVENTOS para analizar cada una de las funcionalidades disponibles. Este programa de prueba suma el
contenido de las variables V_CAMPOI y V_CAMPO2, el cual da como resultado 30 e imprime por pantalla dicho resultado.
Si ejecutamos el programa Z_PRUEBA_EVENTOS la salida por pantalla de la ejecución es la impresión del resultado de Ia suma de las variables V CAMPOI y V CAMP02.
Ahora bien, para debuggear un programa ABAP lo que necesitamos hacer es colocar un breakpoint en el código ABAP que deseamos revisar
Breakpoint
Un breakpoint o punto de interrupción es una marca que ponemos en una línea del código fuente de un programa, de tal torna que cuando la ejecución del programa llegue a ese punto, el procesamiento de nuestro programa se detendrá y podremos analizar su estado en ese momento, justo antes de ejecutar esa línea de código.
Podemos colocar tantos breakpoints como queramos en un programa y normalmente nos interesará situarlos en puntos críticos en los que creemos que se pueden estar produciendo errores.
Existen básicamente dos tipos de breakpoints que podemos colocar en un programa ABAP:
Breakpoints estáticos: se generan escribiendo en el código ABAP de un programa la sentencia break-point
Al ejecutar el programa siempre se detendrá su ejecución en el punto donde escribamos un breakpoint estático y pasará inmediatamente al modo debugging_ Estos breakpoint funcionan independientemente del usuario de SAP que ejecuta el programa.
Breakpoints dinámicos: dentro de los breakpoints dinámicos existen tres tipos:
- Breakpoints de debugger: estos breakpoints son creados en el debug y se borran cuando se cierra el debugger. Se crean dentro del modo debugging haciendo doble clic a la izquierda de una línea particular del código ABAP o a través del icono Stop Crear breakpoint que se encuentra en la barra de herramientas de la aplicación
Al hacer clic en el icono STOP Crear breakpoint vamos a visualizar una ventana de diálogo en donde podemos escribir la sentencia donde deseamos colocar el breakpoint de debugger.
- Breakpoints de sesión: solo son válidos para la sesión actual, es decir, para programas o aplicaciones que se lancen dentro de la misma entrada al sistema SAP. Estos breakpoints son independientes del usuario de SAP que los coloque.
Para colocar un breakpoint de sesión en un programa ABAR editamos o visualizamos el programa a través del editor ABAR seleccionamos la línea del código en donde deseamos colocar el breakpoint y hacemos clic en el icono de Breakpoints de sesión de la barra de herramientas.
"si deseamos borrar el Breakpoints de sesión que acabamos de colocar tenemos tres alternativas la primera es seleccionar la línea donde se encuentra el Breakpoints de sesión y volver hacer click en el icono en el icono del Breakpoints de sesión de la barra de herramientas la segunda alternativa es hacer doble click sobre el icono del Breakpoints que se encuentra en la línea del código del programa en donde colocamos el Breakpoints, la tercera alternativa es quitar el Breakpoints a través del menú para ello seleccionamos la línea de código donde se encuentra el Breakpoints de sesión y vamos al menú utilidades Breakpoints borrar".
- Breakpoints externos: son válidos para cualquier aplicación que se ejecute en el sistema, independientemente de donde se haya lanzado. Estos suelen tener una validez de 2 horas y se asocian a un usuario de SAP en particular.
"Para los Breakpoints externos tenemos las misma alternativas para borrarlos que contamos con los Breakpoints de sesión con la diferencia que para quitar un Breakpoints externos a través del menú y vamos al menú utilidades Breakpoints externos borrar tenemos disponible una opción más que resulta interesante para los Breakpoints externos y que nos permite activar o desactivar los Breakpoints externos para hacer esta opción nos vamos al menú utilidades Breakpoints externos activar y desactivar esta opción resulta muy útil si imaginamos que estamos probando un programa ABAP donde colocamos varios Breakpoints donde deseamos no utilizarlos y luego volver a utilizarlos "
Luego de colocar los breakpoints en el programa, ya sea que coloquemos breakpoints estáticos o dinámicos, ejecutamos el programa y se abre un nuevo modo de SAP en donde se visualiza el debugger ABAP.
Una vez que estamos ejecutando el programa en modo debug tenemos cuatro opciones disponibles para avanzar en la ejecución.
Analicemos cada una de estas opciones a continuación:
- Presionando el botón Paso a paso o la tecla F5, ejecutaremos paso a paso es decir sentencia a sentencia.
- Presionando el botón Ejecutar o la tecla F6, ejecutaremos subrutina a subrutina sin entrar en el contenido de cada una. Más adelante veremos el concepto de subrutina en detalle.
- Presionando el botón Retornar eJecuclón o la tecla F7 Presionando el botón Continuar retornaremos a la subrutina de nivel superior de la subrutina actual en
Presionando el botón Continuar la tecla F8 continuaremos la ejecución hasta el final del programa.
Una de las grandes ventajas que nos brinda el debugger ABAP es que nos permite saber a cada paso el contenido de las variables definidas en el programa y también nos permite modificar el contenido de dichas variables de modo de poder experimentar que pasaría con el resultado o la salida del programa si modificamos las variables con las que se procesa el programa.
Para visualizar el contenido de una variable en modo debugging hacemos doble clic sobre la variable y luego vamos a visualizar a la derecha de la pantalla a dicha variable junto con su contenido, tal como vemos a continuación con la variable V_CAMPO1 de nuestro programa de ejemplo.
Para modificar el contenido de una variable en modo debugging hacemos doble clic sobre el icono del lápiz.
A continuación se habilita el campo para edición y escribimos el nuevo valor 500 para la variable V_CAMPO1.
Y para guardar el cambio en la variable V_CAMPO1 basta con presionar la tecla enter
Si ahora que modificamos el contenido de la variable V CAMPO1, continuamos la ejecución hasta el final del programa haciendo clic en el icono Continuar, entonces vamos a ver que el resultado o salida del programa ha cambiado.
Veamos ahora una funcionalidad muy interesante que nos brinda el debugger ABAP como es la de los Watchpoints.
Imaginemos que tenemos que realizar el debug de un programa complejo, con muchas líneas de código y que deseamos colocar un breakpoint en un punto en el cual determinada variable del programa tenga determinado valor En esta situación tendríamos que ejecutar paso a paso el programa ABAP hasta encontrar esa línea de código en el cual la variable determinada tiene el valor que buscamos. En programas ABAP que cuentan con ciclos de iteraciones tales como la sentencia LOOP-ENDLOOP, cuyo significado e implementación vamos a ver más adelante en detalle, esto se vuelve realmente muy difícil.
Para ayudarnos en esta tarea tenemos a nuestra disposición los Watchpoints
Watchpoints
Son expresiones que detienen la ejecución de un programa ABAP cuando la variable o valor en cuestión cambia de valor o adquiere el valor ce parada.
Al igual que los breakpoints, un watchpoint es un indicador en un programa que indica al procesador ABAP en tiempo de ejecución que interrumpa el programa en un punto determinado. Sin embargo, a diferencia de los breakpoints, los watchpoints no se activan hasta que cambia el contenido de un campo especificado.
Los watchpoints, como los breakpoints dinámicos, son específicos del usuario y por lo tanto, no afectan a otros usuarios que ejecuten el mismo programa. Sólo podemos definir watchpoints en el debugger ABAP es decir en modo debugging
Para ver cómo implementar un watchpoint vamos a colocar un breakpoint de sesión en nuestro programa ABAP Z_ PRUEBA EVENTOS, de modo que la ejecución se detenga allí.
Ejecutamos el programa ABAP, a continuación se abre el modo debugging y vamos a hacer clic en el icono e watchpoint Watchpoint para generar un watchpoint en el programa.
A continuación visualizamos una ventana de diálogo en donde en el campo de entrada Variable escribimos el nombre de la variable de nuestro programa a la cual deseamos colocarle un watchpoint, en este caso es la variable V_SUMA y hacemos clic en el botón Insertar condición para agregar una condición para la variable.
La condición para que se detenga la ejecución del programa es que la variable V_SUMA tenga el valor 30.
Luego visualizamos en la barra de status que el watchpoint se ha creado correctamente y hacemos clic en el icono
Continuar o presionamos la tecla F8 para ejecutar el programa hasta alcanzar el watchpoint.
Y efectivamente la ejecución del programa se detiene cuando se alcanza la línea del código en donde la variable V_SUMA es igual a 30.
Por último, quiero que veamos una opción más con la que contamos para hacer un debug de un programa sin colocar breakpoints y que nos puede ser de gran utilidad en algunos casos. Si estamos visualizando o editando un programa ABAP tenemos la posibilidad de ejecutar el modo debugging escribiendo /h en el campo de comandos y luego presionando la tecla enter.
Sabias que
Esta forma de hacer debug es ideal para cuando se desea probar un programa desde el principio. También es útil si no conocemos muy bien el programa y por lo tanto, no estamos seguros de dónde es mejor colocar los breakpoints.
Luego visualizaremos en pantalla el mensaje "Se ha activado el modo debugging"
Y vamos a ejecutar el programa con la tecla F8 del teclado o haciendo clic en el icono e de la tilde verde. A continuación se abre el modo debugging y lo que vemos en pantalla es el programa estándar de SAP que se ejecuta previo a la ejecución de nuestro programa cuando presionamos la tecla F8, por lo que si quisíeramos podemos comenzar a debugear desde aquí.
escuchar audio
 
 
 
Sobre el autor
Publicación académica de Gustavo Jose Rondon Hernandez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Gustavo Jose Rondon Hernandez
Profesión: Becario - España - Legajo: WF47H
✒️Autor de: 33 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy informático con 10 años de experiencia en el área de tecnología, tengo un master en sap business intelligence sap bw & sap bi-bo en la salle barcelona.
Certificación Académica de Gustavo Rondon
























