✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
Aplicaciones ABAP: Dentro del mundo ABAP se pueden crear distintos tipos de objetos. Los más comunes de ellos son:
- Reporte, Reporte interactivo y Reporte ALV
- Programa de Dialogo
- Formularios
- Batch Input
- User exits
- Field exits
- Funciones y RFC
A medida que avanza el curso vamos a ir viendo en detalle cada uno de ellos. Ahora nos vamos a ocupar de los llamados Reportes Clásicos o simplemente Reportes.
REPORTE: Es un programa que consiste en una serie de instrucciones y palabras clave cuyo objetivo es procesar datos de entrada o datos que se obtienen de las tablas del sistema y mostrar los resultados del procesamiento por pantalla.
Existen cuatro tipos de palabras claves:
- Declarativas: se utilizan para declarar datos que vamos a usar dentro del programa. Ej.: DATA, TABLES y CONSTANT.
- Eventos: que ocurren en el programa. Ej.: START-OF-SELECTION, TOP-OF-PAGE, etc.
- Control: sentencias de control de flujo de programa. Ej.: IF, WHILE, DO, etc.
- Operativas: realizan funciones según la palabra clave. Ej.: WRITE, MOVE, etc.
Existen dos formas de utilizar los comentarios en un programa ABAP:
- Con un asterisco en la primera columna de la fila.
- Con comillas dobles en cualquier posición de la línea.
Eventos de un programa ABAP: Como dijimos anteriormente, la programación ABAP es orientada a eventos.
Evento de un programa ABAP: Es una etiqueta que identifica una sección de código dentro de un programa.
La sección de código asociada con un evento, comienza con un nombre de evento y termina cuando el siguiente nombre de evento se encuentra.
Los nombres de eventos son palabras reservadas. No podemos crear nuevos eventos, solamente podemos usar los que ya existen.
Los principales eventos que pueden ocurrir dentro de un programa son:
- INITIALIZATION: Es el primer evento que se ejecuta. Nos permite inicializar los campos de la pantalla de selección de un programa o cualquier otra variable.
- AT SELECTION-SCREEN: Este evento se utiliza para validar los datos introducidos en los parámetros que conforman a la pantalla de selección.
- START-OF SELECTION: Este evento se lanza cuando se procesa la instrucción REPORT. En ese momento se empieza a ejecutar el código que se encuentra entre REPORT y la palabra reservada START-OF-SELECTION. Inmediatamente después se procesa el bloque contenido dentro de este evento.
El evento START-OF-SELECTION se utiliza para realizar el procesamiento central del programa, tal como puede ser realizar la selección de los datos, procesar un archivo, realizar operaciones aritméticas, etc.
Es el evento por defecto, es decir si escribimos sentencias ejecutables sin etiqueta de evento, estas se adjudican por defecto a START-OF-SELECTION.
- END-OF-SELECTION: El código de este evento se procesa cuando se termina el procesamiento central del programa, es decir luego del evento START-OF-SELECTION. Contiene las últimas sentencias que se ejecutarán en el programa. En general se lo utiliza para realizar la impresión de listados.
- AT LINE-SELECTION: Permite al usuario seleccionar una línea de un listado y realizar alguna acción. Se utiliza en los llamados reportes interactivos.
- AT USER-COMMAND: Se ejecuta cuando el usuario presiona un botón del menú en un reporte.
- TOP-OF-PAGE: Este evento se procesa antes de que el primer dato aparezca en cada página. Se suele utilizar para colocar títulos o cabeceras.
- END-OF-PAGE: Este evento se lanza cuando se crea automáticamente una nueva página. Esto ocurrirá cuando el número de líneas procesado sobrepase el número de líneas fijado para la página en la sentencia REPORT.
Veamos un ejemplo de cómo usaríamos los eventos en un programa ABAP. Para ello, nos logueamos a SAP, ingresamos a la transacción SE38 y creamos el programa Z_PRUEBA_EVENTOS que lo grabamos como programa ejecutable y como objeto local con el siguiente código:
*******************
REPORT Z_PRUEBA_EVENTOS_ESTQS36A.
DATA: v_campo1 TYPE i,
v_campo2 TYPE i,
v_suma TYPE i.
INITIALIZATION.
CLEAR v_suma.
v_campo1 = 10.
v_campo2 = 20.
START-OF-SELECTION.
v_suma = v_campo1 + v_campo2.
TOP-OF-PAGE.
WRITE 'Resultado de las cuentas'.
END-OF-SELECTION.
WRITE v_suma.
*******************
Si ejecutamos este programa produciríamos la siguiente salida:
No importa el orden en el que se escriban los eventos dentro de un programa.
Utilizando el debugger: Es muy importante saber utilizar el debugger o depurador ya que en programación las cosas solo funcionan si y solo si son perfectas, es decir sin errores.
Algunos errores se detectan a simple vista, pero para resolver otros vamos a necesitar ejecutar nuestro programa y saber exactamente cuáles son los valores que van tomando las variables internas del mismo. Para esto existe el debugger.
Veamos cómo debuguear el programa Z_PRUEBA_EVENTOS que acabamos de crear. Para ello, visualizamos el programa a través de la transacción SE38 y colocamos un breakpoint luego de la declaración de las variables presionando el botón para breakpoints de sesión que durarán mientras la sesión esté abierta o para breakpoints externos.
Luego ejecutaremos el programa y veremos en debugger en acción.
Presionando el botón Single step o la tecla F5, ejecutaremos paso a paso es decir sentencia a sentencia.
Presionando el botón Execute 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 Return o la tecla F7, retornaremos a la rutina de nivel superior de la rutina actual en ejecución.
Presionando el botón Run o la tecla F8, continuaremos la ejecución hasta el final del programa.
En la parte inferior de la pantalla del debugger podemos ingresar el nombre de cualquiera de las variables del programa para saber cuál es su contenido en cualquier momento del mismo. También podemos modificar el contenido de una variable para saber cuál sería el resultado del programa con esta modificación.
Modificación del Debugger: Si visualizas una pantalla de debug diferente a la que presentamos en las imágenes anteriores es porque tienes configurado el debug nuevo.
Para cambiar el debug debes ir:
> Utilidades
|-> Opciones
|-> Editor ABAP
|-> Debugging
|-> Función Debugging y cambiar la función del debug.
Configuramos el nuevo debug seleccionando la opción F.debugging nueva tal como vemos a continuación:
Y al ejecutar nuevamente el debugger visualizaremos la siguiente pantalla:
Aguarda unos instantes a continuación compartiremos un video en donde analizaremos varios temas muy interesantes relacionados a lo que vimos a lo largo de la lección.
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial