Vous êtes sur la page 1sur 8

Query SAP (I): grupos de usuarios

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.

Query SAP (II): infosets


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

Query SAP (III): crear una query


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.