✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
UNIDAD 2
Características de los programas ABAP
1 - 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
NUEVO CONCEPTO: 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 de un programa. Ejemplo: DATA, TABLES y CONSTANT.
- Eventos: que ocurren en el programa. Ejemplo: START-OF-SELECTION, TOP-OF-PAGE, etc.
- Control: sentencias de control de flujo de programa. Ejemplo: IF, WHILE, DO, etc.
- Operativas: realizan funciones según la palabra clave. Ejemplo: WRITE, MOVE, etc.
Generalmente la estructura de un reporte va a ser de la siguiente manera:
REPORT <Nombre>................................................"Nombre del programa
TABLES: ......................................................."Aca se definen las tablas del Diccionario de datos
DATA: ........................................................."Aca definimos las variables de datos
EVENTOS: ......................................................"Se detallan los eventos y el código correspondiente a cada uno
SUBRUTINAS: ..................................................."Se crean para modularizar los programas y ayudar al mantenimiento
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 linea.
* Imprimimos en pantalla
WRITE:/ 'Este es mi primer programa en ABAP'. "Imprimimos en pantalla
AUDIO TIPS 1: En ABAP como desarrolladores tenemos la posibilidad de elegir trabajar con el entorno de programación viejo o el nuevo. Esto lo podemos configurar en el menú --> Utilidades --> Opciones --> Editor ABAP --> Editor --> Editor Front End Nuevo. En este editor están presentes algunas de las características de los editores de software más reconocidos de la actualidad tales como: el Autocompletado y muchas otras funciones más.
2 - Eventos de un programa ABAP
La programación ABAP es orientada a Eventos.
NUEVO CONCEPTO: 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 evento 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 opciones 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 linea 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.
Ejemplo de cómo se usaria 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:
Vamos a explicar brevemente el programa Z_PRUEBA_EVENTOS cuyo código vimos en la imagen anterior: en un principio declaramos 3 variables v_campo1, v_campo2 y v_suma todas de tipo entero. Luego dentro del evento INITIALIZATION lo que hacemos es borrar el contenido de la variable v_suma. Esto lo hacemos con la sentencia CLEAR, es decir cada vez que queramos borrar o inicializar el contenido de una variable, vamos a utilizar la sentencia CLEAR. También allí mismo lo que hacemos es asignar a la variable v_campo1 el valor 10 y a la variable v_campo2 el valor 20. Luego dentro del evento START-OF-SELECTION sumamos las variables v_campo1 y v_campo2 y asignamos el resultado de la suma a v_suma. Utilizamos el evento TOP-OF-PAGE para imprimir en pantalla el título "Resultado de las cuentas", y dentro del evento END-OF-SELECTION imprimimos en pantalla el resultado de la suma almacenado en la variable v_suma.
Si ejecutamos este programa produciríamos la siguiente salida:
Programa de Prueba de los eventos Abap
Resultado de las cuentas
30
SABIAS QUE... No importa el orden en el que se escriban los eventos dentro de un programa.
3 - 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 cuales son los valores que van tomando las variables internas del mismo. Para esto existe el debugger. Veamos como debaguear 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 (stop ventanita) para breakpoints de sesión que durarán mientras la sesión este abierta o (stop personita) para breakpoints externos.
------------------------------------------------------
AUDIO TIPS 2: Existen 2 tipos de breakpoints, los estáticos y los dinámicos. Los breakpoints estáticos se generan escribiendo en el código ABAP la sentencia break-point. El programa siempre detendrá su ejecución en el punto donde escribamos un breakpoint estático y pasará inmediatamente al modo debugger. Estos breakpoint funcionan independientemente del usuario que ejecuta el programa. Dentro de los breakpoints dinámicos existen tres tipos:
- Los breakpoint de debugger: que son creados en el debugger y se borra cuando se cierra el debugger.
- Los breakpoint de sesión: que son creados en el editor ABAP y son válidos mientras dura la sesión del usuario para todos los modos externos existentes para la sesión de Logon.
- Los breakpoint externos: que son válidos para todos los usuarios de todas las sesiones del servidor y su validéz es de solo dos horas.
------------------------------------------------------
Luego ejecutaremos el programa y veremos el 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.
Presionando el botón Return o la tecla F7, retornaremos a la rutina del 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.
------------------------------------------------------
AUDIO TIPS 3: Una funcionalidad muy útil que nos proporciona el debugger ABAP es la posiblidad de posicionarnos en una linea de código determinada para poder ejecutarla. Esto nos es de gran utilidad tanto si quisieramos ejecutar una linea de código posterior a la linea actual que se está ejecutando, como si quisieramos ejecutar una linea de código anterior a la linea actual en procesamiento. Para ello solo basta con posicionar el puntero del mouse en la línea deseada y presionar Shift + F12.
------------------------------------------------------
En la parte inferior de la pantalla del debugger podemos ingresar el nombre de cualquiera de las variables del programa para saber cual es su contenido en cualquier momento del mismo. También podemos modificar el contenido de una variable para saber cual sería el resultado del programa con esta modificación.
USO DEL MENÚ: Modificación del Debugger
Si visualizas una pantalla de Debug diferente a las 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 del 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.
VIDEO: Se explica lo que se vió a lo largo de la lección.
En la transacción se38 al crear un programa ABAP, existe dentro de esa interfaz un campo tipo, ese campo tipo es desplegable y tiene las siguientes opciones:
- Programa ejecutable: Es un programa ABAP clasico que puede ejecutarse sin contar con un código de transacción asociado, simplemente presionando la tecla F8 de forma online o también de fondo. Los programas ABAP de este tipo son los más comunes que vamos a crear en nuestro día a día como ABAPERS.
- Programa de Include: Son programas que se crean con el objetivo de almacenar definiciones de datos, definiciones de subrutinas, es decir, modularizar el código que creamos.
- Modulpool: o programas de dialogos que son programas que se ejecutan exclusivamente de forma online ya que su objetivo es la interacción con el usuario, de modo que el usuario va navegando por las distintas pantallas del programa haciendo clic en los botones y completando información.
- Grupo de funciones: se utilizan para agrupar declaraciones de modulos de funciones.
- Pool de subrutinas: contienen subrutinas que pueden ser llamadas desde programas externos. No es tan habitual la creación de este tipo de objetos.
- Pool de interface: nos va a permitir agrupar las interfaces de un proyecto ABAP.
- Pool de clases: nos va a permitir agrupar las clases de un proyecto ABAP.
Tanto las interfaces como las clases pertenecen a la programación orientada a objetos.
- TYPE-POOL: es un objeto que nos permite concentrar declaraciones de datos y tipos.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Diego Yeguez
Sobre el autor
Publicación académica de Freddy Enrique Sierra Yepez, en su ámbito de estudios para la Carrera Consultor ABAP.
Freddy Enrique Sierra Yepez
Profesión: Ingeniero de Sistemas - Colombia - Legajo: PA44Z
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Freddy Sierra