![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El debugger ABAP
ABAP El debugger ABAP
![ABAP El debugger ABAP ABAP El debugger ABAP](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/397.jpg)
CURSO PROGRAMADOR ABAP
Unidad 2 - DECLARACION Y PROCESAMIENTO DE DATOS
Lección 1 – Las características de los programas ABAP
1 – Los objetos de ABAP:
Dentro de SAP se pueden crear muchos tipos de objetos, pero los más comunes con los que vamos a trabajar son:
.Reportes (Clásicos, Interactivos y ALV)
.Programas de diálogo o module pool
.Módulos de funciones o funciones RFC
.Formularios (los principales SAP Scripts y Smartforms
.Batch Input (se utilizan para el ingreso masivo de datos al sistema
.Ampliaciones (User Exit, Customer Exit, Field Exit, Screen Exit, Menu Exit y Enhancement)
.Las Interfaces (los archivos de entrada y los de salida)
Reportes: programa cuyo objetivo es procesar datos de entrada mediante una ´pantalla de selección´o de ´tablas de bases de datos del sistema´. Los datos ingresados se procesan y luego se muestran los resultados en pantalla o se genera un archivo de salida.
En el ejemplo de programa mostrado algunas palabras están escritas en color azul, eso es porque son palabras reservadas del lenguaje ABAP. Existen cuatro tipos de palabras reservadas o claves:
.Declarativas (declaran datos que se usaran dentro del programa. Ej: DATA, TABLES o CONSTANT
.Eventos (eventos que ocurren en el programa. Ej: START-OF-SELECTION, TOP-OF-PAGE o INITIALIZACION)
.De Control (Controlan el flujo del programa. Ej: IF, WHILE o DO)
.Operativas (Realizan funciones según la palabra, ej. WRITE, MOVE o TRANSLATE)
Para la legibilidad del programa es conveniente insertar comentarios en el programa. Existen dos formas de hacerlo:
. Con un asterisco (*) en la primer posición de la fila. Toda la fila quedaría como un comentario
. Con comillas dobles (“), luego del punto de finalización del comando (el comentario quedaría a la derecha de la fila
Dentro de la SE38 en el menú ‘Utilidades / Opciones / Editor ABAP / Editor “, podemos seleccionar si trabajamos con el editor nuevo o el viejo.
2 - Los eventos de un programa:
ABAP es estructurado y orientado a eventos, y a partir de una determinada versión incorpora la programación orientada a objetos.
¿Qué es un evento? Es una etiqueta que identifica una sección de código, comienza con esta etiqueta y termina cuando el siguiente nombre de evento se encuentra. Los nombres de eventos son palabras reservadas y no se pueden crear nuevos eventos, solo utilizar los existentes.
Los principales son:
INITIALIZATION (es el primer evento que se ejecuta dentro del programa, inicializa los campos de la pantalla de selección, una variable, se le puede asignar un tipo y un valor)
AT SELECTION-SCREEN (valida los datos introducidos en los parámetros que conforman a la pantalla de selección, por lo tanto este evento lo encontraremos en los reportes que cuenten con dicha pantalla
START-OF-SELECTION (este evento se procesa luego de procesar las operaciones incluidas en la instrucción REPORT. Este evento realiza el procesamiento central del programa, por ej.: selección de datos, procesar un archivo, realizar operaciones aritméticas, etc.
Si escribimos sentencias sin etiquetas de evento, estas se adjudican por defecto en START-OF-SELECTION
END-OF-SELECTION (el código de este evento se procesa cuando se termina el procesamiento central, es decir, luego de START-OF-SELECTION. Son las últimas sentencias que se ejecutaran en el programa, por lo general realizan impresiones por pantalla o la generación de archivos de salida
AT LINE-SELECTION (se utiliza en el llamado reporte interactivo en donde se muestra en pantalla un listado inicial y a partir de hacer doble clic en alguna línea de este listado se muestra una segunda pantalla con información adicional o detallada, y así cuantos niveles se desee. Con este evento podemos saber en cual línea de la pantalla se hizo doble clic.
AT USER-COMAND (este evento se ejecuta cuando el usuario hace clic en un botón del menú del reporte)
TOP-OF-PAGE (se procesa antes de que el primer dato aparezca en cada página y se utiliza para imprimir o generar títulos o cabeceras
END-OF-PAGE (se lanza automáticamente una nueva página en un listado de salida. Esto ocurre cuando el número de líneas procesado sobrepase al número de líneas fijado para la página en la sentencia REPORT)
(Escribir el programa de ejemplo que está en el curso en este punto específico, para ver una muestra de algunos eventos)
3 – El navegador de eventos:
El navegador de objetos corresponde a la transacción SE80, cuando aparezca la ventana del navegador, nosotros siempre vamos a tener seleccionado Browser de Repository.
Tenemos una lista desplegable a la izquierda de la pantalla, que nos permite seleccionar el tipo de objeto que vamos a utilizar (programa, paquete, grupo de funciones, etc.)
.Jerarquía de aplicaciones: con esta opción puedo crear todos los elementos de la lista desplegable
Lección 2 – El Debugger de ABAP
1 – El Debugger de ABAP:
Deugger es una herramienta para el análisis y la solución de problemas. Se utiliza para ejecutar programas paso a paso y en ese proceso verificar la lógica, contenido de variables, tablas internas, variables del sistema, memoria, etc.
Se accede mediante la transacción SE38 y se puede configurar alguna de las dos versiones disponibles, desde el menú Utilidades / Opciones
Para hacer debuggin se utilizan breakpoints, los cuales se deben insertar en el código fuente del programa.
Breakpoint es un punto de interrupción que se pone en el código fuente, de tal forma que cuando la ejecución del programa llegue a ese punto, se detendrá y podremos analizar su estado en ese momento, justo antes de ejecutar esa línea de código.
Pueden ser:
Estáticos, se escribe el comando Break-Point
Dinámicos, de los cuales tenemos tres tipos:
De debugger (doble clic a la izquierda de una línea particular en código ABAP o a través del icono STOP. Se borran al cerrar el Debugger).
De sesión (solo válidos para la sesión actual, son independientes del usuario SAP que los coloque. Para colocar uno de estos pulsar sobre el botón STOP/Monitor del Debugger. Una vez colocado aparecerá en la barra de status "Sesión de breakpoint fijada").
Externos (son válidos para cualquier aplicación que se ejecute en el sistema, tienen una validez de 2 horas y se asocian a un usuario SAP en particular. Para colocar uno de estos se debe pulsar sobre el botón STOP/Usuario del Debugger).
Una vez colocado un breakpoint de cualquier tipo, se abre un nuevo modo de SAP en donde se visualiza el debugger ABAP.
Una vez que estamos ejecutando el programa en modo debugg, tenemos cuatro opciones para avanzar con la ejecución:
F5: ejecución paso a paso
F6: Ejecuta subrutina a subrutina sin entrar en el contenido de c/u
F7: retorna a la subrutina de nivel superior de la subrutina actual
F8: continúa con la ejecución hasta el final del programa
Para visualizar el contenido de una variable en modo debuggin hacemos doble clic sobre la variable y luego vamos a visualizar a la derecha de la pantalla, allí pulsando sobre el lápiz podemos modificar el valor de la variable, luego dando ENTER, se carga ese valor modificado en la variable.
Watchpoint: Es parecido a un breakpoint pero se activa solo cuando cambia el contenido de un campo especificado.
Como los break-points dinámicos, son específicos del usuario y no afectan a otros usuarios. Solo se pueden activar desde el debugger de ABAP.
Para insertarlo se debe pulsar el boton Watchpoint en la barra de Herramientas, luego de esto se debe especificar el nombre de la variable y si hay la condición (valor) que se debe cumplir para que se ejecute el Watchpoint.
El modo debuggin se puede activar estando en el código del programa, se escribe el comando /H y luego se ejecuta el programa F8
 
 
 
Sobre el autor
Publicación académica de Daniel Eliseo Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Daniel Eliseo Perez
Profesión: Pycg - Argentina - Legajo: EG88F
✒️Autor de: 5 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Me gusta aprender y que ese conocimiento sirva como crecimiento personal, profesional y de utilidad para mi lugar de trabajo y el equipo de trabajo.
Certificación Académica de Daniel Perez