Operador FILTER

Contenido

1.     Operador FILTER

Contenido

1. Operador FILTER

El nuevo operador “FILTER” se puede usar en tablas internas ABAP para filtrar los datos o para tomar subconjuntos de datos en una tabla interna nueva.

Este operador se encuentra disponible desde la versión ABAP 7.4.

Para aplicar este operador es necesario usar dos tablas internas, una para almacenar los datos reales a los cuales se les aplicará el filtro:

Y la otra tabla interna para almacenar los valores utilizados en el filtro de los datos “LT_FILTER”. Esta es de tipo SORTED con clave única “TABLE_LINE”, esta especificación aborda la fila completa de la tabla como una clave, es llamado pseudocomponente. Esto es útil para tablas cuyo tipo de fila no tiene estructura.

Expresión “TABLE_LINE”, que se puede ingresar en declaraciones para tablas internas en lugar de un componente. Esto da como resultado que toda la fila de la tabla interna se interprete como un solo componente.

La tabla de filtros debe tener al menos una clave ordenada o una clave hash utilizada para el acceso.

En este caso hemos declarado una tercera tabla interna, para guardar los registros filtrados “LT_EMPL_FINAL”.

Añadimos valor a la tabla interna del filtro, en este caso, como hemos elegido el campo “SEX” para filtrar, entonces debemos ingresar valores compatibles con este campo indicado en la declaración.

Utilizamos el operador “FILTER” para llenar la tabla “LT_EMPL_FINAL”. Este filtro se operará sobre la tabla “LT_EMPL_ALL”.

En la condición WHERE, las columnas de “LT_EMPL_ALL” se comparan con los valores de las columnas de la tabla key de las filas de la tabla de filtros “LT_FILTER”.

Imprimimos el contenido de las tres tablas internas.

También podemos utilizar la adición “EXCEPT” dentro del operador “FILTER”.

Si no se especifica “EXCEPT”, se utilizan las filas de “LT_EMPL_ALL” que cumplen la condición “WHERE”, pero, si se especifica “EXCEPT”, se utilizan las filas de “LT_EMPL_ALL” que no cumplen la condición “WHERE”.

Con este filtro, vamos a obtener todos los registros con el campo “SEX” del empleado diferente al valor “F” el cual fue el indicado en la tabla interna de filtro “LT_FILTER”.

Resultados aplicando la adición “EXCEPT”:

2 comentarios de “Operador FILTER

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *