Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
dairolozano
Contributor

Hola amigos.

Posiblemente todos utilizamos la transacción SE16N para hacer consultas rápidas de los datos de una tabla, ya que permite hacer consultas filtrando por diferentes campos sin la necesidad de construir Queries o reportes Z.

Existe una utilidad de esta transacción que puede ser desconocida para algunos y es que permite hacer selecciones múltiples sobre una misma tabla, es decir, permite construir consultas con varios grupos de criterios que pueden tener campos y valores diferentes.

Para entender su funcionamiento lo más sencillo es hacerlo con un ejemplo.  Veamos:

Supongamos que tenemos que hacer una consulta sobre la tabla MKPF, reuniendo información de los documentos de la siguiente forma:

  • Condición 1 - Clase de operación C1 del usuario USER1 creados entre el 1 y el 15 de enero.
  • Condición 2 - Clase de documento W1 del usuario USER2 creados entre el 16 y el 31 de enero.
  • Condición 3 - Clase de operación C2, y clase de documento  W2 del usuario USER3 creados entre el 1 y el 28 de febrero.

Para explicarlo de otra manera, lo que se requiere equivale a hacer una sola sentencia SELECT donde se cumpla cualquiera de los tres criterios anteriores, algo así como:

SELECT * FROM MKPF WHERE (Condicion 1) or (Condición 2) or (Condición 3).

Normalmente, lo que haríamos en este caso es ejecutar la transacción independientemente para cada criterio, copiar o exportar el contenido  y posteriormente consolidar esta información en un archivo Excel.  Está bien, esa es una forma.

Ahora vamos a ver como se haría directamente desde la transacción SE16N utilizando selecciones Múltiples:

1 – Ejecutamos la transacción SE16N para la tabla MKPF

2 – Ingresamos los datos correspondientes al primer criterio

3 – Activamos la vista técnica mediante el menú contextual (Clic derecho) o presionando las teclas SHIF+F11.  Veremos que en la barra de herramientas aparece un botón con la etiqueta Más.

4 – Seleccionamos la opción Entrada Múltiple en el menú contextual (Clic derecho), presionando las teclas SHIF+F9 o presionando el botón Más en la barra de herramientas.

Una vez hecho esto, aparecerá una ventana emergente donde se deben ingresar los parámetros de selección de los demás criterios.  En la parte superior aparece un contador con el número 1.

5- Ingresamos los parámetros del segundo criterio.

Luego presionamos el botón de Entrada siguiente o la tecla F5.  Tendremos nuevamente la ventana vacía y veremos que el contador se ha incrementado a 2.

6- Ingresamos los parámetros del tercer criterio.

Si tuviéramos más criterios repetiríamos el paso anterior pero como ya es el último, presionamos el botón Tomar Datos o la tecla F8.                 

            

6 – Una vez hecho esto regresaremos a la ventana principal de la transacción SE16N.  Ya solo resta presionar el botón de ejecutar o la tecla F8.

El resultado final presentara todos los registros que cumplan alguna de las 3 condiciones que definimos.

Solo como por curiosidad vamos a ver una parte de la ejecución en la ventana de DEBUG.  Aquí observamos que se ha construido una sentencia SELECT dinámica donde el nombre de la tabla MKPF se encuentra en la variable TAB y se ha construido una tabla interna LT_WHERE donde se ha construido dinámicamente la cláusula WHERE.

Como podemos comprobar, se han incluido las tres condiciones relacionadas mediante el operador OR tal y como lo habíamos previsto. Sobra decir que este mismo procedimiento se puede aplicar con cualquier otra tabla tanto estándar como Z.

Espero que puedan ponerlo pronto en práctica y les sea de utilidad.

1 Comment