FILTER ABAP: Una guía rápida.

FILTER ABAP

En el vasto universo de la programación ABAP, la eficiencia es fundamental. Es decir, los desarrolladores constantemente buscan maneras de optimizar el código, simplificar procesos y mejorar el rendimiento. Ciertamente, una herramienta poderosa en el arsenal ABAP es la sentencia FILTER, un comando versátil que permite la manipulación precisa de datos dentro de tablas internas. En este artículo, exploraremos las intrincadas facetas de la sentencia FILTER ABAP, analizaremos sus distintos componentes y ofreceremos ejemplos prácticos para demostrar su utilidad.

Sentencia FILTER en SAP

La sentencia FILTER en ABAP tiene dos formas principales: la forma básica y la forma de tabla de filtro. Comencemos desglosando la forma básica:

FILTER tipo( itab [EXCEPT] [USING KEY nombre_clave] WHERE c1 op f1 [AND c2 op f2 [...]] )

Aquí hay una explicación de sus componentes:

tipo: Especifica el tipo de datos de la tabla interna resultante.

itab: Representa la tabla interna de entrada a filtrar.

EXCEPT: Palabra clave opcional que indica exclusión en lugar de inclusión.

USING KEY nombre_clave: Clausula opcional para especificar una clave para filtrado eficiente.

WHERE c1 op f1 [AND c2 op f2 [...]]: Condiciones para filtrar basadas en los valores de los campos.

Filter Table ABAP

FILTER tipo( itab [EXCEPT] IN ftab [USING KEY nombre_clave] WHERE c1 op f1 [AND c2 op f2 [...]] )

En esta variante, la tabla de filtro ftab filtra la tabla itab utilizando sus valores. En la condición WHERE, las columnas de itab se comparan con los valores de las columnas de la clave de las filas de la tabla de filtro ftab. Se utilizan las filas en itab para las cuales al menos una fila en ftab cumple con la condición WHERE o para las cuales no hay fila en ftab cuando se especifica EXCEPT.

Ejemplo ABAP FILTER

SELECT *  
  FROM products 
    INTO TABLE @DATA(t_products).  " Seleccion de la tabla products

DATA filter TYPE SORTED TABLE OF products-category WITH UNIQUE KEY table-line 

filter = VALUE #( ( 'Electronics' ) ( 'Clothing' ) ( 'Books' ) ).   " Utiliza el operador VALUE para asignar valores a la tabla interna filter

* Filtra solo las filas donde el campo category coincide con los valores de la tabla filter
cl_demo_output=>display( FILTER #(  t_products IN filter WHERE category = table_line ) ).                   

Es importante destacar que la tabla de filtro ftab debe tener al menos una clave ordenada o una clave hash para su acceso. Ciertamente, esto puede lograrse utilizando la clave primaria de la tabla sin especificar USING KEY o especificando su nombre primary_key después de USING KEY, o utilizando una clave secundaria especificando su nombre después de USING KEY. Sin embargo, esta variante no es posible para una tabla interna ftab sin una clave ordenada o una clave hash. No existen requisitos sobre las claves de la tabla itab. ftab es una posición operando funcional.

En resumen, la sentencia FILTER en ABAP es una herramienta poderosa que permite filtrar datos de manera eficiente y precisa en tablas internas. Al comprender sus componentes y formas de uso, los desarrolladores pueden optimizar sus procesos y mejorar el rendimiento de sus aplicaciones SAP ABAP.

Para más ayuda puedes visitar la documentación oficial en el siguiente enlace.