✒️ABAP / Las características de los programas ABAP Por Jesus Martin Gonzalez
ABAP Las características de los programas ABAP

UNIDAD 2: LA DECLARACION Y EL PROCESAMIENTO DE DATOS
1. LAS CARACTERISTICAS DE LOS PROGRAMAS ABAP
1 Los objetos ABAP
Los mas comunes son:
- REPORTES
Son un tipo de programa ABAP donde generalmente existe una pantalla de selección en donde se introducen ciertos parámetros, luego a partir de estos parámetros se realiza una selección de datos a tablas bases de datos estándar de SAP o tablas base de datos Z y finalmente se muestran los datos obtenidos por pantalla mediante la utilización de la sentencia write.
A este tipo de reportes tambiÉn se los conoce como "Reportes clásicos", ya que existen otros tipos de reportes que están disponibles para utilizar en SAP.
Estos son los primeros tipos de reportes que se utilizaron en el sistema SAP, luego surgieron los llamados reportes interactivos y los famosos reportes Alvs en donde gran parte de las funcionalidades son estándares, por lo cual no es necesario crearlas sino que basta con simplemente utilizar las existentes.
La gran desventaja que presentan los reportes clásicos es que su desarrollo y mantenimiento lleva mucho tiempo ya que todo debe ser creado manualmente.
Por otros, existen ciertas funcionalidades que no son posibles de llevar a cabo en este tipo de reportes de ABAP, por lo que en general no se los utiliza más actualmente en las empresas ya que han sido reemplazados por los reportes ALV en la mayoría de los casos.
REPORTE INTERACTIVOEs 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.
Para trabajar con reportes interactivos vamos a utilizar los eventos:
- AT LINE-SELECTION.
- TOP-OF-PAGE DURING LINE-SELECTION.
También vamos a utilizar las siguientes variables del sistema, las cuales nos proporcionan información muy útil:
- sy-lisel
- sy-lsind
- sy-lilli
- sy-currow
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
Las grillas son reportes que están encuadrados en tablas. Las listas es un tipo de reporte similar a cuando se muestran los datos con write, pero con una serie de botón de comando. El jerárquico es un listado cabecera/detalle, como por ejemplo una factura y sus posiciones.
PROGRAMA DE DIÁLOGOEs 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.
MODULE POOL
Es un tipo de programa ABAP que está formado por una serie de dynpros o pantallas por las que el usuario interactúa mientras navega por la aplicación.
Cada dynpro tiene una lógica de procesamiento que está especificada en módulos.
Dentro de cada dynpro se define lo que se conoce con el nombre de PBO (Process Before Output) es decir todo lo que sucede antes que se muestre la información en la pantalla y el PAI (Process After Input) es decir todo lo que sucede luego que se realiza alguna cción en la pantalla.
MÓDULOS DE FUNCIONES
Son programas ABAP que se crean a través de la transacción estándar SE37 y que pueden ser reutilizados en cualquier otro programa, esta es sin dudas la gran ventaja que presentan los módulos de funciones.
Dentro de la biblioteca de funciones transacción SE37 podemos encontrar una amplia cantidad de módulos de funciones estándar que ya viene con el sistema SAP y también desde allí mismo podemos crear módulos de funciones Z, para satisfacer las necesidades específicas.
Se utilizan dos tipos de módulos de funciones: por un lado el modulo de funciones normal que es el que comúnmente utilizamos y por el otro lado el módulo de funciones de acceso remoto o RFC que nos permite acceder a la información existente en otros ambientes del sistema donde nos encontremos trabajando.
Para poder crear un módulo de funciones en la transacción SE37, previamente deberemos crear un "Grupo de funciones" y luego utilizar dicho grupo en la creación del módulo.
MÓDULOS DE FUNCIONES RFC
La comunicación entre aplicaciones de diferentes sistemas en el entorno SAP incluye conexiones entre sistemas SAP, así como también entre los sistemas SAP y sistemas no SAP.
Se denomina RFC (Del inglés “Remote Function Call”) a la interfaz estándar que utiliza SAP para la comunicación entre sistemas SAP.
Un módulo de funciones del tipo RFC llama a una función que se ejecutará en un sistema remoto.
El objetivo principal de las RFC es acceder a otros ambientes para obtener datos.
La RFC llamada no existe en el sistema origen pero si debe existir en el sistema destino.
Un módulo de funciones RFC se crea de la misma manera que se crea una función. Se accede a la transacción SE37 y se completan los mismos parámetros que completamos para crear una función a excepción de que se debe seleccionar en la solapa de Atributos la opción Módulo de acceso remoto (Remote Enabled Module).
Existen tres tipos de RFC:
- Sincrónicas: son las primeras que aparecieron. Requieren que los sistemas cliente y servidor estén disponibles en el momento de la comunicación o de la transferencia de datos. Es el tipo más común y es necesario cuando se requiere resultado inmediatamente después de la ejecución.
- Asincrónicas: Es la comunicación entre sistemas donde no se requieren acuses de recibo (que es similar a publicar la entrega de tarjetas) .Es no requiere tanto en el sistema que esté disponible en el momento de la ejecución y el resultado no se requiere de inmediato para ser enviado de nuevo a sistema de llamada.
- Transaccionales: Es una forma especial de RFC asincrónica .La RFC transaccional es un método de comunicación asíncrona que ejecuta el llamado módulo de función en el servidor RFC sólo una vez, incluso si los datos se envían varias veces debido a algún problema de red.
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.
SAP presenta numerosos documentos que luego de ser registrados o posterior a su modificación puede ser requerida su "salida externa".
El término "salida externa" expresa que el documento pueda ser afectado de las siguientes actividades:
- Impreso
- Enviado por e-mail
- Enviado por fax
- Enviado como EDI
- Entre otras
Para la ejecución de éstos procedimientos, el sistema permite la definición de los denominados "formularios", que no son otra cosa que programas diseñados en lenguaje ABAP (ver ABAP) que reproducen la confección del formato con el cual serían impresos o el archivo PDF a ser adjuntado al e-mail
El procedimiento a realizar y que es parte de la parametrización incluye las siguientes actividades:
- Definir el documento y el caso particular donde aplicará el formulario
- Definir la Clase de documento donde se aplicará el formulario
- Diseñar el Formulario (programa ABAP) para el documento en cuestión
- Aplicar el Formulario al documento de referencia mediante la parametrización
- Definir el Mensaje (ver mensajes) mediante el cual se envía el contenido del formulario
Son la primer tecnología de SAP para el mantenimiento de Formularios.
Fueron reemplazados por los SmartForms a partir de la versión 4.6C aunque se continuan utilizando en muchas empresas.
Los formularios SapScripts son dependientes del cliente (Mandante) es decir sólo se puede generar un SAPScript en el cliente donde fue creado.
A diferencia de los SmartForms requieren una única ventana principal.
En SapScript la lógica necesaria se incorpora con el programa impresor, que es obligatorio. Cualquier modificación en el formulario exige hacer cambios en el programa y en el formulario.
El mantenimiento de los SapScripts es mas tedioso si requiere cambios, ya que es más complejo que el mantenimiento de los SmartForms.
Un SAPScrip puede ser migrado a Smartform y un SAPScript Style puede convertirse en un Smart Style.
La llamada a un sapscript requiere un OPEN_FORM, START_FORM, WRITE de los elementos y END y CLOSE_FORM.
SMARTFORMS
Es la transacción estándar de SAP que se utiliza para la creación de formularios SmartForms.
Cuando trabajamos con formularios SmartForms también vamos a trabajar con estilos y para ello vamos a utilizar la trasacción estándar smartstyles para crear todos los estilos que necesitemos.
Dentro de los estilos podemos crear principalmente:
- Formatos de párrafo
- Formatos de caracter
Dentro de estos vamos a crear también: sangrías, negritas, italicas, definir interlineados, tipos de letras y tamaños, 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.
Supongamos que se deben introducir en una tabla base de datos 10.000 registros. Tenemos dos posibilidades ingresar los 10.000 registros manualmente, lo que nos tomará una enorme cantidad de tiempo o hacerlo en forma automática, mediante un Batch Input.
Existen dos alternativas al momento de hacer un Batch Input:
- Si la ejecución se realizará en forma online, entonces las actualizaciones se realizarán en el momento por lo que utilizaremos un CALL TRANSACCION.
- Si la ejecución se realizará de fondo o batch, quedando almacenado en SAP para su posterior ejecución entonces crearemos un Juego de datos.
Es un hueco 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.
Casi la totalidad de transacciones de SAP presenta uno o varios user-exit donde el programador adicione código propio y potencie ciertas funcionalidades no previstas por el sistema.
Caso típicos pueden ser la validación de datos, aplicación de datos específicos a los campos, presentación de advertencia, acceso a tablas especiales "Z", entre muchos otros.
CUSTOMER EXIT
Son huecos que deja SAP en el sistema para que los usuarios agreguen los códigos de programación ABAP que consideren necesarios para realizar las funcionalidades que la empresa cliente necesita y que el sistema estándar no proporciona.
Los customer exits o ampliaciones del cliente son considerados enhancements ya que estamos agregando funcionalidad adicional a la funcional ya existente sin cambiar nada.
No necesitamos una clave de acceso para escribir el código y no es necesario modificar el programa estándar de SAP.
Algunos programas estándar tienen dentro de su código llamadas a módulos de funciones que pueden ser modificados por el programador ABAP.
Los Customer exits son llamados dentro de los programas estándar a través de un número.
Este número es la terminación del nombre del módulo de funciones que esta asociado al programa.
Dentro del módulo de funciones vamos a encontrar un INCLUDE.
Para crear el INCLUDE debemos hacer doble clic en su nombre y automáticamente el sistema nos propondrá crearlo, de modo que dentro de él colocaremos el código ABAP que cumplirá con los requisitos que necesita el usuario.
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.
Se las conoce también con el nombre "Exit de 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.
Es una ampliación del sistema SAP que nos permite agregar sub pantallas dentro de las pantalla SAP estándar del sistema de modo de poder cumplir con los requisitos comerciales del cliente.
Los screen exist nos permiten agregar nuestros propios campos de entrada o salida a las pantallas o dynpros especificas de SAP.
Para ello vamos a tener que agregar campos en las tablas bases de datos en donde se almacenan dichos campos de la pantalla. Para ello vamos a tener que utilizar estructuras append.
MENÚ EXIT
Son ampliaciones creadas para agregar funcionalidad al menú de SAP.
Los Menu Exit son implementados por SAP y al hacerlo deja reservadas entradas de menu en la interface GUI para que a través de programación ABAP se puedan agregar las funcionalidades deseadas, es decir textos y lógica asociada a dichos textos.
Todos los códigos de funciones de los menu exit comienzan con '+'.
Como ventajas podemos señalar que:
- Podemos agregar programas Z dentro de un menú estándar de SAP sin tener que estar ubicandolo dentro del menú, a través de la transacción estándar SE43, tan sólo con crear la transacción y asignarle un programa.
Como desventajas podemos decir que:
- No se puede cambiar el código de la transacción que vincula el Menu Exit.
- Son limitados los Menu Exit disponibles por SAP y ya tienen asignados lugares específicos dentro del menú.
Son ampliaciones al código estándar de SAP mediante las cuales podremos agregar funcionalidades determinadas para satisfacer los requerimientos de los usuarios.
Las ampliaciones son diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o agregados a un programa, en general un programa estándar.
De los tipos de ampliaciones existentes en el sistema SAP, los enhancements son los más potentes de todos ya que nos permiten insertar código en ABAP en casi cualquier lugar del sistema estándar.
Existen dos tipos de enhancements:
- Implícitos
- Explícitos
Los Implícitos son aquellos que localizamos en el código estándar en ciertos lugares predefinidos por SAP. Algunos de estos lugares son:
- Al final de todos los programas después de la última sentencia.
- Al comienzo y al final de todas las subrutinas.
- Al final de los módulos de función.
- Al final de clases locales.
Los enhancements explícitos son los denominados ENHANCEMENT-POINT y los ENHANCEMENT-SECTION.
Ahora incluimos los objetos que hemos definido en la parte de arriba:
REPORTE: Es un programa que consiste en una serie de instrucciones y palabras clave cuyo objetivo es procesar datos de entrada, que se ingresan alprograma a traves delo que se conoce como pantalla de seleccion o pueden obtener delas tablas de 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.
Adjuntamos imagen de un reporte, en azul podemos ver las plabras que se denominan reservadas o claves.
Las palabras reservadas, son palabras o sentencias para la programacion ABA, y no se pueden utilizar para otra cosa diferente a la que han sido creadas.
Cuatro tipos de palabras:
- Las declarativas: declarar datos que usamos dentro del programa. Eje: Data, tables o constant
- Los eventos: que ocurren en el programa. Eje: Start-of-selection, top-of-page, o Initialization.
- Las de control: Son sentencias de control del flujo del programa, eje: If, While o Do.
- Las operativas: Realizan funciones segun la palabra clave. Eje: Write, Move o Translate.
En un prograa ABA debemos escribir comentarios cuando escribamos un codigo o modifiquemos el existente, para entender la logica de ese codigo existente y que las personas que lo vean despues de nosotros lo entienda.
Dos formas de utilizar los comentarios:
- Con un asterisco en la primera columna de la fila
- Con comillas dobles en cualquier posicion dela linea.
En la SE38 podemos elegir entre el editor nuevo o el viejo, recomendable el nuevo. Utilidades-opciones(parametrizaciones)-editop abab-editor-editor front end nuevo.
2 Los eventos de un programa.
Es un lenguaje estructurado, orientado a eventos y a partir de una determinada version incorpora programacion orientada a objetos.
Principales eventos dentro de un programa ABAP:
 
 
 
Sobre el autor
Publicación académica de Jesus Maria Martin Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Jesus Maria Martin Gonzalez
Profesión: Consultor de Sap - España - Legajo: GU62R
✒️Autor de: 14 Publicaciones Académicas
🎓Egresado de los módulos:
- Master Funcional ABAP
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Consultor de sap en activo, con interes en conocer programacionde abap y poder mejo-rar laboralmente.
Certificación Académica de Jesus Martin
























