You are on page 1of 12

foroSAP.

com
MANUAL DE QUERYS

Por Elisabet Mendoza

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 dnició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