✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
Aplicaciones ABAP
Los objetos mas comunes que se pueden crear en ABAP son los siguientes:
-Reporte, Reporte Interactivo y Reporte ALV
-Programa de Dialogo
-Formularios
-Batch Input
-User Exits
-Field Exits
-Funciones
-RFC
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 en las tablas del sistema y mostrar los resultados del procesamiento por pantalla.
Hay 4 tipos de palabras clave:
-Declarativas: para declarar los datos que usaremos 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
Podemos trabajar con el entorno de programación viejo o con el nuevo, para seleccionarlo utilizamos la siguiente ruta:
Menú-> Utilidades-> Opciones-> Editor ABAP-> Editor-> Editor Front End
Eventos de un programa ABAP
La programación ABAP es orientada a eventos.
Un evento es una etiqueta que identifica una sección de código dentro de un programa.
La sección de código asociada con el evento comienza con un nombre de evento, y termina cuando se encuentra el siguiente nombre de evento.
Los nombres de eventos son palabras reservadas, no podemos crear nuevos eventos, solo podemos usar los que ya existen.
Los principales eventos que pueden ocurrir en un programa son:
-Initialization:
Es el primer evento que se ejecuta y nos permite inicializar los campos de la pantalla de selección de un programa o cualquier otra variable.
-AT SELECTION-SCREEN:
Lo usamos para validar los datos introducidos en los parámetros que conforman a la pantalla de selección.
-START-OF-SELECTION:
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.
Este evento se utiliza para realizar el procesamiento central del programa, como por ejemplo realizar la selección de datos, procesar un archivo, realizar operaciones aritméticas, etc.
Es el evento por defecto, 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, o sea, luego del evento START-OF-SELECTION.
Contiene las ultimas sentencias que se ejecutarán en el programa, en general se lo usa para realizar la impresión de listados.
-AL LINE-SELECTION
Permite al usuario seleccionar una linea de un listado y realizar alguna acción- Se utiliza para los reportes interactivos.
-AT USER-COMMAND
Se ejecuta cuando el usuario presiona un botón del menú en un reporte.
-TOP-OF-PAGE
Se procesa antes de que el primer dato aparezca en cada página. Se suele usar para colocar títulos o cabeceras.
-END-OF-PAGE
Este evento se lanza cuando se crea automáticamente una nueva pagina.
Esto ocurrirá cuando el número de líneas procesado sobrepase el numero de lineas fijado para la pagina en la sentencia REPORT.
Ejemplo:
REPORT z_prueba_eventos.
Primero declaramos 3 variables todas de tipo entero (i):
DATA: v_campo1 TYPE i,
v_campo2 TYPE i,
v_suma TYPE i.
Luego dentro del evento INITIALIZATION borramos el contenido de la variable v_suma con la sentencia CLEAR; también asignamos a la variable v_campo1 el valor 10 y a la variable v_campo2 el valor 20:
INITIALIZATION.
CLEAR v_suma.
v_campo1 = 10.
v_campo2 = 20.
Luego dentro del evento START-OF-SELECTION sumamos las variables v_campo1 y v_campo2 y asignamos el resultado al campo v_suma:
START-OF-SELECTION.
v_suma = v_campo1 v_campo2.
Luego utilizamos el evento TOP-OF-PAGE para imprimir en pantalla el título 'Resultado de las cuentas'
TOP-OF-PAGE.
WRITE 'Resultado de las cuentas'.
Por ultimo dentro del evento END-OF-SELECTION imprimimos en pantalla el resultado de la suma almacenados en la variable v_suma:
END-OF-SELECTION.
WRITE v_suma.
NO IMPORTA EL ORDEN EN EL QUE SE ESCRIBAN LOS EVENTOS DENTRO DE UN PROGRAMA.
Uso del DEBUGGER
Para detectar errores necesitamos ejecutar nuestro programa y saber cuales son los valores que van tomando las variables internas del mismo, para esto utilizamos el debugger.
Para comenzar a utilizar el debugger visualizamos nuestro programa a través de la SE38 y colocamos un breakpoint luego de la declaración de las variables presionando el botón para breakpoints de sesión que duraran mientras la sesión este abierta o el botón para breakpoints externos.
Existen dos tipos de breakpoints:
Estáticos
Se agregan escribiendo en el código ABAP la sentencia BREAK-POINT, esto hace que el programa detenga su ejecución en el punto donde escribamos el breakpoint estático y pasará inmediatamente al modo debugging.
Funcionan independientemente del usuario que ejecuta el programa.
Dinámicos
Existen tres tipos:
-Breakpoints de debugger (son creados en el debug y se borran cuando se cierra del debugger)
-Breakpoints de sesión (son creados en el editor ABAP y son validos mientras dura la sesión del usuario para todos los modos externos existentes para la sesión de logon)
-Breakpoints externos (son validos para todas las sesiones de todos los usuarios en el servidor y su validez es de dos horas)
Dentro de debug usamos los siguientes botones:
Single Step o tecla F5: ejecutaremos paso a paso, sentencia a sentencia
Execute o tecla F6: ejecutaremos subrutina a subrutina sin entrar en el contenido de cada una.
Return o tecla F7: retornaremos a la rutina de nivel superior a la rutina actual
Run o tecla F8: continuaremos la ejecución hasta el final del programa
Una posibilidad que nos brinda el debug es la posibilidad de posicionarnos en una linea de código determinada para poder ejecutarla; esto nos sirve para ejecutar una linea de código posterior o anterior a la linea actual en procesamiento. Para esto nos posicionamos en la linea deseada y presionamos 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 seria el resultado del programa con esa modificación.
Modificación del debugger
Para cambiar el debug seguimos la siguiente ruta:
Utilidades -> Opciones-> Editor ABAP -> Debugging -> Función Debugging y cambiar la función del debug a 'F.debugging nueva'
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese