You are on page 1of 10

Querys SAP

Cmo puedo recuperar informacin almacenada en el sistema acerca de mis clientes? Y


acerca de mis proveedores? Y de mis ventas? En definitiva, cmo puedo obtener listados
de consulta sobre los datos que anteriormente he entrado en mi SAP?

ste es el primer post de un grupo de tres sobre queries en SAP. Una query en SAP es una
herramienta que nos permite recuperar informacin de la base de datos para generar listados
de informacin en tiempo real.

Es verdad que existen herramientas de programacin ABAP que ya nos permiten hacer
listados y recuperar informacin de las tablas de la base de datos. Sin embargo, con las
queries no tenemos necesidad de saber programar (aunque puede ser una ayuda) y hace el
proceso de construccin de listados una tarea ms rpida e intuitiva.

Siempre que creemos una query debemos seguir tres pasos siempre en el siguiente orden.
-I: Crear un grupo de usuarios
-II: Crear un infoset.
-III: Crea la query.

Definicin de un grupo de usuarios


Un grupo de usuarios es el primer paso en la creacin de una query SAP. En cada grupo
asignamos los nombres de los usuarios que tendrn acceso final a la query que generaremos.
No es ms que una autorizacin para poder utilizar nuestra query a un grupo ordenado de
personas.

Por ejemplo, podemos determinar que las consultas o queries del mdulo SD slo las podrn
consultar aquellas personas de los departamentos de Ventas y Marketing. En este caso,
crearemos un grupo de usarios llamado VENTAS donde incluiremos el nombre de los
usuarios de estos departamentos.
Funcionalidad
Herramientas / Workbench ABAP / Utilidades / Query SAP / SQ03 - Grupo de usuarios

Creamos y asignamos un nombre a nuestro grupo de usuarios: botn 'Crear'.


Asignamos los usuarios: botn 'Asignar usuario y Infosets". Para permitir que un
usuario modifique las queries del grupo de usuarios debemos mantener marcado el
flag de autorizacin junto al nombre de usuario.

Guardamos.

Y ya hemos acabado el primer paso en la creacin de una query.

El segundo paso en la creacin de una query es la definicin del infoset asociado. Los infosets
son vistas especiales de datos donde se agrupan todos los campos que se utilizarn en una
query. En un infoset enlazaremos diferentes tablas a travs de campos comunes y
seleccionaremos qu campos queremos que estn disponibles para nuestras queries. A su vez,
asignaremos el infoset a uno o ms grupos de usuarios (recordad el post anterior sobre grupos
de usuarios).

Funcionalidad
Siguiendo con el ejemplo del anterior post vamos a crear un infoset de informacin de ventas,
en concreto, de las cantidades que nuestros clientes nos han pedido en un rango de fechas.
Para ello debemos saber que la tabla en la que se almacena la informacin de pedidos de
clientes en SAP se encuentra en la tabla VBAK. La informacin de las cantidades solicitadas
se encuentra en la tabla VBAP. Tambin debemos saber que ambas tablas se relacionan entre
s a travs del campo "documento de ventas" (VBAK-VBELN / VBAP-VBELN). Ahora
podemos empezar a construir nuestro infoset.

Entramos en la transaccin de infosets.


Herramientas / Utilidades / Query SAP / SQ02 - Infosets

Creamos un infoset, le damos una descripcin y una tabla base sobre la que
generaremos nuestro infoset. En nuestro caso sobre la tabla VBAK. En este apartado
existen varias opciones: podemos crear el infoset realizando la consulta slo sobre
una tabla en exclusiva, sobre varias tablas, sobre una base de datos lgica o incluso
sobre datos externos. Hay que pensar bien qu opcin escoger ya que una vez se ha
creado ya no hay vuelta atrs. Por ejemplo, si escogemos crear un infoset a travs de
una tabla, si en el futuro decidimos aadir una nueva tabla tendremos que borrar el
infoset y crear uno nuevo. Y eso ser un problema mayor si ya hemos creado la query
subsiguiente pues en ese caso tambin habra que borrar antes la query.
Personalmente, siempre creo las queries va unin de tablas aunque en el momento
que cree el infoset slo necesito informacin de una de las dos. As me ahorro
problemas en el futuro.

Creamos el enlace entre ambas tablas aadiendo la nueva tabla VBAP.


Automticamente, SAP nos propone las conexiones entre tablas. Sin embargo, podis
borrar el enlace y asociarlo a travs de otros campos (siempre que sean del mismo
tipo, de lo contrario SAP no lo aceptar). Yo voy a aceptar la propuesta que me hace
SAP. Atencin, en este punto hay que decir que debemos tener cuidado con las tablas
que utilizamos en nuestro join. SAP no suele tomarse muy bien las tablas cluster como
la BSEG. En este caso es mejor utilizar tablas transparentes como la BSID, BSAD,
BSIK o BSAK.

Tratar / Insertar tabla


Volvemos hacia atrs y creamos los grupos de campos (Pasar a / Back). Esto son una
especie de carpetas donde asignaremos los campos de nuestras disponibles para las
futuras queries. Yo escoger crear 'Grupos de campos vacos' con lo que me crear
dos carpetas, una para la tabla VBAK y otro para la VBAP sin ningn campo
asignado.
Arrastramos los campos de las tablas (parte izquierda de la pantalla) hacia los grupos
de campos que hemos creado (parte derecha de la pantalla). En mi caso, arrastro los
campos solicitante y documento de ventas de la VBAK y cantidad y material de la
VBAP. Como veis sobre los campos solicitante y nmero de material SAP escribe
una T. Eso significa que asociado a estos cdigos SAP internamente tambin arrastra
sus descripciones, por lo que no hay que hacer ninguna seleccin hacia las tablas de
descripciones del solicitante (KNA1) ni del material (MAKT).

Adems, para complicarlo un poco ms voy a aadir un campo que no est en ninguna
de las tablas. Por ejemplo, si la posicin ha sido rechazada (lo que se indica en SAP
a travs del campo VBAP-ABGRU) le voy a dar la descripcin 'Posicin rechazada'.
Esto slo lo podemos hacer mediante programacin ABAP, una herramienta muy
interesante que nos permiten los infosets.
Pasar a / Detalles

Creamos el campo adicional y le damos descripcin y tipo.

Escribimos el coding para el campo. Verificamos el cdigo ABAP (corregimos si es


necesario) y grabamos.
Volvemos a 'Grupo de campos'. Vemos ahora que en la parte izquierda de la pantalla
nos aparece un nuevo campo de datos 'Campos adicionales' que contiene el campo
que hemos creado. Lo que hay que hacer ahora es crear un nuevo grupo de campos y
arrastrar nuestro campo adicional a este grupo de campos (tambin podramos
arrastrarlo a uno de los grupos de campos que ya tenemos).

Slo nos queda grabar, verificar y activar nuestro infoset.

Infoset / Grabar
Infoset / Verificar
Infoset / Generar

Ya podemos volver a la pantalla inicial y asignar el infoset al grupo de usuarios que


creamos anteriormente a travs de la transaccin SQ01 (ver el post anterior).

Pasar a / Asignacin a grupo de usuarios


Definicin de query
El tercer paso en la creacin de una query es, precisamente, la creacin de la query
propiamente dicha. Esto es un listado de informacin extrada de la base de datos. Para ello
es necesario que previamente hayamos creado el grupo de usuarios al que permitiremos
extraer la informacin. Asimismo, debemos haber creado el infoset donde indicamos las
tablas de informacin necesaria.

Crear una query consiste en generar una pantalla de seleccin de la informacin y una
disposicin (layout) de salida de toda esta documentacin.

Funcionalidad
Sigamos con el ejemplo. Creamos una query de informacin de ventas.

Entramos en la transaccin de queries.

Herramientas / Workbench ABAP / Utilidades / Query SAP / SQ01 - Queries

Podemos crear nuestra query bien en rea estndar 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 estndar). 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 ms rpido y ms fcil testear nuestra query si la creamos directamente en el
rea estndar. Para eso vamos a Entorno / mbitos funcionales / rea estndar
(especfico 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. Automticamente nos pedir que la
asignemos a un infoset (recordar el paso II). Evidentemente, asignaremos el infoset
que ya habamos creado previamente (SD_VENTAS).
En la siguiente pantalla, SAP nos pide una descripcin de la query. Podemos tambin
indicar la variante de la pantalla de seleccin que queremos que se utilice por defecto
al ejecutar la query. Esta variante la podemos crear cuando ya hayamos generado
nuestra query y aadirla aqu directamente (campo Variante estndar). En esta
pantalla tambin aparecen datos de 'Formato de salida'. Aqu le podemos indicar a
nuestra query cmo queremos que se muestre. Por defecto, utilizamos el "List Viewer
ABAP", es decir, el ALV tpico. Aunque SAP nos da la posibilidad incluso de lanzar
el resultado directamente hacia un Excel si as se quiere (EXCEL).

Pasamos a 'Seleccin de grupos de campos'. Aqu debemos seleccionar todos nuestros


grupos de campos del infoset. O, si alguno de los grupos de campos no los
quisiramos utilizar en nuestra query, entonces simplemente no lo seleccionamos.
En 'Lista bsica' 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 habamos seleccionado directamente en nuestro infoset, s que
nos aparecen dentro de los campos disponibles. Eso es simplemente porque los
campos de cdigo solicitante y nmero de material siempre llevan asociadas sus
descripciones por defecto.
En la pantalla de 'Selecciones' creamos nuestra pantalla de seleccin. Es decir, los
criterios a partir de los cuales buscaremos la informacin. Yo voy a marcar los
campos solicitante, material y documento de ventas.
'Lista bsica': aqu construimos la disposicin de salida donde indicamos qu campos
queremos que se muestren en el listado y en qu orden. Adems, podemos tambin
darle algn formato especial como colores, guiones de separacin, etc. Yo voy a
marcar todos los campos disponibles y adems 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.

Grabo.
As queda la pantalla de seleccin.

Y as el layout de salida.
A partir de aqu ya podemos utilizar la funcionalidad propia de los listados ALV como
descargar la informacin en Excel, hacer filtros, sumas, sumas parciales, etc.

You might also like