You are on page 1of 12

MANUAL DE QUERYS

Introducción

Un query es una herramienta del sistema que nos permite la


posibilidad de extraer información de SAP mediante un sistema
de Drag & Drog, de entre los tipos de Query que SAP nos ofrece
podemos optar por:

         Lista básica

         Estadísticas

         Lista ranking

También se puede hacer una combinación de estos tipos de


report, es decir, hacer que en un mismo listado podamos obtener
los tres al mismo tiempo haciendolo mucho más profesional y
completo.

Lista de Componentes

Para poder finaliz con exito un Query primero hemos de


completar cuatro pasos, pero al final de la instalación de un
proyecto de SAP, el usuario final sólo tendré que realizar los dos
últimos pasos, siendo tarea de los programadores de
manteniemiento, o del consultor o del propio administrador del
sistema la constitución de los dos primeros pasos.

         Grupo de usuarios

         Área funcional

         Query

         Comparación
de Idiomas (Herramientas – Entorno – Traducción
– ABAP Query)

El área funcional define el conjunto de datos sobre el que se


ejecutan los queries y mediante los grupos de usuarios, definimos
a qué conjunto de datos pueden acceder los usuarios.A partir de
este punto, culaquier usuario del grupo podrá crear un query
sobre el área funcional.

Grupo de usuarios

Un grupo de usuarios es un conjunto de usuarios que trabajan


sobre los mismos datos a la hora de ejecutar el query. Un usuario
que pertenezca al grupo podrá ejecutar cualquier query creado
por otro elemento del grupo de usuarios, y los cambios que
realice sobre el query serán visibles para todos los usuarios del
grupo.
Para definir un grupo de usuarios hay que seguir los siguientes
pasos:

1.      Entrar en ABAP/4 Workbench (menú Herramientas).

2.      Por Utilidades  Query ABAP/4  Grupos de usuarios se entra


en la pantalla de definición de grupos de usuarios. Se puede
acceder directamente con la transacción SQ03.

3.      En el campo Grupo usuarios se introduce el nombre del grupo


que se quiere definir y se elige la acción crear. El sistema pide
únicamente una descripción larga del grupo.

4.      Para agregar usuarios al grupo hay dos posibilidades: uno a uno,
entrando el usuario en el campo usuario y accionando Asignar
usuario, o en la pantalla de asignación de usuarios, que aparece al
hacer click sobre Asignar usuarios y grupos funcionales.

Áreas funcionales

Las áreas funcionales nos permiten hacer una preselección de los


datos que aparecerán en los queries. En la definición del área
funcional especificamos qué tablas intervendrán en el query y qué
campos. Es deber del funcional o del propio cliente crear estas
areas funcionales. Se deben crear las area con suficiente visión
de futuro para hacerlas lo más ampliadas posibles.
Para acceder a la pantalla de definición de áreas funcionales, hay
que seguir los siguientes pasos:

1.      Entrar en ABAP/4 Workbench (menú Herramientas).

2.      Por Utilidades  Query ABAP/4  Áreas funcionales se entra


en la pantalla de definición de Áreas funcionales. Se puede
acceder directamente con la transacción SQ02.

Para definir un área funcional, se introduce en el campo Área


funcional el nombre que se le quiere dar y se acciona el botón
crear. Aparece una primera pantalla en la que se asocia al área
una denominación , un grupo de autorización y una clase de área
funcional.

         Base de datos lógica: El área funcional trabaja sobre una base de
datos lógica.
         Unión
directa de tablas : Una unión de tablas abarca siempre
varias tablas que se leerán con ayuda de una forma especial de la
instrucción SELECT. La primera tabla en la unión es la tabla
citada arriba en el campo Tabla. Las demás tablas pueden
indicarse cuando se llama las funciones Continuar (al crear un
área funcional nueva) o Unir. Si bien una unión de tablas abarca
siempre varias tablas, el resultado es una secuencia de registros
con estructura plana. La estructura de estos registros es una barra
de campos, en los que se constan de modo seguido los campos
implicados en la conexión de las tablas.

         Lectura
directa : Todos los datos están contenidos en la tabla
indicada en el campo Tabla.

         Obtención
de datos mediante programa: La lectura de los
datos se describe a partir de un programa separado.

         Datos
secuenciales : Los datos se leen de un pool de datos
secuencial.

Al crear un área funcional con unión directa de tablas, aparece


una pantalla en la que se deben indicar las tablas implicadas en la
unión y las condiciones de la unión. Para definir una condición,
marcamos dos tablas de la lista de tablas y hacemos click sobre
definir condición. Aparece en el panel de la derecha (condiciones
de enlace) una nueva entrada. Si activamos el botón de
especificar condiciones , a la derecha de la nueva entrada,
veremos una pantalla con todos los campos de las dos tablas
implicadas en la unión. En esta pantalla se definen los campos
que han de ser iguales para la unión de las tablas.
A continuación, se especifican los campos de las tablas que serán
visibles en el área funcional. Aparece un nuevo concepto: el
grupo funcional. Un grupo funcional no es más que un conjunto
de campos de las tablas implicadas en el área funcional.

Por un lado, están los grupos funcionales y por otro, las tablas del
área funcional. El procedimiento a seguir es el siguiente :

1.      Definir los grupos funcionales. Para esto, hacemos click sobre el
icono de crear y entramos el nombre del área funcional.

2.      Un grupo funcional combina diferentes campos en una misma


unidad. Se utiliza para presentar al usuario una preselección de
los campos. Esto hace que el usuario no tenga que pasar por toda
la Base de Datos Lógica o por todos los campos de una tabla para
crear un query.
3.      Asignar a los campos de las tablas un grupo funcional. Los
campos que no tengan un grupo funcional asignado, no serán
visibles a la hora de definir el query. Para asignar el grupo
funcional, se marca el grupo funcional en la parte superior de la
pantalla y después se hace click sobre el icono que hay a la
derecha del nombre del campo de la tabla.

Existe una opción que nos permite incluir codigo fuente dentro de
los query (Coding...) con ello podremos incluir codigo antes y
después de la selección de datos, colocar authority-check o
acceder a otras tablas, etc.

Query

Una vez que tenemos el grupo de usuario definido y


pertenecemos a él, que el area funcional ya ha sido creada y los
campos ya estan disponibles para extraer nuestros listados, justo
en este momento ya somos capaces de crear nuestros query.
Para entrar en el entorno de definición de queries, se debe seguir
el siguiente procedimiento :

1.      Entrar en ABAP/4 Workbench (menú Herramientas).

2.      Seguir la ruta de menú Utilidades  Query ABAP/4  Queries.


Se puede acceder directamente con la transacción SQ01.

En la pantalla se listarán las queries asociadas a un grupo de


usuarios. Si el usuario pertenece a mas de un grupo, con la
opción cambiar grupo de usuario (shift + F7) en la barra de
iconos, puede acceder a las queries de otro grupo al que
pertenezca. Con los botones de crear y modificar accedemos a
las pantallas de actualización de queries. Al crear un query, si el
grupo de usuarios tiene más de un área funcional asignada, el
sistema pide una preselección del área funcional en la que se
quiere definir el query. La primera pantalla que aparece es la de
datos generales.

En ella se define el título del query y una explicación del mismo.


Por otro lado, se define el formato de salida (número de filas y
columnas). También se le puede asignar una variante estándar y
bloquear el query para que los demás usuarios del grupo no
puedan modificarlo. Por ultimo, se puede determinar si se quiere
un traspaso de información a algún otro sistema (word, excel,
EIS,...). Para pasar a la siguiente pantalla, hacemos click sobre el
icono  que aparece en la barra de status.
En la siguiente pantalla se elige qué grupos funcionales
intervendrán en el query. Esta pantalla determinará la posibilidad
de trabajar con más o menos campos.
En la siguiente se seleccionan los campos de dichas áreas
funcionales que aparecerán.
Para finalizar con la definición de parámetros generales, la última
pantalla nos permite definir si queremos que en el query se haga
selección por campos mediante select options.
Nota: En el caso de Bases de Datos Lógicas, para que realice
correctamente la selección de datos de una tabla secundaria,
como mínimo tenemos que visualizar un campo de esa tabla en el
listado. Si no es así, la query no accede a esa tabla y, por lo
tanto, no realiza la selección correspondiente. La tabla primaria
está relacionada directamente con la secundaria mediante uno o
varios campos en común. Si en lugar de listar el campo de la
tabla primaria listamos el de la secundaria, la selección del resto
de campos de esa tabla la hará correctamente. Sino, ignorará lo
que le hayamos informado en la pantalla de selección. La
finalidad de una query es hacer un listado, por lo tanto, el
seleccionar una tabla para luego no listar ninguno de sus campos
puede ser el factor que haga que esta selección de la tabla
secundaria no funcione (es decir, sea ignorada).
A parte de los campos de selección, las queries también nos
permiten crear campos locales. Esto nos permite generar nueva
información a partir de los campos del área funcional sin tener
que incluir un campo adicional.
Para definir un campo local tenemos que ir por: Tratar  Campo
Local  Crear, en la pantalla de Selección de campos.
Norma de cálculo
Puedes determinar el valor de un campo de las
siguientes maneras:

         Usando una fórmula.

         Para
crearla se utilizan las reglas matemáticas
usuales que contienen operandos y operadores. Si
apretamos el botón de Cálculo complejo podremos
ver todas las opciones que nos permite utilizar a la
hora de hacer una fórmula.

         Entrando
un valor en la pantalla de selección
(Entrada en imagen de selección)

En este caso, el campo local es tratado como un


parametro cuyo valor está determinado por una
entrada en la pantalla de selección. Esto no se
puede realizar con símbolos o iconos. Para forzar un
valor en la pantalla de selección tendremos que
activar la opción de Obligatorio.

Lista básica
Una vez que hemos seleccionado los grupos funcionales y los
campos que vamos a tratar en simplemente bastará con pulsar
sobre elbotón de lista básica para obtener un Query. La lista
básica no es más que una forma de obtener un listado de forma
lineal de forma rápida y sencilla. Para comenzar a definir un query
deberemos empezar por:

         Línea : En qué línea física situamos el campo.

         Secuencia: Marca un orden entre los campos de una misma


línea. La información es numérica, y no tiene que ver con la
posición física del campo dentro de la línea. Así, si tenemos dos
campos en una misma línea con secuencias 7 y 12, sabremos que
el campo con secuencia 7 irá antes del 12, pero no ocuparán las
posiciones 7 y 12 de la línea.

         Clasificación: Con


este campo, especificamos un orden en las
líneas de salida, una clasificación. Así, en el ejemplo, tendremos
un listado clasificado por código de trámite a un primer nivel y ,
a continuación, por código de circuito. Es decir, primero saldrán
las líneas ordenadas por código de trámite, y todas aquellas que
tengan el mismo código de trámite aparecerán ordenadas por
código de circuito.

         Recuento:Indicador con el cual se cuentan las veces que son


leídos los campos durante la obtención de datos. Se da salida al
número total al final de la lista básica. Además, en el caso de que
exista clasificación, se puede dar salida al final del nivel de grupo
del número de veces que se ha leído un campo dentro del nivel de
grupo (recuento intermedio).

         A
nivel global, se le especifica si la lista debe ir enmarcada, si se
quieren insertar líneas separadoras entre las diferentes columnas
del listado o si se quiere una representación compactada de la
información. Si decidimos clasificar la lista por algún campo, es
decir, creamos niveles de grupos, la siguiente pantalla que nos
aparecerá hará referencia únicamente a estos campos .

         Dist.
: Si no está activado, se hará una clasificación ascendente.
En caso contrario, será descendente.

         Txt.
: Con este checkbox activado, se visualiza un texto al
principio de cada nivel de grupo, es decir al cambiar los
conceptos de clasificación.

         Suma
: Para obtener una suma parcial de los campos a sumarizar
a cada cambio de grupo.
         Cont
: Si se marca este campo se dará salida en el cambio de
grupo a los valores intermedios del recuento (recuento
intermedio) para todos los campos en los que se ha activado el
checkbox Recuen.de la pantalla anterior.

         Marc. : Para enmarcar a nivel de grupo.

         LinBla.
: Inserta una línea en blanco antes de la visualización de
un nuevo grupo.

         Pág.nv. : Inserta un salto de página antes de cada nuevo grupo.

         Si se ha
activado el checkbox Txt., la siguiente pantalla será la de
Textos de niveles de grupo, en la que se especifica el texto que ha
de aparecer al principio de cada nuevo grupo. Es como asociar
una máscara al campo, por ejemplo, que cada vez que nos salga
un código de circuito nuevo, en la cabecera del listado (o
subcabecera de totales) nos salga escrito : Código de Cliente:
XXXXXXX.

         Color : color de la línea.

         Condic
: Si se indica el número de otra línea, la línea actual sólo
será visualizada se la otra línea también es visualizada. En caso
de dependencias entre líneas es necesario respetar la estructura de
la base de datos correspondiente. Una línea (dependiente) sólo
deberá depender de otra línea (línea condicionada) si la línea
condicionada sólo contiene campos asignados a una base de datos
de una tabla jerárquicamente inferior a la tabla de los campos a
visualizar en la línea dependiente

         Lin.
Blanco Ant : Número de líneas en blanco a visualizar antes
de la línea actual.

         Lin.
Blanco A : Número de líneas a visualizar después de la
línea actual.

         Cabec.
Pág. : Marcar este campo para visualizar la línea
correspondiente en la cabecera de la página en un cambio de
página, siempre y cuando una de las líneas a continuación
ocasione el cambio de página.

         Nva.Pág. : Si se quiere insertar un salto de página antes de esta


línea.

         A
continuación está la pantalla Opciones de salida campo.Para
cada campo que aparece en el query, se pueden fijar los
siguientes parámetros:
o        Long
: Longitud de visualización del campo, es decir,
cuantos caracteres del campo se quieren visualizar.

o        Pos
: Posición absoluta del campo en la línea. Si no se
especifica ningún valor, toma el final del campo anterior.

o        Color : Color del campo dentro de la línea.

o        Masc:
Si se quiere especificar una máscara de salida para
el campo, hay que activar este checkbox.

o        <>
0 : Si este checkbox está activado, si el valor es igual a
cero no se visualiza.

         La
siguiente pantalla es la pantalla de definición de máscaras
para campos, si se ha seleccionado algún campo en el query con
máscara de salida.Con ayuda de una máscara es posible fijar una
representación distinta a la representación estándar en la salida de
un campo. Dentro de la máscara será suplida cada línea de
subrayado ( _ ) por una posición del valor del campo, siendo
efectuada la asignación de izquierda a derecha. Los paréntesis
(<,>) que encierran la máscara no serán visualizados. Por
ejemplo, si el campo Ejercicio es de cuatro posiciones, sin
máscara se visualizará '2000', pero si se especifica la máscara
<Ejercicio:____>, en cada línea del query en la que aparezca el
campo ejercicio se visualizará 'Ejercicio:2000' .

         Finalmente está la pantalla de Cabecera de lista básica.En ella se


define:

         Cabecera de la página : Cabecera de las páginas del query.

         Cabeceras
de columna : Justo debajo de la
cabecera de página, aparecen los textos que se
visualizarán en las cabeceras de columna. Si se
desea modificarlos, basta con hacer doble click
sobre el texto y aparecerá un recuadro para
cambiarlo.

         Pies de página : Pies de página del query.

Estadísticas

Las estadísticas permiten operar con los campos numéricos de


las grupos funcionales utilizados en el query. La estadística se
añade, normalmente, a continuación del query básico. Para
acceder a las pantallas de definición de estadísticas, basta con
accionar el botón Estadísticas. En la primera pantalla se
seleccionan los campos que se quieren en la estadística. Es
necesario que hayan campos alfanuméricos y numéricos. Sólo se
podrá hacer nueve listados de tipo Estadísticos en un mismo
Query. Como puede haber varias estadísticas, cada una de ellas
debe tener su propio título. Podemos especificar la secuencia en
la que queremos que nos aparezcan los datos y si tendrían que
estar ordenados de forma ascendente o descendente.
Los totales son siempre calculados para campos numéricos. Por
esto mismo también puedes determinar valores medios,
porcentajes y total de entradas seleccionadas.
Para cada campo numérico seleccionado, se debe determinar los
siguientes parámetros :

         Nº
: Este parámetro marca el orden de los campos que aparecen
en la estadística.

         Cla
: Orden de clasificación. Ordena los resultados de salida de
la estadística en función del orden de clasificación.

         Di :
Si se quiere que el orden de salida sea ascendente o
descendente.

         Rf
: Al marcar este parámetro se generarán automáticamente
sumas parciales para ese campo. La estadística se puede ir
plegando y desplegando con sumas parciales de los campos
numéricos, tantas veces como campos numéricos con este
indicador activo haya.

         Ctd: Se
aplica a los campos numéricos. Si el indicador está
activado, en la estadística aparece la cantidad de entradas
contempladas en la línea, es decir, si una línea es una suma
parcial, se podrá ver cuantos registros se han considerado en la
suma.

         Pr: Para que se calcule el promedio del campo numérico.

         %:
Este campo se utiliza para visualizar el % que representa una
línea respecto al total.

         Lg : Longitud de salida.

         Red : Factor de redondeo.

En el caso de campos numéricos, también se deben señalar:

         Unidad: en la que queremos los resultados (moneda).

         Texto: texto a visualizar en la estadística.

Otra opción que nos permiten las estadísticas es la de ordenarlas


según el criterio que queramos.
Lista ranking

Además de la lista básica y las estadísticas, en el query se


pueden introducir hasta diez listas ranking. Una lista ranking es
un listado ordenado por un campo numérico. Se especifican los
campos alfanuméricos por los que se quiere agregar el campo
numérico. Si indicamos, por ejemplo, un campo producto
alfanumérico y un campo uds. vendidas numérico, el resultado
será un listado ordenado de los productos más vendidos, en los
que veremos las unidades vendidas agregadas por producto.
Para cada campo numérico se define :

         Nº : Posición que ocupa en la fila.

         Cr : Si es el criterio por el que se desea ordenar.

         Asc:
Si la lista ranking debe ser ordenada en criterio ascendente
o descendente.

         Lg : Longitud de visualización.

         Red : Factor de redondeo.

En los campos alfanuméricos, se determina :

         Nº : Posición que ocupa en la fila.

         Lg : Longitud de visualización.

En los campos numéricos se determina:

         Unidad: moneda en la que está expresado el resultado.

Otras opciones

Una vez tenemos ya creada la query, al realizar el listado otras


posibilidades se nos ofrecen.
Llamar informe
Una query la podemos enlazar con otros reports,
otras querys,... Si estando en la pantalla inicial de
modificación de query nos colocamos en: Pasar a 
Asignar informe, Si lo que queremos es conectar
esta query con otra query, debemos informar el
grupo de usuarios y la query a la que queremos
llamar.
Si lo que queremos hacer no es asignar una query
sino otro tipo de informe, apretamos la opción de
Otro tipo informe y nos saldrán las distintas
opciones que tenemos.
Una query se puede comunicar con otros informes.
Si nos colocamos en una línea del query final y
apretamos la opción de Llamar informe, el query
nos pasará la informacion de la línea al siguiente
informe que llamemos, de manera que si el informe
llamado tiene una pantalla de selección con campos
que se visualizan en la query, los valores señalados
se traspasarán de un informe a otro (drill-down).
Los diferentes informes a los que podemos llamar
son:
Portafolio de informes
A continuación deberemos informar el
informe al que queremos acceder a
través de la query.
Investigaciones
Debemos informar la clase de
aplicación a la que va destinado el
query. Aquí tenemos la opción de
comunicar la query con un informe del
report writer entre otros (también con
informes de bienes inmuebles,...). Esta
opción la podemos hacer desde aquí o
directamente desde el punto 3.
Informes report writer
Comunicamos la query con un report
writer. Para ello debemos informar el
grupo de informes que queremos
ejecutar. En el caso de que sólo
hubiera un report writer o report painter
en ese grupo de informes, en el caso
de que ejecutaramos esta opción, de
la pantalla resultado de la query
pasaríamos a la del report
painter/writer, ejecutándose
directamente el report señalado.
Transacciones
Informamos el código de la transacción
y pasará a ésta los datos recogidos
por la línea de la query señalada, y
ejecutará la transacción directamente.
Si ésta da como resultado un informe,
visualizaremos el informe, si da de alta
datos, pues los grabará, etc.
Informe ABAP/4
Informamos el nombre de un report y
éste, al igual que la transacción, se
ejecutará con los datos que le
enviamos desde el query. Tanto en el
caso de transacciones como en el de
Informes de ABAP/4 hay que vigilar
que se pasen todos los parámetros
necesarios, sino se nos ejecutarán de
forma errónea.
ABAP/4-Query
De una query podemos pasar a otra
query de diferente grupo de usuarios,
simplemente indicando el nombre el
grupo de usuarios y el nombre del
query.

Codigo

Una de las ventajas de hacer un Query es que de forma automática tienes el


código fuente del programa, con lo cual, con unas pequeñas modificaciones
podemos disponer de él. No obstante, su complijidad es tan endiablada que
meterse en su código resulta una batalla perdida.

You might also like