Query SAP (III): crear una query

domingo, 11 de abril de 2010


Definición de query

El tercer paso en la creación de una query es, precisamente, la creación de la query propiamente dicha. Esto es un listado de información extraída de la base de datos. Para ello es necesario que previamente hayamos creado el grupo de usuarios al que permitiremos extraer la información. Asimismo, debemos haber creado el infoset donde indicamos las tablas de información necesaria.


Crear una query consiste en generar una pantalla de selección de la información y una disposición (layout) de salida de toda esta documentación.

Funcionalidad

Sigamos con el ejemplo. Creamos una query de información de ventas.
  • Entramos en la transacción de queries.
Herramientas / Workbench ABAP / Utilidades / Query SAP / SQ01 - Queries
  • Podemos crear nuestra query bien en área estándar bien en ámbito global. Esto significa que podemos crear la query y luego transportarla (ámbito global) o bien crear la query directamente en nuestro entorno productivo (área estándar). Mi experiencia personal me dice que no merece la pena el trabajo de crear una query en un mandante de desarrollo y luego transportarla hasta nuestro mandante productivo. Será más rápido y más fácil testear nuestra query si la creamos directamente en el área estándar. Para eso vamos a Entorno / Ámbitos funcionales / Área estándar (específico de mandante).
  • Nuestra query la crearemos dentro del grupo de usuarios que creamos en el paso I. Por eso, iremos a Tratar / Cambiar grupo de usuarios / Ventas.
  • Damos un nombre a nuestra query y la creamos. Automáticamente nos pedirá que la asignemos a un infoset (recordar el paso II). Evidentemente, asignaremos el infoset que ya habíamos creado previamente (SD_VENTAS).
Creación de la query
  • En la siguiente pantalla, SAP nos pide una descripción de la query. Podemos también indicar la variante de la pantalla de selección que queremos que se utilice por defecto al ejecutar la query. Esta variante la podemos crear cuando ya hayamos generado nuestra query y añadirla aquí directamente (campo Variante estándar). En esta pantalla también aparecen datos de 'Formato de salida'. Aquí le podemos indicar a nuestra query cómo queremos que se muestre. Por defecto, utilizamos el "List Viewer ABAP", es decir, el ALV típico. Aunque SAP nos da la posibilidad incluso de lanzar el resultado directamente hacia un Excel si así se quiere (EXCEL).
Título
  • Pasamos a 'Selección de grupos de campos'. Aquí debemos seleccionar todos nuestros grupos de campos del infoset. O, si alguno de los grupos de campos no los quisiéramos utilizar en nuestra query, entonces simplemente no lo seleccionamos.
  • En 'Lista básica' nos muestra los campos disponibles en cada uno de los grupos de campos. Debemos seleccionar aquellos que nos interesa que se muestren en la query. En el caso del ejemplo, seleccionaré todos los campos. Como veis los campos de texto, aunque no los habíamos seleccionado directamente en nuestro infoset, sí que nos aparecen dentro de los campos disponibles. Eso es simplemente porque los campos de código solicitante y número de material siempre llevan asociadas sus descripciones por defecto.
  • En la pantalla de 'Selecciones' creamos nuestra pantalla de selección. Es decir, los criterios a partir de los cuales buscaremos la información. Yo voy a marcar los campos solicitante, material y documento de ventas.
Pantalla de selección
  • 'Lista básica': aquí construimos la disposición de salida donde indicamos qué campos queremos que se muestren en el listado y en qué orden. Además, podemos también darle algún formato especial como colores, guiones de separación, etc. Yo voy a marcar todos los campos disponibles y además voy a hacer que sea de verde intenso. Para hacer eso hay que arrastrar el campo 'Afirmativo(intenso)' sobre el campo que queremos que sea de otro color.
Disposición
  • Grabo.
  • Así queda la pantalla de selección.
Pantalla de selección
  • Y así el layout de salida.
Layout

A partir de aquí ya podemos utilizar la funcionalidad propia de los listados ALV como descargar la información en Excel, hacer filtros, sumas, sumas parciales, etc.

Imagen | Ex-Smith

8 comentarios:

  1. Hola, necesito algo de ayuda, tengo una query que al ejecutarla me sale un error: "La variante VARIANTE no ha sido creada". ¿Sabes de qué puede ser?

    Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola. Ves a modificar tu query (SQ01) y en el apartado 'Atributos especiales' localiza la variante estándar que has asignado. Bórrala. Y ejecuta de nuevo la query, el error ya no debería aparecer. Seguramente, la variante estándar que había asignada ha sido borrada por algún usuario.

      Eliminar
  2. Hola necesito que en el query en una columna aparte me coloque el codigo de cliente si en la columna de nro de documento el campo interlocutor es igual a WE. como podria hacerlo?

    Gracias

    ResponderEliminar
    Respuestas
    1. Hola. En este caso yo introduciría un campo calculado mediante programación ABAP dentro de la query. Si tu columna es igual a 'WE' entonces informaría el valor del cliente. Hay un post dentro del blog que te puede ayudar http://www.blogdesap.com/2011/03/abap-en-queries-programas-integrados.html

      Eliminar
  3. En la tabla VBAP se encuentra el campo ABGRU el cual nos da el codigo de rechazo para un pedido. Podrías indicarme en que tabla consigo la descripción del rechazo según el código que se muestra?

    ResponderEliminar
    Respuestas
    1. En el post http://www.blogdesap.com/2012/07/encontrar-tablas-de-transaccion.html puedes encontrar ideas sobre cómo buscar tablas. En el caso que preguntas la tabla de textos de motivos de rechazo es la tabla TVAGT.

      Eliminar
  4. buenas tardes disculpa al aplicar el primer paso de Entorno / Ámbitos funcionales / Área estándar (específico de mandante) me envia un mensaje """NO ESTA ASIGNADO A NINGÚN GRUPO DE USUARIOS"""

    ResponderEliminar
    Respuestas
    1. Quizá no hayas realizado el paso II (crear el infoset y asociarlo a un grupo de usuarios). Te recomiendo que te leas los dos artículos anteriores de la serie sobre grupos de usuarios e infosets.

      Eliminar