Professional Documents
Culture Documents
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.
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
Guardamos.
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.
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.
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
Infoset / Grabar
Infoset / Verificar
Infoset / Generar
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.
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).
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.