✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
1 - APLICACIONES ABAP.
Objetos comunes a definir en ABAP son:
- Reportes (Interactivos o ALV).
- Programas de Diálogo.
- Formularios (SmarFonts).
- Batch Input.
- User Exits.
- Field Exists
- Funciones y RFC.
REPORTE: Son Programas que constan de una serie de instrucciones y "Palabras Claves" cuya finalidad es procesar datos leidos de las tablas del Sistema y mostrar los resultados del procesamiento de esos datos por pantalla.
Se distinguen 4 tipos tipos de "palabras claves":
1) Declarativas: Son utilizadas para "declarar" los Datos a usar en el programa (Ej.: DATA, TABLES y CONSTANT).
2) Eventos: Que ocurren en el programa (START-OF_SELECTION, TOP_OF_PAGE, etc…)
3) Control: Sentencias de control en el flujo del programa. (Ej.: IF, WHILE, LOOP, etc...)
4) Operativas: Realizan funciones según la palabra clave (Ej.: WRITE;MOVE, etc..):
ESTRUCTURA REPORT:
Generalmente será:
REPORT <Nombre> => Nombre del Programa
TABLES: => Tablas del Diccionario de Datos.
DATA: => Variables Internas.
EVENTOS: => Eventos y el cóigo asociado a cada evento.
SUBRTUTINA: => Trozos de código que pueden ser utilizadas más de una vez en el Programa.
COMENTARIOS:
Existen dos formas de utilizar comentarios:
a) Con un * en la primera linea
b) con " en cualquier posición de la linea a partir de ellas.
2 - EVENTOS DE UN PROGRAMA ABAP.
ABAP es un lenguaje orientado a Eventos.
Un Evento es una acción reconocida por un objeto (como hacer un clic del mouse o presionar una tecla), y para el cual se puede escribir código para responder. Los eventos pueden ocurrir como resultado de una acción por parte del usuario o código del programa, pero también pueden ser "disparados" por el sistema.
Los nombres de Eventos son palabras reservadas. De momento solo prodremos usar los eventos que existen.
Cada evento posible es capturado por la sentencia correspondiente. Un programa Abap/4 no es más que un conjunto de bloques de proceso, cada uno correspondiente a un evento (por tanto, no se ejecutan secuencialmente). Dichas sentencias son: INITIALIZATION, START-OF-SELECTION, END-OF-SELECTION, TOP-OF-PAGE, END-OF-PAGE, AT SELECTION-SCREEN, AT LINE-SELECTION, AT PFn, AT USER-COMMAND (estos tres últimos son eventos específicos para reports o listados interactivos).
Los pricinciples eventos que pueden "suceder" dentro de un Programa son:
- INITIALIZATION: Se ejecuta siempre antes de que aparezca la pantalla de selección, una sola vez. Se usa para inicializar parámetros y criterios de selección
- START-OF-SELECTION: se ejecutará tras procesar la pantalla de selección (después de INITIALIZATION). En este evento tiene lugar la selección de los datos por parte del usuario. Es el evento por defecto.
- END-OF-SELECTION: se activa tras finalizar el START-OF-SELECTION. Utilizaremos este evento para realizar la impresión de listados por pantalla.
- TOP-OF-PAGE: se activa justo antes de imprimir la página actual (antes del primer WRITE). Sirve para escribir cabeceras de páginas y títulos. Se ejecuta antes de la primera línea de cada página.
- END-OF-PAGE: se activa si se alcanza el área de la página reservada para este evento (con la opción LINE-COUNT en PROGRAM o REPORT) al final de la página; si no hay área definida, no se activa el evento.
- AT SELECTION-SCREEN: se activa mientras se procesa la pantalla de selección, o bien después de ésta (PAI). Según sus parámetros, se activará cuando el usuario realice cierta acción en la pantalla de selección, como dar valor a un SELECT-OPTIONS. Por tanto, se usa para controlar los datos que introduce el usuario, y sólo tiene sentido en reports.
Los eventos se ejecutan en un orden establecido, independientemente del orden en que se hayan codificado en el programa.
3 - DEBUGGER.
Es sumamente importante saber utilizar el debugger (o depurador), para detectar posibles errores que no son detectados a simple vista.
Existen 2 tipos de breakpoints.
1) Estaticos: Escritos en el programa con la orden ".BREAK-POINT.". Estos "puntos de interrupción afectan a cuaquier usuario que ejecute ese programa. Hay que ser cuidadosos con estos breakpoints, y no olvidarse de quitarlos una vez resuelto el problema.
2) Dinamicos:
a) BreakPoints de Debugger: Son creados cuando se ejecuta el Debugger y terminan cuando se cierra el Debugger.
b) BreakPoints de Sesión: Estos, son creados desde el editor ABAP, y son válidos durante toda la sesión de dicho usuario en todos los modos que tenga abierto. Terminan cuando se finaliza la sesión.
c) BreakPoints Externos: Son validos para todas las sesiones de todos los usuarios en el Servidor y su validez es de horas.
Las teclas de Funcion mas importantes a la hora de "depurar" un Programa son:
Paso-a-paso ( o F5): Procesa la siguiente línea de programa, incluso dentro de las subrutinas, en las que entra y ejecuta también paso a paso.
Ejecutar ( o F6: Procesa paso a paso el programa principal, pero de un golpe las subrutinas.
Retornar ( o F7): Vuelve al breakpoint anterior.
Continuar ( o F8): El proceso continua automáticamente hasta el próximo breakpoint, donde se para, o hasta que finalice el programa.
PASOS EN LA DEPURACION DEL EJEMPLO.
Una vez colocado el breakpoint dinamico de sesión a traves de la SE38. Ejecutamos y el flujo del proceso es el siguiente:
Elecutamos Paso a Paso (F5)
Comprobamos como "salta" directamente al codigo del Evento START_OF_SELECTION (No se ha parado en el EVENTO INITIALIZATION). Dicho Evento lo ha realizado si vemos el contenido de las variables.
Sobre el autor
Publicación académica de Francisco Javier Gomez Jimenez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Javier Gomez Jimenez
Profesión: Consultor Junior - España - Legajo: KW17D
✒️Autor de: 200 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial