✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
Aplicaciones ABAP
Los objetos más comunes en ABAP son:
- 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.
- Reporte interactivo: Es un tipo de reporte ABAP donde se muestra un primer listado por pantalla con cierta información y luego clikeando una línea determinada del primer listado, se accede a otros datos relativos a esa línea y así sucesivamente por cuantos niveles tenga el listado.
- Reporte ALV: Tipo de reporte especifico de ABAP donde el sistema nos proporciona una gran cantidad de funcionalidades para agregar a nuestro reporte, tal como la impresion, enviar a excel, ordenar, clasificar, etc.
Los tipos de ALV más utilizados son:
- Grillas
- Listas
- Jerárquico
- Programa de Diálogo: Es un tipo de programa ABAP que consiste en una serie de pantallas o dynpros por las que el usuario va navegando a medida que se produce la ejecución del programa.
Cada pantalla o dynpro tiene una lógica asociada.
Se lo conoce también con el nombre de "Module Pool".
Para trabajar con los programas de diálogo vamos a utilizar la transacción estándar SE80.
Utilizaremos el Screen Painter y el Menu Painter para crear las pantallas que componen al programa de diálogo.
Para ejecutar un programa de diálogo necesitaremos crearle una transacción asociada al programa. - Formularios: Son objetos de SAP que se utilizan en la creación de documentos que necesitan ser impresos, visualizados por pantalla o enviados por correo electrónico. Ejemplos de formularios son Facturas, Remitos, Ordenes de compra, Solicitudes de pedido, etc.
- Batch Input: Es una técnica que consiste en simular a un usuario ingresando datos en SAP pero de manera automática y utilizando las validaciones que nos proporciona el sistema en sus transacciones.
Es un método seguro y fiable. Se utiliza generalmente cuando debe realizarse un elevado número de altas, modificaciones o bajas. - User exits: Son huecos que deja SAP dentro de los objetos estándar del sistema, para que los programadores agreguen código de modo de satisfacer un requerimiento que no satisface SAP.
- Field exits: Son objetos de ABAP que se utilizan para relacionar un campo de una dynpro de un determinado programa con un código de programa o función.
El nexo de unión entre la función y el campo es a través del elemento de datos de dicho campo.
Un FIELD EXIT es una función que tiene la particularidad de que sólo tiene un parámetro de entrada INPUT y uno de salida OUTPUT.
Generalmente se utilizan para validar los campos de una dynpro sin modificar el código fuente del programa en el cual está funcionando. Su codificación se realiza aparte.
El Field Exit se codifica por elemento de datos y luego se asocia a un programa y a una dynpro en particular. El código es ejecutado automáticamente al dar ENTER sobre la dynpro que tiene el campo específico, al pasar de pantalla (o salir de la pantalla) o en algunos casos al presionar el botón Grabar de la dynpo.
En la transacción SE37, biblioteca de funciones, y colocando field_exit_* y luego pulsando F4 nos saldrán todos los Field Exit del sistema.
Una de las desventajas del Field Exit es que no se puede hacer un DEBUG al código, la forma de hacerlo es ir colocando mensajes (MESSAGE) dentro del código para ir viendo por donde pasa dentro del código y qué valores está manejando. - Funciones: Los módulos de funciones son programas ABAP que se crean a través de la transacción estándar SE37, conocida como la biblioteca de funciones y que pueden ser reutilizados en cualquier otro programa.
Siempre que se define un módulo de funciones, será necesario crear previamente un grupo de funciones. El grupo de funciones también lo crearemos a través de la transacción SE37. - RFC: es una llamada a función remota como sus siglas en inglés lo indican ( Remote Function Call).
Se trata de un protocolo que permite a un programa ejecutar código en otra maquina remota sin tener que preocuparse por las comunicaciones entre ambos dado que ha sido configurada previamente por el administrador del sistema.
En SAP configuramos las RFC en la transacción SM59 y es allí donde se indica el tipo de RFC, si es de confianza o no, si los datos que viajan va a utilizar el sistema universal de codificación (unicode) o si utiliza un juego de caracteres especial en este caso configurado en la instalación del sistema, etc.
Palabras Clave:
- Declarativas: Se utilizan para declarar datos que vamo a usar dentro del programa, ej: DATA, TABLE y CONSTANT.
- Eventos: Que ocuren 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.
Generalmente la estructura de un reporte tiene la siguiente forma:
REPORT <Nombre del programa> ..........................."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 c/uÇ
SUBRUTINAS: ..........................................................."Se crean para modularizar los programas y ayudar al mantenimiento
Existen dos formas de utilizar los comentarios en ABAP:
- Con un * en la primera columna de la fila
- Con " en cualquier posición de la línea
Eventos 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 se encuentra. Los nombres de evento son palabras reservadas. No podemos crear nuevos eventos, solamente podemos usar los que ya existen.
Los principales eventos son:
- INITIALIZATION: Es el primer evento que se ejecuta. Nos permite inicializar los campos de la pantalla de selección 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 está 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 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 adjuntan 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 para 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 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 procesadas sobrepase el número de líneas fijado para la página en la sentencia REPORT.
Debugger
El debugger es una herramienta que nos permite detectar errores que no se ven a simple vista. Para ello colaremos breakpoints luego de la declaración de las variables que durarán mientras este abierta la sesión y ejecutaremos el programa. Entonces veremos al debugger en acción. Existen dos tipos de debugger:
- Dinámicos:
1. los que se crean durante la operación de debugging y que se borran una vez que esta termina
2. los de sesión, que son creados en el editor ABAP y que son válidos mientras dura la misma para todos los modos externos existentes para esa sesión de LOGON.
3. los externos, que son validos para todas las sesiones de todos los usuarios y su validez es de solo 2 horas. - Estáticos: se generan escribiendo en el codigo ABAP BREAK-POINT. El programa siempre detendrá la ejecución donde escribamos este comando y pasará al modo debugging. Este tipo de breakpoints funcionan independientemente del usuario que ejecute el programa.
Con F5 (single step), ejecutaremos el debugging sentencia a sentencia.
Con F6 (execute), ejecutaremos el debugging subrutina a subrutina sin entrar en el contenido de cada una.
Con F7 (return), retomaremos la rutina de nivel superior de la rutina actual en ejecución.
Con F8 (run), continuaremos la ejecución hasta el final.
 
 
 
Sobre el autor
Publicación académica de Pedro Rocabado, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Rocabado
Profesión: Programador - Argentina - Legajo: FD33T
✒️Autor de: 26 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Pretendo obtener conocimientos suficientes sobre sap abap para trabajar sobre este sistema y perfeccionarme con el tiempo. me siento entusiasmado con esta plataforma y espero estar a la altura.
Certificación Académica de Pedro Rocabado