✒️ABAP Los reportes ALV
ABAP Los reportes ALV
1. ¿Qué es un ALV?
ALV
Es una herramienta exclusiva de ABAP, que se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
Sus siglas significan ABAP List Viewer.
Las principales ventajas de los reportes ALV son:
- Simplifican el desarrollo de reportes, por lo tanto se reducen los tiempos de programación.
- Proporcionan a los reportes muchas funcionalidades estándar. Entre las funciones integradas para manipular los resultados encontramos opciones como: la clasificación, obtener totales, aplicar filtros, el ordenamiento por columnas o la posibilidad de ocultar columnas y también funciones para exportar los resultados en Microsoft Excel, a un fichero local, a archivos CSV, en formato HTML, entre otras funciones más.
- Proporcionan una salida por pantalla estandarizada e uniforme.
2. La historia de los reportes ALV
Para entender de dónde venimos y hacia dónde vamos en lo que respecta a los reportes ALV de ABAP repasemos un poco la historia de los reportes desde sus comienzos hasta el día de hoy, de modo de tener presente todas las opciones que tenemos disponibles a la hora de crear un ALV:
- La Lista ABAP: la primera herramienta para la salida de datos en pantalla fue la denominada Lista ABAP. Esta salida se genera usando la sentencia WRITE para mostrar una línea de datos en pantalla. Para presentar los datos en un formato de cuadrícula, los campos debían colocarse en posiciones estáticas específicas en la pantalla mientras se procesan los datos en un bucle o en un ciclo.
Este tipo de presentación, tradicional en los sistemas basados en mainframe durante el último siglo, resulta inconveniente tanto para los desarrolladores como para los usuarios. Los desarrolladores tienen que escribir todo el código manualmente para generar cada campo, así como los encabezados de columna y los totales o subtotales. Y a los usuarios solo se les ofrece una estructura de informe rígida que no pueden modificar sin solicitar un cambio en el programa. La realización de cambios en esos informes también resulta inconveniente y requiere mucho tiempo.
- ALV Lista: luego llegó el framework ALV, cuya primera implementación fue denominado ALV List o ALV Lista,lo que fue una mejora importante con respecto de funcionalidad de su predecesor la Lista ABAP, ya que las columnas están bien alineadas y la barra de herramientas ofrece funcionalidades adicionales, como la clasificación, el filtrado y los subtotales. Más importante aún, los usuarios podían elegir qué columnas querían ver y en qué orden. Sus preferencias se pueden guardar en un diseño que se aplicará la próxima vez que se ejecute el reporte.
Para los desarrolladores, la tecnología ALV ofreció un conjunto unificado de herramientas para la presentación de datos, sin tener que calcular la posición de la pantalla de cada columna y escribir todo el código manualmente. Al utilizar un ALV, los desarrolladores solo debían preocuparse por preparar los datos comerciales y el ALV se encargaba de la presentación.
- ALV Grilla: el siguiente paso en la evolución de los ALV fue el ALV Grid o ALV Grilla, el cual es un formato tabular similar a Microsoft Excel que se utiliza hasta el día de hoy. Las primeras implementaciones del ALV Grilla utilizaron módulos de funciones SAP con nombre que comenzaban con REUSE_ALV
- ALV jerárquico: el cual se utiliza sólo en los casos donde se muestran datos de cabecera y de detalle.
- El primer framework ALV orientado a objetos: el siguiente paso dentro del framework ALV vino de la mano de introducción estratégica de la programación ABAP orientada a objetos en SAP ERP versión 4.6C. Aquí se utilizaron clases de objetos que comienzan con CL_GUI_ALV en lugar de módulos de funciones. Visualmente, la implementación basada en clases produce resultados muy similares a la implementación a través de módulos de funciones, pero una diferencia notable fue que permitió que un objeto ALV se vincule a un contenedor personalizado en una pantalla. Esto hizo posible presentar no solo un reporte de pantalla completa, sino varios contenedores ALV en una misma pantalla.
- El framework SALV: la implementación actual del framework ALV se llama SALV y ha estado disponible al menos desde SAP Netweaver 7.0. Este framework lo proporcionan clases de objetos con nombres que comienzan con CL_SALV y admite los formatos de tabla ALV, árbol ALV y lista secuencial jerárquica.
- ALV con IDA: una variedad más reciente del framework SALV, denominada SAP List Viewer with integrated Data Access (ALV con IDA), aprovecha la funcionalidad de la base de datos en memoria SAP HANA. Para realizar esta implementación se utiliza la clase de objetos CL_SALV_TABLE_IDA.
3. La creción de un ALV mediante módulos de funciones
Tal como vimos anteriormente podemos crear un reporte ALV utilizando módulos de funciones.
Los tipos de ALV más comúnmente utilizados son tres:
- Grillas
- Listas
- Jerárquico
Las listas y las grillas pueden utilizarse en cualquier reporte, pero el jerárquico se utiliza solo en los casos donde se muestran datos de cabecera y de detalle.
Ahora bien cada tipo de ALV le corresponde un módulo de funciones diferente.
- Para las grillas utilizamos el módulo de funciones REUSE_ALV_GRID_DISPLAY
- Para las listas utilizamos el módulo de funciones REUSE_ALV_LIST_DISPLAY
- Para el jerárquico utilizamos el módulo de funciones REUSE_ALV_HIERSEQ_LIST_DISPLAY
4. Mi primer reporte ALV
Para crear un reporte ALV utilizamos el módulo de funciones REUSE_ALV y seguimos los siguietes pasos:
Paso 1. Las declaraciones de tipos, estructuras y tablas internas propias del ALV
Dentro de este paso, declaramos el tipo SLIS, que es necesario para la utilización de reportes ALV.
También declaramos una tabla interna y una estructura para el catálogo del ALV que son del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LAYOUT_ALV y una variable del tipo SY-REPID, para almacenar el nombre del programa.
Paso 2. La declaración de la tabla interna de salida ALV
Vamos a declarar una tabla interna de salida que se mostrará en ALV.
Paso 3. La selección de los datos que se mostrarán en el ALV
Dentro del evento START-OF-SELECTION vamos a crear una subrutina para seleccionar los registros de datos de la tabla base de datos que mostraremos en el listado de salida y los almacenamos en la tabla interna.
Paso 4. El armado del catálogo del ALV
Dentro del evento START-OF-SELECTION vamos a crear la subrutina en donde armamos el catálogo del ALV con los campos que serán las columnas del reporte.
Para ello, completamos para cada columna del listado, los campos pertenecientes a la tabla interna del catálogo.
Existen muchisimas más propiedades del catálogo que se pueden configurar según lo que necesitemos mostrar en el listado.
Para más información debemos hacer doble clic en el tipo SLIST_FIELDCAT_ALV
Paso 5. La configuración de salida del ALV
Dentro del evento START-OF-SELECTION vamos a crear la subrutina en donde configuramos ciertos aspectos de la salida ALV.
Existen muchas más opciones a configurar en el layout de un reporte ALV.
Para más información debemos hacer doble clic en el tipo SLIS_LAYOUT_ALV.
Paso 6. La ejecución del módulo de funciones del ALV
Por último, lo que nos queda es la ejecución del módulo de funciones ALV.
Si queremos un reporte tipo grilla, ejecutaremos el módulo de funciones REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista, ejecutaremos el módulo de funciones REUSE_ALV_LIST_DISPLAY. Ambos módulos de funciones se completan de la misma manera.
 
 
 
Sobre el autor
Publicación académica de Alexis Jesus Perez Ramirez, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexis Jesus Perez Ramirez
Profesión: Licenciado en Computación - Venezuela - Legajo: LK96B
✒️Autor de: 69 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Licenciado en computación egresado de la ucv, con amplia experiencia en base de datos, análisis de sistemas y programación; tanto en ambiente web, cliente/servidor como en computación central.
Certificación Académica de Alexis Perez