Sei sulla pagina 1di 24

MANUAL QUERYS

SAP R/3

MANUAL de QUERYs
Parte I

Elaborado por:
David Nez Martn

236415468.doc

30/06/aa

MANUAL QUERYS
Indice
1 INTRODUCCION...............................................................................................4
2 GRUPO DE USUARIOS....................................................................................5
2.1 CREACION............................................................................................................................................5
2.2 ASIGNACION USUARIOS AL GRUPO ..........................................................................................7

3 AREAS FUNCIONALES....................................................................................9
3.1.1 CREACION DE UN REA FUNCIONAL.....................................................................................9
3.1.1.1 BASE DATOS LOGICA.........................................................................................................10
3.1.1.2 JOIN DE TABLAS..................................................................................................................11
3.1.2 GRUPOS FUNCIONALES............................................................................................................13
3.2 DETALLE DE AREAS FUNCIONALES.........................................................................................15
3.2.1 Campo adicional.............................................................................................................................16
3.2.2 Coding............................................................................................................................................18
3.2.3 Tabla adicional Tablas alias.......................................................................................................19
3.2.4 Creacin de criterios de seleccin y parmetros............................................................................19
3.2.4.1 Criterio de Seleccin...............................................................................................................20
3.2.4.2 Parmetro.................................................................................................................................22
3.3 Grabacin del Area funcional............................................................................................................23

236415468.doc

30/06/aa

MANUAL QUERYS

NOTA INFORMATIVA
Aunque los pantallazos que aparecen en este manual estn en versin 4.0 no creo que
varen mucho de la versin 4.6 B en la que nos encontramos.

ESQUEM A DE UNA QUERY


G R U P O D E U S U A R IO S

A R E A F U N C IO N A L

A R E A F U N C IO N A L

G R U P O F U N C IO N A L G R U P O F U N C IO N A L G R U P O F U N C IO N A L G R U P O F U N C IO N A L

236415468.doc

30/06/aa

MANUAL QUERYS
1 INTRODUCCION
Una query es, bsicamente, generar una consulta a los datos que estn presentes en el
sistema, con el fin de hacer un informe adaptado y personalizado a nuestras necesidades
de informacin.
La ventaja de un QUERY frente a un Report es que el diseo final es ms sencillo de
modificar que en un Report, y que no es necesario tener grandes conocimientos de
programacin.
El inconveniente que presenta es que si el Area Funcional no est bien diseada puede
consumir muchos recursos del sistema, por lo que se recomienda que se determine muy
bien los accesos a las tablas. Las queries son tiles para crear un informe con datos del
sistema, pero tienen el inconveniente que nos tenemos que adaptar a un formato de salida
predefinido, por lo que s necesitamos cambiarlo, tendremos que utilizar otras
herramientas que nos proporciona SAP (Programas a medida).
No hay que olvidar que cuando se crea un Query, por detrs se est generando un
cdigo en ABAP.
Como paso previo a la creacin de la query necesitamos crear en nuestro sistema SAP un
grupo de usuarios y un rea funcional, que nos servir para definir distintos
conceptos generales que utilizaremos a la hora de la ejecucin y la creacin de la
consulta.
De modo general, accederemos a las queries a travs del siguiente camino:
Men General / Herramientas / WorkBench Abap4 / Utilidades / Query ABAP (SQ00)
Query. Introduccin

236415468.doc

30/06/aa

MANUAL QUERYS
2 GRUPO DE USUARIOS
Antes de crear una query debemos disear un grupo de usuarios, con ello, delimitamos
quin est autorizado para trabajar con un rea funcional. Esta opcin permitir asignar
cada Query a los usuarios definitivos de las mismas, restringiendo el acceso al resto.

2.1 CREACION
Se accede a travs de Men General / Herramientas / WorkBench Abap4 / Utilidades /
Query ABAP / Grupos de usuarios (SQ03).
Se nos presentar la siguiente pantalla:
Grupos de usuarios

En primer lugar, deberemos escribir el nombre del nuevo grupo de usuarios que
deseamos crear en el cuadro de texto que aparece tras la etiqueta Grupo usuarios. Lo
ideal sera codificar los grupos de usuarios por mdulos.
A continuacin pulsaremos sobre el botn Crear, con lo que aparecer un cuadro de
dilogo en el que deberemos de introducir texto descriptivo del nuevo grupo de usuarios,
como se muestra en la pantalla siguiente:

236415468.doc

30/06/aa

MANUAL QUERYS
Grupo de Usuarios

Una vez introducido la denominacin, pulsaremos sobre el botn Grabar, para pasar a
la siguiente pantalla, en donde se deber escoger la clase de desarrollo que queremos
asignar a nuestro grupo de usuarios, si no se conoce la Clase de Desarrollo se debera de
preguntar al responsable de Programcin en ABAP.
La clase de desarrollo, servir para ver en que mbito estamos definiendo a nuestro
grupo de usuarios (prueba, produccin, FI, etc..) y pulsaremos sobre el icono Grabar.
Este paso se realiza para que posteriormente podamos transportar el grupo de usuarios
a los diferentes entornos.
Grupo de usuarios

236415468.doc

30/06/aa

MANUAL QUERYS
A continuacin deberemos dar una orden para crear ese nuevo grupo de usuarios en
nuestro sistema
Grupo de usuarios

Una vez ejecutada la orden, se nos presentar el mensaje indicndonos que nuestro
grupo de usuarios ha sido creado.

2.2 ASIGNACION USUARIOS AL GRUPO

A continuacin deberemos de asignar a nuestro grupo de usuarios los usuarios que


podrn tener acceso.
Para ello pulsaremos sobre el botn Asignar usuarios y reas funcionales.
Aparecer una pantalla para introducir el nombre del usuario.
Nota: Desde esta pantalla se puede asignar el rea funcional, en el caso de que la
tengamos creada previamente.
Para ello, pulsaremos sobre el botn Asignar rea funcional, y marcaremos el checkbox de la izquierda, para escoger el rea o reas que deseamos asignar.

236415468.doc

30/06/aa

MANUAL QUERYS
Pulsaremos sobre grabar y volveremos a la pantalla anterior.
Grupos de usuarios. Asignar usuarios y reas funcionales

236415468.doc

30/06/aa

MANUAL QUERYS
3 AREAS FUNCIONALES
3.1.1 CREACION DE UN REA FUNCIONAL
Una vez creado el grupo de usuarios, pasaremos a crear el rea funcional, para ello,
accederemos a travs de:
Men General / Herramientas / WorkBench Abap4 / Utilidades / Query ABAP / Areas
Funcionales. (SQ02)
Se nos mostrar una pantalla como la siguiente, con un cuadro en el que aparecern las
reas funcionales ya creadas.
Areas funcionales

Para disear una nueva, escribiremos el nombre que deseamos dar a la nueva rea
funcional y pulsaremos sobre el botn crear. El nombre que asignemos a nuestra nueva
rea no puede coincidir con alguno de los ya existentes, adems sera bueno codificar las
reas por mdulos, dando una idea de las tablas que puede llevar esa query, p.ej:
MM_PEDIDOS, MM_DATOS MAESTROS.
Una vez pulsado el botn crear, nos aparecer una pantalla como la presentada en la
pgina siguiente, en la que primeramente deberemos dar una descripcin del rea
funcional que deseamos crear.
A continuacin deberemos escoger el tratamiento de las tablas que se va a realizar., este
es el paso ms importante.
Las opciones disponibles son:
a) Utilizacin de una base de datos lgica: Es aquella que esta definida por SAP de
manera estndar y permite acceder a informacin disponible en tablas pool y cluster,
las cuales no podran ser analizadas de otra manera.
236415468.doc

30/06/aa

MANUAL QUERYS
b) Lectura secuencial de una tabla: slo se selecciona una tabla que es leda de manera
continuada, registro a registro. Las operaciones se realizan a nivel de cada registro.
c) Join de tablas: es la unin de varias tablas. Para ello se definir una tabla base y
luego se especificarn las combinaciones con las dems tablas.
d) Programa: se utiliza la definicin de tablas elaborada en un programa ABAP/4
Como ya dijimos en la introduccin, la decisin de las tablas que necesitamos y la forma
de lectura de esas tablas es lo ms importante y delicado, sino se tiene algn
conocimiento de programacin sera bueno que esta parte la hiciera otra persona.
3.1.1.1 BASE DATOS LOGICA
Una base de datos lgica, es un compendio de tablas de SAP, que ya vienen designadas
desde el propio sistema, por ejemplo hay una base de datos lgica para tesorera, en la
que aparecen las tablas relevantes para este mdulo.
Con una base de datos lgica, no tendremos que hacer la unin de tablas, sino
nicamente asignar campos a nuestra rea, puesto que la unin viene determinada por
SAP.
Areas funcionales

Una vez escrito el nombre de la base de datos lgica que queremos utilizar, pulsaremos
sobre el botn ejecutar, presentndonos el sistema una pantalla en la que nos aparecern
las tablas que componen esa base de datos lgica, los grupos funcionales y el rea
funcional.

236415468.doc

10

30/06/aa

MANUAL QUERYS
Areas funcionales

3.1.1.2 JOIN DE TABLAS


Si no queremos utilizar una base de datos lgica, sino un join de tablas, introduciremos el
nombre de la tabla en el cuadro Sin Base de Datos Lgica, accediendo a la siguiente
pantalla:
Areas Funcionales

236415468.doc

11

30/06/aa

MANUAL QUERYS
En el cuadro Tablas enlazadas introduciremos los nombres de las dems tablas para
hacer el join.
Las opciones que aparecen a la derecha del nombre de las tablas sirven para indicar el
tipo de join.
EN, significa que para un registro de la primera tabla (izquierda) slo se tomar en la
cantidad resultante si en la segunda tabla (derecha) existe un registro conforme a las
condiciones de conexin.
LEFT significa que para cada registro de datos de la tabla (izquierda) se toma en la
cantidad resultante, incluso si no existe ningn registro en la segunda tabla (derecha)
conforme a las condiciones de conexin. En este caso los valores de la tabla derecha
tienen el valor inicial.
Tendremos que seleccionar las tablas de dos en dos (marcando el cuadrado que hay a la
izquierda del nombre de la tabla) y pulsar sobre el botn Definir condicin.
Aparecer una ventana desplegable, en la que nos pide si queremos alternativas para el
join de tablas. Pulsando sobre aceptar aparecern los campos que SAP propone para
realizar el join.
En la pantalla de la pgina siguiente nos aparece un ejemplo de join entre la tabla
VTBFHA y VTBFHAZU.
Areas Funcionales.

Como vemos, nos aparecen marcadas por defecto varias condiciones de unin, que nos
da el sistema SAP, si queremos realizar una nueva nos posicionaremos sobre el campo
que deseemos y pondremos una secuencia, que ser la misma que asignemos al mismo
236415468.doc

12

30/06/aa

MANUAL QUERYS
campo de la tabla izquierda. En nuestro ejemplo hemos asignado el 05 al campo
DUPDAT de las dos tablas.
Si hay alguna de las condiciones propuestas por SAP que no nos interese, pulsaremos
sobre el icono

para borrarla.

Volviendo a la pantalla anterior, podremos hacer lo mismo con el resto de tablas dos a
dos.
Una vez hayamos definido las conexiones para nuestro join volveremos a la pgina de
cabecera de nuestra rea funcional, para crear el /los grupos funcionales.
3.1.2 GRUPOS FUNCIONALES
Un grupo funcional es una agrupacin de campos del rea funcional creada, para
posteriormente incluirlos o no en la/s Querys que se creen basadas en el rea funcional.
Al menos debe de crearse un grupo funcional para el rea funcional, pero pueden
definirse varios grupos funcionales, el criterio para definir ms grupos es puramente
organizativo. Si hay varias tablas es recomendable definirse un grupo funcional por cada
tabla, para que a la hora de crear la query sea ms fcil identificar los campos.
Pasos para crear un grupo funcional:
1) Pulsaremos sobre el icono crear
que aparece a la izquierda de la rama grupos
funcionales en el rbol que se nos presenta en nuestra pantalla.
Aparecer una nueva ventana de dilogo en la que introduciremos el cdigo del grupo
funcional que vamos a crear y una descripcin del mismo.
Areas funcionales-Creacin de grupos funcionales

236415468.doc

13

30/06/aa

MANUAL QUERYS
Asignaremos los campos de la/s tabla al grupo funcional creado de la siguiente forma:
2) Haremos click en el grupo funcional sobre el que queremos trabajar.
3) Mostraremos los campos que hay en las tablas, para ello pulsaremos sobre el icono
de la tabla deseada.
A la izquierda de cada campo de la tabla, hay un signo menos, que indica que no est
seleccionado el campo, si pulsamos sobre este signo menos, se nos transforma en un
signo ms que indicar que hemos seleccionado el campo para nuestro grupo funcional.
Deberemos seleccionar todos los campos que necesitemos para nuestra query.

Nota: Haciendo doble-click sobre el texto de cualquier campo se podr modificar los
textos que se utilizarn en los campos de seleccin y de trabajo de la Query.
En la pgina siguiente se muestra todo lo anterior.

Para desplegar los campos de


una tabla pulsaremos sobre este
icono.

236415468.doc

14

30/06/aa

MANUAL QUERYS
Grupos funcionales. Asignacin de campos

Marcamos el Grupo Funcional


par incluir los campos

Para asignar un campo a nuestra


rea funcional pulsaremos sobre
el signo menos del campo

3.2 DETALLE DE AREAS FUNCIONALES


El proceso mostrado anteriormente asignaba campos de una tabla a un rea funcional,
pero puede ser necesario en nuestra query disponer de:

Campos adicionales

Tablas adicionales

Codings

Criterios de seleccin

Parmetros

236415468.doc

15

30/06/aa

MANUAL QUERYS
3.2.1 Campo adicional
Un campo adicional, consiste en incluir campos que no existan en alguna tabla, o campos
con frmulas de definicin propia.
Pasos:
1) Seleccionaremos la tabla, del rea funcional, a la que deseemos incluir un nuevo
campo y pulsaremos sobre el botn Detalle que nos aparece en el men superior.
2) Daremos un nombre al campo que deseamos crear y seleccionaremos la opcin
Cpo. Adicional.
Nota: desde esta ventana dilogo se puede crear en vez de un campo adicional una tabla
adicional o un coding (lneas de cdigo ABAP).
El campo creado aparecer al final de todos los campos de la tabla a la que se haya
asignado.
Grupos funcionales-Creacin de un campo adicional

3) A continuacin se asignar a un grupo funcional de la misma forma que hicimos con


el resto de los campos de la tabla.
4) Posteriormente hay que definir el formato del campo y cmo se obtienen sus valores,
par ello:

Secuencia de seccin de cdigo: sera interesante aclarar esto, explicando las


posibilidades.
Significado: escribir que significa el campo recin creado.

236415468.doc

16

30/06/aa

MANUAL QUERYS

Ttulo: ttulo del campo que aparecer en la tabla

Formato:

Para definir el formato tenemos dos opciones excluyentes, poner directamente el


formato, la longitud y decimales (si es posible que tenga decimales), o utilizar el campo
LIKE para asignarle el mismo formato que un campo existente en la BBDD (no tiene
por que ser la misma tabla).
La pantalla en la pgina siguiente nos muestra grficamente lo dicho.

236415468.doc

17

30/06/aa

MANUAL QUERYS
Grupos funcionales. Creacin de campo adicional

Cdigo, para este campo:

Para asignar cdigo a nuestro campo pulsaremos sobre el icono


de creacin de
cdigo, y aparecer el editor ABAP para introduccir las lneas de cdigo.
Ejemplo:

3.2.2 Coding
Adicionalmente, se podr incluir cdigos de programa a lo largo de la Query. Con este
fin se activa la opcin de usar coding a nivel de:

DATA
START-OF-SELECTION

Un ejemplo en este apartado es para realizacin chequeos de autorizacin, como el


siguiente:

236415468.doc

18

30/06/aa

MANUAL QUERYS

GET
GET LATE
END-OF-SELECTION, etc.

Creo que sera bueno indicar algn ejemplo de la utilizacin del cdigo ABAP en estas
partes del report y ver cmo afecta.
Ejemplo: Chequear que los materiales no tengan peticin de borrado, para lo cual el
campo MARD-LVORM debe ser igual a blanco.

3.2.3 Tabla adicional Tablas alias


Asimismo, el sistema permitir incluir tablas adicionales sobre las bases de datos lgicas,
pudiendo incluir los campos de las tablas como si fuera un valor ms de una de las tablas
de la base de datos lgica, con lo que se conseguir acceder a esta informacin.
Para ello es necesario definir los criterios de unin de los campos claves de la nueva tabla
con alguna de las tablas de la base de datos lgica.
Ejemplo: se aade la tabla MAKT, tabla de denominacin del material, que no se
encuentra en la base de datos lgica.
3.2.4 Creacin de criterios de seleccin y parmetros
En primer lugar, hay que indicar que en el caso que hayamos utilizado una base de datos
lgica para la creacin de nuestra rea funcional, habr ya unos criterios de seleccin y
parmetros previamente establecidos, que NO podemos modificar, esto no ocurrir si
hemos hecho un join de tablas.

236415468.doc

19

30/06/aa

MANUAL QUERYS
La diferencia entre crear un campo como criterio de seleccin, o cmo parmetro es si se
desea que se introduzca un rango de valores en la seleccin (criterio de seleccin) o que
slo se pueda introducir un valor (parmetro) en la pantalla inicial de la Query.
Creacin de un campo como:
3.2.4.1 Criterio de Seleccin
Un criterio de seleccin es un campo que aparecer en la pantalla inicial de la query y
servir para seleccionar un rango de valores del campo en la consulta.
1) Para crear un criterio de seleccin pulsaremos sobre el botn Delimitaciones situado
en el men superior de nuestra pantalla de rea funcional.

2) Una vez pulsado el botn, aparecer una tabla que puede tener los criterios de
seleccin y parmetros preexistentes en el caso de que el rea funcional se haya
creado basndose en una base de datos lgica o por el contrario puede estar esta
tabla vaca, si se ha hecho un join de tablas.
Areas Funcionales. Delimitaciones

3) Para crear un nuevo criterio de seleccin pulsaremos sobre el icono


elegir entre la creacin de un criterio de seleccin o un parmetro.

debiendo

4) Introducimos un Nombre al criterio de seleccin, y definiremos el campo:

Orden, en el que aparecer en la query.

Descripcin: significado del criterio de seleccin.

236415468.doc

20

30/06/aa

MANUAL QUERYS

Texto seleccin que aparecer en la pantalla inicial de la query.


Formato de nuestro criterio de seleccin, para ello introduciremos en el campo
FOR, el nombre de la tabla y el campo al que queremos que se asemeje nuestro
formato de criterio de seleccin.
Detalles, en este campo se pueden especificar comportamientos del criterio de
seleccin. Por ejemplo:
DEFAULT g
DEFAULT g ... OPTION xx ... SIGN s
DEFAULT g TO h
DEFAULT g TO h ... OPTION xx ... SIGN s
MEMORY ID pid
MATCHCODE OBJECT mobj
MODIF ID key
NO-DISPLAY
LOWER CASE
OBLIGATORY
NO-EXTENSION
NO INTERVALS
NO DATABASE SELECTION
VALUE-REQUEST FOR LOW/HIGH
HELP-REQUEST
HELP-REQUEST FOR LOW/HIGH

En la ayuda ABAP se detallan cada una de estas opciones, recomiendo que se utilice la
opcin/es ms adecuadas, porque utilizar estas opciones da calidad a los informes.

El criterio de seleccin creado, aparecer en la tabla de los criterios de seleccin que


estn asignados a nuestra rea funcional, como se muestra en la pantalla siguiente.

236415468.doc

21

30/06/aa

MANUAL QUERYS
Como vemos, es un criterio de seleccin personalizado, por lo que el flag del campo
Std. de la columna de criterios de seleccin estndar no estar activado.
3.2.4.2 Parmetro
El parmetro, a diferencia de el criterio de seleccin no tendr que estar basado en un
campo de las tablas definidas, por lo que su contenido podr ser utilizado para realizar
operaciones en la Query.
Para crear un parmetro en vez de un criterio de seleccin, accederemos de la misma
forma a travs del botn del men Delimitaciones, y seleccionaremos la opcin
parmetro.
Aparecer la pantalla mostrada en la pgina siguiente, donde introduciremos:

Orden en la imagen de seleccin.

Significado del parmetro: texto explicativo.

Texto: con el que aparecer el parmetro en la query.

Formato: podremos escoger entre darle el tipo de campo y su longitud, o asignarle el


mismo formato que ya tiene un campo existente en alguna tabla del sistema SAP,
introduciendo el nombre de la tabla y el campo en el texto LIKE.
Areas Funcionales. Delimitaciones

236415468.doc

22

30/06/aa

MANUAL QUERYS

Detalles: en esta lnea podremos aadir las siguientes opciones para el parmetro:
DEFAULT f
TYPE typ
DECIMALS dec
LIKE g
MEMORY ID pid
MATCHCODE OBJECT mobj
MODIF ID key
NO-DISPLAY
LOWER CASE
OBLIGATORY
AS CHECKBOX
RADIOBUTTON GROUP radi
FOR TABLE dbtab
AS MATCHCODE STRUCTURE
VALUE-REQUEST
HELP-REQUEST

En la ayuda ABAP se detallan cada una de estas opciones, recomiendo su utilizacin.

3.3 GRABACIN DEL AREA FUNCIONAL


Grabaremos nuestra rea funcional, pulsando sobre el icono de Grabar y
introduciremos la clase de desarrollo. Una vez grabada el rea funcional la
GENERAREMOS, haciendo click sobre el icono de generar.
Areas Funcionales

236415468.doc

23

30/06/aa

MANUAL QUERYS

236415468.doc

24

30/06/aa

Potrebbero piacerti anche