W Pub: ABAP Curso SQ 01

MANUAL DE QUERY

Por Elisabet Mendoza

Introduccin

Un query es una herramienta del sistema que nos permite la posibilidad de extraer informacin de SAP mediante un sistema de Drag & Drog, de entre los tipos de Query que SAP nos ofrece podemos optar por:

  • Lista bsica
  • Estadsticas
  • Lista ranking

Tambin se puede hacer una combinacin de estos tipos de report, es decir, hacer que en un mismo listado podamos obtener los tres al mismo tiempo haciendolo mucho ms profesional y completo.

Lista de Componentes

Para poder finaliz con exito un Query primero hemos de completar cuatro pasos, pero al final de la instalacin de un proyecto de SAP, el usuario final slo tendr que realizar los dos ltimos pasos, siendo tarea de los programadores de manteniemiento, o del consultor o del propio administrador del sistema la constitucin de los dos primeros pasos.

  • Grupo de usuarios
  • rea funcional
  • Query
  • Comparacin de Idiomas (Herramientas – Entorno – Traduccin – 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 sern visibles para todos los usuarios del grupo.

Para definir un grupo de usuarios hay que seguir los siguientes pasos:

  • Entrar en ABAP/4 Workbench (men Herramientas).
  • Por Utilidades Query ABAP/4 'Grupos de usuarios se entra en la pantalla de definicin de grupos de usuarios. Se puede acceder directamente con la transaccin SQ03.'
  • En el campo Grupo usuarios se introduce el nombre del grupo que se quiere definir y se elige la accin crear. El sistema pide nicamente una descripcin larga del grupo.
  • 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 asignacin de usuarios, que aparece al hacer click sobre Asignar usuarios y grupos funcionales.

reas funcionales

Las reas funcionales nos permiten hacer una preseleccin de los datos que aparecern en los queries. En la definicin del rea funcional especificamos qu tablas intervendrn 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 visin de futuro para hacerlas lo ms ampliadas posibles.

Para acceder a la pantalla de definicin de reas funcionales, hay que seguir los siguientes pasos:

  • Entrar en ABAP/4 Workbench (men Herramientas).
  • Por Utilidades ' Query ABAP/4 reas funcionales se entra en la pantalla de definicin de reas funcionales. Se puede acceder directamente con la transaccin SQ02'''.

Para definir un rea funcional, se introduce en el campo rea funcional el nombre que se le quiere dar y se acciona el botn crear. Aparece una primera pantalla en la que se asocia al rea una denominacin , un grupo de autorizacin y una clase de rea funcional.

  • Base de datos lgica: El rea funcional trabaja sobre una base de datos lgica.
  • Unin directa de tablas : Una unin de tablas abarca siempre varias tablas que se leern con ayuda de una forma especial de la instruccin SELECT. La primera tabla en la unin es la tabla citada arriba en el campo Tabla. Las dems tablas pueden indicarse cuando se llama las funciones Continuar (al crear un rea funcional nueva) o Unir. Si bien una unin 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 conexin de las tablas.
  • Lectura directa : Todos los datos estn contenidos en la tabla indicada en el campo Tabla.
  • Obtencin 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 unin directa de tablas, aparece una pantalla en la que se deben indicar las tablas implicadas en la unin y las condiciones de la unin. Para definir una condicin, marcamos dos tablas de la lista de tablas y hacemos click sobre definir condicin. Aparece en el panel de la derecha (condiciones de enlace) una nueva entrada. Si activamos el botn de especificar condiciones , a la derecha de la nueva entrada, veremos una pantalla con todos los campos de las dos tablas implicadas en la unin. En esta pantalla se definen los campos que han de ser iguales para la unin de las tablas.

A continuacin, se especifican los campos de las tablas que sern visibles en el rea funcional. Aparece un nuevo concepto: el grupo funcional. Un grupo funcional no es ms que un conjunto de campos de las tablas implicadas en el rea funcional.

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

  • Definir los grupos funcionales. Para esto, hacemos click sobre el icono de crear y entramos el nombre del rea funcional.
  • Un grupo funcional combina diferentes campos en una misma unidad. Se utiliza para presentar al usuario una preseleccin de los campos. Esto hace que el usuario no tenga que pasar por toda la Base de Datos Lgica o por todos los campos de una tabla para crear un query.
  • Asignar a los campos de las tablas un grupo funcional. Los campos que no tengan un grupo funcional asignado, no sern 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 despus se hace click sobre el icono que hay a la derecha del nombre del campo de la tabla.

Existe una opcin que nos permite incluir codigo fuente dentro de los query (Coding...) con ello podremos incluir codigo antes y despus de la seleccin 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 definicin de queries, se debe seguir el siguiente procedimiento :

  • Entrar en ABAP/4 Workbench (men Herramientas).
  • Seguir la ruta de men Utilidades ' Query ABAP/4 Queries. Se puede acceder directamente con la transaccin SQ01'''.

En la pantalla se listarn las queries asociadas a un grupo de usuarios. Si el usuario pertenece a mas de un grupo, con la opcin 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 actualizacin de queries. Al crear un query, si el grupo de usuarios tiene ms de un rea funcional asignada, el sistema pide una preseleccin 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 ttulo del query y una explicacin del mismo. Por otro lado, se define el formato de salida (nmero de filas y columnas). Tambin se le puede asignar una variante estndar y bloquear el query para que los dems usuarios del grupo no puedan modificarlo. Por ultimo, se puede determinar si se quiere un traspaso de informacin a algn 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 intervendrn en el query. Esta pantalla determinar la posibilidad de trabajar con ms o menos campos.

En la siguiente se seleccionan los campos de dichas reas funcionales que aparecern.

Para finalizar con la definicin de parmetros generales, la ltima pantalla nos permite definir si queremos que en el query se haga seleccin por campos mediante select options.

Nota: En el caso de Bases de Datos Lgicas, para que realice correctamente la seleccin de datos de una tabla secundaria, como mnimo 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 seleccin correspondiente. La tabla primaria est relacionada directamente con la secundaria mediante uno o varios campos en comn. Si en lugar de listar el campo de la tabla primaria listamos el de la secundaria, la seleccin del resto de campos de esa tabla la har correctamente. Sino, ignorar lo que le hayamos informado en la pantalla de seleccin. 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 seleccin de la tabla secundaria no funcione (es decir, sea ignorada).

A parte de los campos de seleccin, las queries tambin nos permiten crear campos locales. Esto nos permite generar nueva informacin 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 Seleccin de campos.

Norma de clculo

 Puedes determinar el valor de un campo de las siguientes maneras:
  • Usando una frmula.
  • Para crearla se utilizan las reglas matemticas usuales que contienen operandos y operadores. Si apretamos el botn de Clculo complejo podremos ver todas las opciones que nos permite utilizar a la hora de hacer una frmula.
  • Entrando un valor en la pantalla de seleccin (Entrada en imagen de seleccin)

En este caso, el campo local es tratado como un parametro cuyo valor est determinado por una entrada en la pantalla de seleccin. Esto no se puede realizar con smbolos o iconos. Para forzar un valor en la pantalla de seleccin tendremos que activar la opcin de Obligatorio.

Lista bsica

Una vez que hemos seleccionado los grupos funcionales y los campos que vamos a tratar en simplemente bastar con pulsar sobre elbotn de lista bsica para obtener un Query. La lista bsica no es ms que una forma de obtener un listado de forma lineal de forma rpida y sencilla. Para comenzar a definir un query deberemos empezar por:

  • Lnea : En qu lnea fsica situamos el campo.
  • Secuencia: Marca un orden entre los campos de una misma lnea. La informacin es numrica, y no tiene que ver con la posicin fsica del campo dentro de la lnea. As, si tenemos dos campos en una misma lnea con secuencias 7 y 12, sabremos que el campo con secuencia 7 ir antes del 12, pero no ocuparn las posiciones 7 y 12 de la lnea.
  • Clasificacin: Con este campo, especificamos un orden en las lneas de salida, una clasificacin. As, en el ejemplo, tendremos un listado clasificado por cdigo de trmite a un primer nivel y , a continuacin, por cdigo de circuito. Es decir, primero saldrn las lneas ordenadas por cdigo de trmite, y todas aquellas que tengan el mismo cdigo de trmite aparecern ordenadas por cdigo de circuito.
  • Recuento: Indicador con el cual se cuentan las veces que son ledos los campos durante la obtencin de datos. Se da salida al nmero total al final de la lista bsica. Adems, en el caso de que exista clasificacin, se puede dar salida al final del nivel de grupo del nmero de veces que se ha ledo 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 lneas separadoras entre las diferentes columnas del listado o si se quiere una representacin compactada de la informacin. Si decidimos clasificar la lista por algn 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 clasificacin 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 clasificacin.
  • 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 lnea en blanco antes de la visualizacin de un nuevo grupo.
  • Pg.nv. : Inserta un salto de pgina 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 mscara al campo, por ejemplo, que cada vez que nos salga un cdigo de circuito nuevo, en la cabecera del listado (o subcabecera de totales) nos salga escrito : Cdigo de Cliente: XXXXXXX.
  • Color : color de la lnea.
  • Condic : Si se indica el nmero de otra lnea, la lnea actual slo ser visualizada se la otra lnea tambin es visualizada. En caso de dependencias entre lneas es necesario respetar la estructura de la base de datos correspondiente. Una lnea (dependiente) slo deber depender de otra lnea (lnea condicionada) si la lnea condicionada slo contiene campos asignados a una base de datos de una tabla jerrquicamente inferior a la tabla de los campos a visualizar en la lnea dependiente
  • Lin. Blanco Ant : Nmero de lneas en blanco a visualizar antes de la lnea actual.
  • Lin. Blanco A : Nmero de lneas a visualizar despus de la lnea actual.
  • Cabec. Pg. : Marcar este campo para visualizar la lnea correspondiente en la cabecera de la pgina en un cambio de pgina, siempre y cuando una de las lneas a continuacin ocasione el cambio de pgina.
  • Nva.Pg. : Si se quiere insertar un salto de pgina antes de esta lnea.
  • A continuacin est la pantalla Opciones de salida campo.Para cada campo que aparece en el query, se pueden fijar los siguientes parmetros:
    • Long : Longitud de visualizacin del campo, es decir, cuantos caracteres del campo se quieren visualizar.
    • Pos : Posicin absoluta del campo en la lnea. Si no se especifica ningn valor, toma el final del campo anterior.
    • Color : Color del campo dentro de la lnea.
    • Masc: Si se quiere especificar una mscara de salida para el campo, hay que activar este checkbox.
    • <> 0 : Si este checkbox est activado, si el valor es igual a cero no se visualiza.
  • La siguiente pantalla es la pantalla de definicin de mscaras para campos, si se ha seleccionado algn campo en el query con mscara de salida.Con ayuda de una mscara es posible fijar una representacin distinta a la representacin estndar en la salida de un campo. Dentro de la mscara ser suplida cada lnea de subrayado ( _ ) por una posicin del valor del campo, siendo efectuada la asignacin de izquierda a derecha. Los parntesis (<,>) que encierran la mscara no sern visualizados. Por ejemplo, si el campo Ejercicio es de cuatro posiciones, sin mscara se visualizar 2000, pero si se especifica la mscara <Ejercicio:____>, en cada lnea del query en la que aparezca el campo ejercicio se visualizar Ejercicio:2000 .
  • Finalmente est la pantalla de Cabecera de lista bsica.En ella se define:
  • Cabecera de la pgina : Cabecera de las pginas del query.
    • Cabeceras de columna : Justo debajo de la cabecera de pgina, aparecen los textos que se visualizarn 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 pgina : Pies de pgina del query.

Estadsticas

Las estadsticas permiten operar con los campos numricos de las grupos funcionales utilizados en el query. La estadstica se añade, normalmente, a continuacin del query bsico. Para acceder a las pantallas de definicin de estadsticas, basta con accionar el botn Estadsticas. En la primera pantalla se seleccionan los campos que se quieren en la estadstica. Es necesario que hayan campos alfanumricos y numricos. Slo se podr hacer nueve listados de tipo Estadsticos en un mismo Query. Como puede haber varias estadsticas, cada una de ellas debe tener su propio ttulo. Podemos especificar la secuencia en la que queremos que nos aparezcan los datos y si tendran que estar ordenados de forma ascendente o descendente.

Los totales son siempre calculados para campos numricos. Por esto mismo tambin puedes determinar valores medios, porcentajes y total de entradas seleccionadas.

Para cada campo numrico seleccionado, se debe determinar los siguientes parmetros :

  • : Este parmetro marca el orden de los campos que aparecen en la estadstica.
  • Cla : Orden de clasificacin. Ordena los resultados de salida de la estadstica en funcin del orden de clasificacin.
  • Di : Si se quiere que el orden de salida sea ascendente o descendente.
  • Rf : Al marcar este parmetro se generarn automticamente sumas parciales para ese campo. La estadstica se puede ir plegando y desplegando con sumas parciales de los campos numricos, tantas veces como campos numricos con este indicador activo haya.
  • Ctd: Se aplica a los campos numricos. Si el indicador est activado, en la estadstica aparece la cantidad de entradas contempladas en la lnea, es decir, si una lnea es una suma parcial, se podr ver cuantos registros se han considerado en la suma.
  • Pr: Para que se calcule el promedio del campo numrico.
  • %: Este campo se utiliza para visualizar el % que representa una lnea respecto al total.
  • Lg : Longitud de salida.
  • Red : Factor de redondeo.

En el caso de campos numricos, tambin se deben señalar:

  • Unidad: en la que queremos los resultados (moneda).
  • Texto: texto a visualizar en la estadstica.

Otra opcin que nos permiten las estadsticas es la de ordenarlas segn el criterio que queramos.

Lista ranking

Adems de la lista bsica y las estadsticas, en el query se pueden introducir hasta diez listas ranking. Una lista ranking es un listado ordenado por un campo numrico. Se especifican los campos alfanumricos por los que se quiere agregar el campo numrico. Si indicamos, por ejemplo, un campo producto alfanumrico y un campo uds. vendidas numrico, el resultado ser un listado ordenado de los productos ms vendidos, en los que veremos las unidades vendidas agregadas por producto.

Para cada campo numrico se define :

  • : Posicin 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 visualizacin.
  • Red : Factor de redondeo.

En los campos alfanumricos, se determina :

  • : Posicin que ocupa en la fila.
  • Lg : Longitud de visualizacin.

En los campos numricos 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 modificacin 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 opcin de Otro tipo informe y nos saldrn las distintas opciones que tenemos.

Una query se puede comunicar con otros informes. Si nos colocamos en una lnea del query final y apretamos la opcin de Llamar informe, el query nos pasar la informacion de la lnea al siguiente informe que llamemos, de manera que si el informe llamado tiene una pantalla de seleccin con campos que se visualizan en la query, los valores señalados se traspasarn de un informe a otro (drill-down).

Los diferentes informes a los que podemos llamar son:

Portafolio de informes

A continuacin deberemos informar el informe al que queremos acceder a travs de la query.

Investigaciones

Debemos informar la clase de aplicacin a la que va destinado el query. Aqu tenemos la opcin de comunicar la query con un informe del report writer entre otros (tambin con informes de bienes inmuebles,...). Esta opcin 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 slo hubiera un report writer o report painter en ese grupo de informes, en el caso de que ejecutaramos esta opcin, de la pantalla resultado de la query pasaramos a la del report painter/writer, ejecutndose directamente el report señalado.

Transacciones

Informamos el cdigo de la transaccin y pasar a sta los datos recogidos por la lnea de la query señalada, y ejecutar la transaccin 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 transaccin, 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 parmetros necesarios, sino se nos ejecutarn de forma errnea.

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 automtica tienes el cdigo 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 cdigo resulta una batalla perdida.