✒️ABAP / Las características de los programas ABAP Por Gustavo Rondon Hernandez
ABAP Las características de los programas ABAP

Las características de los programas ABAP
1 | Los objetos ABAP
Dentro del mundo ABAP se pueden crear distintos tipos de objetos. El tipo de objeto que vamos a necesitar crear o modificar en el sistema va a depender del requerimiento o la necesidad del usuario del sistema SAP
Los objetos ABAP más comunes con los que vamos a trabajar en el día a día como programadores ABAP son los siguientes:
- Los reportes, dentro de los cuales tenemos los reportes clásicos, el reporte interactivo y el reporte ALV
- Los programas de diálogo o también llamado module pool
- Los módulos de funciones y los módulos de funciones RFC
- Los formularios dentro de los cuales vamos a trabajar principalmente con los SAPScripts y los Smartforms
- Los Batch Input que son un tipo de programa que se utiliza para el ingreso masivo de datos al sistema.
- Las ampliaciones, dentro de las cuales vamos a trabajar con los User Exit los Customer Exit, los Field Exit, los Screen Exit, los Menu Exit y los Enhancement
- Las interfaces, es decir los archivos de entrada y los archivos de salida
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 que son los de objetos con los que más vamos a trabajar como programadores ABAP.
Reporte
Es un programa que consiste en una serie de instrucciones y palabras clave cuyo objetivo es procesar datos de entrada, que se ingresan al programa a través de lo que se conoce como pantalla de selección ose pueden obtener de las tablas bases de datos del sistema SAP
Luego los datos ingresados se procesan y finalmente se muestran los resultados del procesamiento por pantalla o se generan archivos de salida.
Palabras reservadas
Las palabras reservadas, tal como lo indica su nombre, son palaras o sentencias que están reservadas dentro del lenguaje de programación ABAP para ocupar determinadas funciones y que no pueden ser utilizadas por los programadores con otras intenciones diferentes de las cuales han Sido creadas.
Ejemplos de palabras reservadas de ABAP son las siguientes:
REPORT
DATA
PERFORM
INITIALIZATION
Existen cuatro tipos de palabras reservadas o claves:
- Las declarativas: que se utilizan para declarar datos que vamos a usar dentro del programa. Ej.: DATA, TABLES o CONSTANT
- Los eventos: que ocurren en el programa. Por ejemplo: START-OF-SELECTION,TOP-OF-PAGE o INITIALIZATION.
- Las de control: son sentencias de control de flujo de programa. Por ejemplo: IF, WHILE 0 DO.
- Las operativas: realizan funciones según la palabra clave. Por ejemplo: WRITE, MOVE o TRANSLATE.
Ahora bien, ya sea que estemos trabajando con un reporte u otro tipo de los objetos ABAR es sumamente importante cuando estamos modificando un objeto existente en el sistema o creando un nuevo objeto, que escribamos comentarios en los programas con los que trabajamos.
Cuando la lógica que existe dentro de un programa ABAP es muy compleja o el programa ABAP es muy largo en cantidad de líneas de código, una simple línea de comentarios nos puede ayudar a entender todo un engorroso proceso. Ni hablar si nos toca modificar un programa ABAP que fue generado por otro programador que no somos nosotros.
Sabias que
La generación de comentarios en los programas ABAP es considerada una buena práctica de programación ya que ayuda a entender la lógica del código existente en el programa.
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.
"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 y aqui seleccionamos la opción editor front end, nuevo en este editor estan presentes algunas características de los editores de software más reconocidos de la actualidad como: el auto completado y muchas otras funciones más"
Ya que nos encontramos hablando de la estructura de los programas ABAP vamos a aprovechar para mencionar que dentro del editor ABAP correspondiente a la transacción estándar SE38 podemos elegir entre utilizar el editor ABAP nuevo o el editor ABAP antiguo.
Consejos
El editor ABAP nuevo presenta innumerables mejoras respecto del editor ABAP antiguo por lo que no recomiendo utilizar este último.
Si deseamos modificar la configuración del editor ABAP es decir pasar del editor ABAP nuevo al antiguo o viceversa debemos ir al menú Utilidades I Opciones I Editor ABAP I Editor.
Por defecto cuando nos logueamos a SAP como desarrolladores vamos a ver que se encuentra configurado el editor nuevo.
Veamos a continuación un ejemplo de un programa ABAP editado a través del editor ABAP antiguo y también a través del editor ABAP nuevo para ver las diferencias a simple vista entre ambas herramientas.
2 | Los eventos de un programa ABAP
El lenguaje de programación ABAP es un lenguaje estructurado, también es orientado a eventos y a partir de una determinada versión incorpora la programación orientada a objetos. En lo que se refiere a la orientación a eventos es importante que definamos que es un evento dentro de un programa ABAP
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 elsiguiente nombre de evento se encuentra.
Los nombres de los eventos son palabras reservadas. No podemos crear nuevos eventos, solamente podemos usar los eventos que ya existen.
Los principales eventos que pueden ocurrir dentro de un programa ABAP son los siguientes:
- INITIALIZATION
Es el primer evento que se ejecuta dentro del programa. Nos permite inicializar los campos de la pantalla de selección de un programa o cualquier otra variable. Cuando hablamos de inicializar nos referimos a blanquear una variable o también a asignarle un valor o contenido determinado.
- AT SELECTION-SCREEN
Este evento se utiliza para validar los datos introducidos en los parámetros que conforman a la pantalla de selección, por lo que este evento solo lo vamos a encontrar en aquellos reportes que cuentan con una 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 de código 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 en 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.
El evento END-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 por pantalla o la generación de archivos de salida.
- AT LINE-SELECTION
El evento AT LINE-SELECTION se utiliza en el llamado reporte interactivo que es un tipo de reporte ABAP 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.
Mediante este evento podemos saber sobre cuál línea de la pantalla el usuario hizo doble clic, de modo de poder realizar alguna acción sobre ella.
- USER-COMMAND
El evento AT USER-COMMAND se ejecuta cuando el usuario hace clic en un botón del menú del reporte.
- TOP-OF-PAGE
El evento 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
El evento END-OF-PAGE se lanza cuando se crea automáticamente una nueva página en un listado de salida Esto ocurrirá cuando el número de líneas procesado sobrepase al número de líneas fijado para la página en la sentencia REPORT.
Por ejemplo si tenemos que imprimir en pantalla un reporte de salida de 100 líneas entonces cuando se alcance el número máximo de líneas que entran en pantalla, el cuál es cercano a 24 líneas, al momento de imprimirse la línea número 25 se ejecutará el evento END-OF-PAGE previamente a la impresión de la línea 25.
Veamos un ejemplo de cómo usaríamos los eventos en un programa ABAR 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 anteriormente en un principio declaramos tres variables v_campo 1, v_campo 2 y v_campo suma todas de tipo enteros, en próximas lecciones vamos a explicar en detalle los datos existentes en ABAP y la forma de declararlo luego dentro del evento initialization lo que hacemos es borrar 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 setencia clear también alli mismo lo que hacemos es asignar la variable v_campo1 el valor 10 y también asignamos a la variable v_campo2 el valor 20 luego dentro del evento en STAR-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 titulo resultado de las cuentas y dentro del evento END-OF-SELECTION imprimimos en pantallas el resultado de las sumas almacenada en la variable v_suma"
En resumen: No importa el orden en el que se escriban los eventos dentro de un programa ya que existe un orden preestablecido de ejecución de los eventos.
Es decir si primero escribo el evento START-OF-SELECCTION y luego escribo el evento INITIALIZATION eso no significa que los eventos se ejecutarán en ese orden.
3 | El navegador de objetos
Hasta al momento para crear, modificar o visualizar un programa o reporte ABAP utilizábamos el editor ABAP correspondientea la transacción SE38. Pero existe otra transacción a través de la cual podemos crear, modificar o visualizar varios de los tipos de objetos ABAP que describimos al comienzo de esta lección y esa transacción es el Navegador de objetos correspondiente a la transacción estándar SE80.
En la parte izquierda de la pantalla de la transacción tenemos una serie de botones disponibles: nosotros siempre vamos a tener seleccionado la segunda opción que es la correspondiente a Browser de Repository.
Desde esta transacción tenemos la posibilidad de trabajar con distintos tipos de objetos ABAP Para seleccionar el tipo de objeto que deseamos crear, modificar o visualizar vamos a utilizar el campo desplegable que vemos a la izquierda de la pantalla de la transacción.
Tenemos disponibles los siguientes tipos de objetos ABAP para trabajar desde esta transacción, siendo algunos de ellos muy comúnmente utilizados tales como los programas y otros prácticamente nunca los vamos a utilizar.
Analicemos a continuación los objetos ABAP del listado más comúnmente utilizados:
Jerarquía de aplicaciones: si seleccionamos esta opción entonces podremos crear todos los objetos que se visualizan en la lista desplegable que vemos a continuación:
Con la particularidad que tendremos que especificar el área funcional o módulo del sistema al cual corresponde el objeto que estamos por crear en el sistema.
Paquete: desde aquí podemos crear, modificar o visualizar un paquete o clase de desarrollo.
Programa: es un programa ABAP tal como los que hasta el momento creábamos a través del editor ABAP correspondiente a la transacción SE38.
Grupo de funciones: es un objeto que se utiliza para agrupar módulos de funciones que se encuentran relacionados. Desde aquí podemos crear, modificar o visualizar un grupo de funciones.
Clase I Interface: una clase abap y una interface son objetos pertenecientes a la programación orientada a objetos. Estudiaremos en detalle a ambos objetos más adelante en la Carrera Consultor ABAP
Comp./lntf. Web Dynpro: es un tipo de objeto ABAP que se utiliza para desarrollar aplicaciones web mediante SAP.
 
 
 
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
























