You are on page 1of 10

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