✒️ABAP Las características de los programas ABAP
ABAP Las características de los programas ABAP
Los objetos ABAP
En ABAP existen diversos objetos tales como:
- Reportes: Clasicos, interactivos y los AVL
- Clasicos: Son un tipo de programa ABAP donde generalmente existe una pantalla de selección en donde se introducen ciertos parámetros. 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.
- 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.
- Reportes AVL: 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.
- Programas de Dialogo o 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
- Los modulos de funciones y los modulos de funciones RFC
- Modulos 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. Permiten encapsular las lógicas de procesamiento dentro del módulo, de modo que nos olvidamos de lo que se procese dentro del módulo y obtenemos la salida que deseamos.
- Modulos de Funciones RFC (Remote Function Call): Se denomina RFC a la interfaz grafica de SAP para comunicarse entre sistemas SAP. Un modulo de funciones del tipo RFC llama a una funcion que se ejecutara en un sistema remoto.
- Los 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: Facturas, Remitos, Ordenes de compra, Solicitudes de pedido, etc. En SAP vamos a trabajar principalmente con los tipo:
- 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.
- SmartForms: Es la tecnología de SAP utilizada para la creación de formularios. Los formularios SmartForms reemplazaron a los SapScripts a partir de la versión 4.7 de SAP. Son los más amigables al desarrollador y los más flexibles a la hora realizar cambios.
- 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.
- Las ampliaciones dentro de los cuales se trabajan mas comunmente son:
- User Exit: 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.
- 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.
- 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. 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.
- Screen Exit: 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.
- Menu Exit: Son ampliaciones creadas para agregar funcionalidad al menú de SAP.
- Emhamcement: 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.
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 prorama a traves de lo que se conoce como pantalla de seleccion. Luego los datos ingresados se procesan y finalmente se muestran los resultados del procesamiento por pantalla o se generan un archivo de salida.
Palabras reservadas: son palabras o sentencias que estan reservadas dentro del lenguaje de programacion ABAP para ocupar determinadas funciones y que no pueden ser utilizadas por los programadores. Ejemplos de palabras reservadas:
- REPORT
- DATA
- PERFORM
- INITIALIZATION
Evento de un programa ABAP: Es una etiqueta que identifica una seccion de codigo dentro de un programa. La seccion de codigo asociada con un evento, comienza con un nombre de evento y termina cuando el siguiente nombre de evento se encuentra. Los nombres de los eventos son palabras reservadas. No podemos crear nuevos eventos, solamentes podemos usar los eventos que ya existen. Los principales eventos son:
- INITIALIZACION: Permite inicializar los campos de la pantalla de selección de un programa o cualquier otra variante, es decir, primer evento que se ejecuta dentro del programa. La pantalla de seleccion ofrece al usuario en pantalla, los parámetros de selección, que serán los campos que el usuario ingresará en pantalla y que son necesarios para poder ejecutar el programa.
- AT SELECTION-SCREEN: valida datos introducidos en la pantalla de seleccion. Es un evento que se utiliza para validar los datos introducidos en los parametros que conforman la pantalla de seleccion.
- START-OF-SELECTION: Es el evento principal de un programa ABA que se ejecuta luego del procesamiento de la pantalla de seleccion en el evento, se lanza cuando se procesa la instruccion REPORT(Es la palabra reservada de ABAP que se visualiza en el comienzo de un programa e indica que el programa en cuestión es un Reporte).
- END-OF-SELECTION: Es un evento que se ejecuta antes de la impresión del reporte, contiene las ultimas sentencias que se ejecutaran en el programa. El codigo de este evento se procesa cuando se termina el procesamiento central del programa, es decir, lueo del evento START-OF_SELECTION.
- AT LINE-SELECTION: Es un evento ABAP que se produce cuando dentro de un listado principal se hace un doble clic en alguna línea de la pantalla. Se utiliza en el llamado 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).
- AT USER-COMMAND: se utiliza para capturar la acción realizada por el usuario en la pantalla, se ejecuta cuando el usuario realiza click en un boton del menu reporte.
- TOP-OF-PAGE: Es el evento de un programa ABAP que se utiliza para escribir la cabecera de un reporte. Se ejecuta tan pronto como el sistema empieza a escribir una nueva pagina.
- END-OF-PAGE: Se lanza cuando se crea automaticamente una nueva pagina en un listado de salida. Por ejemplo si tenemos que imprimir en pantalla un reporte de salida de 100 lineas entonces cuando se alcance el numero maximo de lineas que entran en pantalla, el cual es cercano a 24 lineas, al momento de imprimirse la linea numero 25 se ejecutara el evento END-OF-PAGE previamente a la impresion de la linea 25.
No importa el orden en el que se escriban los eventos dentro de un programa ya que existe un orden preestablecido de ejecucion de los eventos, es decir, si primero escribo el evento START-OF_SELECTTION y luego escribo INITIALIZATION eso no significa que los eventos se ejecutaran en ese orden.
EL NAVEGADOR DE OBJETOS (SE80): Permite acceder al contenido en el contexto de los objetos de negocio SAP mientras se navega por las relaciones SAP de los objetos de negocio. La transacción SE80 resulta sumamente útil cuando trabajamos con programas de Diálogo o Module Pools ya que nos permite navegar con el esquema de árbol que se encuentra a la izquierda de la pantalla, por las diferentes dynpros o pantallas que componen a la transacción de diálogo.
Objetos ABAP mas comunmente utilizados:
- Jerarquia de Aplicaciones: Es donde se crean todos los objetos que se visualizan en la lista desplegable del Objetc Navigator. Aqui tendremos que especificar el area funcional o modulo del sistema al cual corresponde el objeto o programa que estamos por crear en el sistema.
- Paquete: es una forma de organizar todos los nuevos objetos que se crean en SAP, ordenándolos generalmente por módulos. Desde aqui podemos crear, modificar o visualizar una clase de desarrollo.
- Programa: Son los pasos logicos o rutinas que realizamos en el editor ABAP con la transaccion SE38
- Grupo de Funciones: Es un repositorio que agrupa módulos de funciones y que se utiliza entre otras cuestiones para compartir subrutinas y declaraciones de variables entre los distintos módulos de funciones pertenecientes al grupo.
- Clase / Interface: Una clase (Es un conjunto de objetos que tienen la misma estructura y comportamiento) y una interface (Es una estructura independiente que se puede implementar en una clase para extender el ámbito de esa clase).
- Comp./Intf. Web Dynpro: recurso tecnológico que ofrece la plataforma SAP Web Application Server para manejar la capa de presentación de las aplicaciones, es decir, la interfaz de usuario de las aplicaciones Web
Crear un programa nuevo a traves del editor ABAP correspondiente a la transaccion SE38 es paracticamente igual que realizarlo a la transaccion SE80 la diferencia entre ambas transacciones es que mediante la SE38 solo se pueden crear programas includes mientras que la SE80 no solo podemos crear programas includes sino tambien otros tipos de objetos de ABAP que son necesarios para el desarrollo de aplicaciones en SAP