Características fundamentales del debugger ABAP en SAP Netweaver
Inspeccionar el código fuente es probablemente una de las tareas más delicadas en el desarrollo de una aplicación. Las herramientas con las que contamos para llevarla a cabo cumplen un rol fundamental y si están bien diseñadas seguramente se verá reflejado en una mejora de nuestra productividad.
El editor y debugger ABAP, con sus numerosas funciones de formateo de código, junto con otras destacadas características, se presentan como un instrumento potente con una interfaz amigable para el programador.
Características del editor
Lo que se detalla a continuación son las nuevas particularidades del editor ABAP:
– Coloración de la sintaxis automática y configurable.
– Predicción de palabras claves del lenguaje en tiempo real.
– Señaladores de código (marcadores).
– Posibilidad de contraer y expandir bloques lógicos de código.
– Codigos prediseñados (Templates) configurables para estructuras de código, con la posibilidad de utilizar campos dinámicos.
– Auto-corrección del código a través de diccionario de errores conocidos totalmente configurable.
– Separación del editor en dos ventanas en la misma pantalla, permitiendo la comparación de sectores de código sin necesidad de abrir otra sesión.
– Seteo de breakpoints al margen del código – Enumeración de líneas de código.
– Indicador de nuevas líneas y líneas modificadas.
– Exportación de trozos de código o programas completos con múltiples formatos (HTML, PDF, etc.).
Vista simplificada de la interfaz del editor
La siguiente imagen corresponde al nuevo editor ABAP. Como puede observarse existen notables diferencias con las versiones anteriores, de las cuales se destacan las siguientes:
La ventana correspondiente al menú de opciones que posibilita la configuración de numerosas características del editor, incluyendo la creación de patrones de bloques de código:
En la subventana donde figura el código, el texto encerrado entre signos de porcentaje (%) corresponde a variables dinámicas que tomarán su valor según la necesidad del programador al momento de utilizar el template.
Para utilizarlo a la hora de programar: Al escribir la palabra “select” se activará el símbolo que figura en la descripción (§), y presionando CTRL+ ENTER aparecerá automáticamente el bloque de código correspondiente.
Las funciones agregadas resultan ser de gran utilidad y la posibilidad de que gran parte de ellas puedan ser configuradas por el usuario no es un dato menor. Esto, sumado a las características ya conocidas del tradicional editor (búsqueda global, navegación hacia otras herramientas, activación, etc.), convierte al nuevo editor Abap en un producto amigable, potente y fundamental para el desarrollo de aplicaciones.
Vista simplificada de la interfaz del debugger
La posibilidad de configurar 3 escritorios de prueba (Desktop 1, 2 y 3), permite crear diferentes entornos para realizar depuraciones específicas. Las herramientas que se permiten incluir en cada escritorio figuran listadas a continuación:
Una vez que se obtiene el entorno de prueba deseado, se puede guardar para ser utilizado en futuras sesiones de debugging. Para ello “salvar el layout”, desde el menú Debugger →Debugger Session→ Save Layout. De esta forma, la próxima vez que se ingrese al debugger, figurarán en el escritorio, las herramientas anteriormente elegidas.
La visualización de estructuras y tablas es un agregado importante, ya que permite observar en una misma ventana el contenido de 2 estructuras de datos, facilitando notablemente el trabajo de comparación.
De la misma manera, la comparación entre variables viene integrada en una solapa estándar (Diff) que permite seleccionar dos variables sin restricción e ir comparando su contenido paso a paso en la ejecución del programa, permitiendo la modificación de su valor.
Ambas herramientas tienen un log histórico de los objetos seleccionados, de manera que, si se quiere volver a enfrentar dos variables o estructuras, simplemente deben elegirse desde dicho log. La nueva versión del debugger presenta una serie de características que facilita notablemente el trabajo del programador, presentando a su vez una interfaz amigable similar a la del nuevo editor, lo cual impacta en el usuario dando una idea de herramientas que trabajan en conjunto.
MODO DEBUG
Un programa ABAP puede ejecutarse paso a paso o pueden insertarse breakpoints para parar en cualquier sentencia la ejecución del mismo. Para activar la ejecución en “modo debugging” al testar una transacción o durante la ejecución de un programa hay que ir a la función debugging, por el menú: Sistema – Utilidades – Debugging ABAP, o bien introducir ‘/H’ en la barra de comandos. Con esto también se saltan los procesos PBO (Process Before Output) y se pasa directamente a la pantalla de selección. Empieza la ejecución paso a paso o con breakpoints.
Los breakpoints pueden fijarse desde el editor pulsando el botón Fijar Breakpoint. Para ver los que hay definidos, por menú ir a Utilidades – Breakpoints – Visualizar. También se pueden codificar breakpoints en el programa de forma estática, usando la sentencia Abap/4:
BREAK–POINT.
Al depurarse un programa, cuando se llega a un breakpoint la ejecución se detiene. En ese momento se puede conocer el contenido actual de todos los campos, variables, tablas internas, sus cabeceras, y bases de datos referenciadas en el report (incluso campos del sistema). Para ello, hacemos doble clic sobre el campo a ver, o bien pulsamos el botón Seleccionar, o incluso escribimos su nombre directamente. Para ver todas las entradas de una tabla interna, pulsamos el botón Tabla y escribimos su nombre. Su registro de cabecera se distingue con el símbolo: >>>>>.
También se puede cambiar el contenido de los campos o variables en ese momento, forzando la ejecución del programa para ver cómo responde éste, o para corregir valores incorrectos. Para ello teclearmos el nuevo valor para una variable, y pulsamos el botón Retener para ‘guardarlo’.
La línea actual en proceso en modo debugging está marcada con un ‘>’ (es el punto de ejecución). En modo “paso a paso” se puede ejecutar una subrutina, función o bloque de programa todo seguido, pulsando el botón Ejecutar, o bien hacerlo paso a paso, con el botón Paso-a-paso.
FUNCIONES PRINCIPALES EN MODO DEBUGGING
Paso simple o Paso-a-paso
Procesa la siguiente línea de programa, incluso dentro de las subrutinas, en las que entra y ejecuta también paso a paso.
Continuar
El proceso continúa automáticamente hasta el próximo breakpoint, donde se para, o hasta que finalice el programa.
Ejecutar
Procesa paso a paso el programa principal, pero de un golpe las subrutinas.
Breakpoint
Se muestra una pantalla en la cual pueden definirse breakpoints. Para ello elegir Breakpoint Set. Aparecerá una marca de breakpoint en la línea elegida. Para borrar un breakpoint, hacer doble clic sobre él. Para borrar todos, elegir por menú Borrar – Borrar todos.
Retornar
Vuelve al breakpoint anterior.
Display Format
Permite elegir el formato del campo dado. Al marcar con ‘E’, ‘X’ o ‘C’ una columna. Su contenido se muestra en: E (editado), X (hexadecimal), C (alfanumérico o char).
Reemplazar
Al marcar con ‘R’ la columna, se puede cambiar el contenido de un campo. Para ello introducimos un nuevo valor en la columna ‘cont’. Para cargar un valor en un campo, escribimos su valor en dicha columna, elegimos ‘columna R’ (para hacer efectivo el remplazo) y pulsamos ENTER.