MANUAL DE QUERYSIntroducció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: y y y 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. y y y y 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 3. 2. hay que seguir los siguientes pasos: 1. Para definir un grupo de usuarios hay que seguir los siguientes pasos: 1. . Para agregar usuarios al grupo hay dos posibilidades: uno a uno. 4. En el campo Grupo usuarios se introduce el nombre del grupo que se quiere definir y se elige la acción crear. Para definir un área funcional. un grupo de autorización y una clase de área funcional. Áreas funcionales Las áreas funcionales nos permiten hacer una preselección de los datos que aparecerán en los queries. Por Utilidades p Query ABAP/4 p Grupos de usuarios se entra en la pantalla de definición de grupos de usuarios. entrando el usuario en el campo usuario y accionando Asignar usuario. El sistema pide únicamente una descripción larga del grupo. Es deber del funcional o del propio clie nte crear estas areas funcionales. que aparece al hacer click sobre Asignar usuarios y grupos funcionales. y Base de datos lógica: El área funcional trabaja sobre una base de datos lógica. Entrar en ABAP/4 Workbench (menú Herramientas). Se puede acceder directamente con la transacción SQ02. En la d efinición del área funcional especificamos qué tablas intervendrán en el query y qué campos. 2. se introduce en el campo Área funcional el nombre que se le quiere dar y se acciona el botón crear. Se deben crear las area con suficiente visión de futuro para hacerlas lo más ampliadas posibles. Entrar en ABAP/4 Workbench (menú Herramientas). o en la pantalla de asignación de usuarios. Se puede acceder directamente con la transacción SQ03. Para acceder a la pantalla de definición de áreas funcionales. Aparece una primera pantalla en la que se asocia al área una denominación .realice sobre el query serán visibles para todos los usuarios del grupo. Por Utilidades p Query ABAP/4 p Áreas funcionales se entra en la pantalla de definición de Áreas funcionales. Para definir una condición. El procedimiento a seguir es el siguiente : 1. están los grupos funcionales y por otro. . Las demás tablas pueden indicarse cuando se llama las funciones Continuar (al crear un área funcional nueva) o Unir. aparece una pantalla en la que se deben indicar las tablas implicadas en la unión y las condiciones de la unión. Aparece un nuevo concepto: el grupo funcional. Si bien una unión de tablas abarca siempre varias tablas. La primera tabla en la unión es la tabla citada arriba en el campo Tabla. Se utiliza para presentar al usuario una preselección de los campos. Por un lado. Para esto. el resultado es una secuencia de registros con estructura plana. Un grup o funcional no es más que un conjunto de campos de las tablas implicadas en el área funcional. marcamos dos tablas de la lista de tablas y hacemos click sobre definir condición. La estructura de estos registros es una barra de campos. veremos una pantalla con todos los campos de las dos tablas implicadas en la unión. 2. En esta pantalla se definen los campos que han de ser iguales para la unión de las tablas. Lectura directa : Todos los datos están contenidos en la tabla indicada en el campo Tabla. Datos secuenciales : Los datos se leen de un pool de datos secuencial. Definir los grupos funcionales. y y y Al crear un área funcional con unión directa de tablas. se especifican los campos de las tablas que serán visibles en el área funcional. a la derecha de la nueva entrada. Si activamos el botón de especificar condiciones . Un grupo funcional combina diferentes campos en una misma unidad. hacemos click sobre el icono de crear y entramos el nombre del área funcional. las tablas del área funcional.y 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. Aparece en el panel de la derecha ( condiciones de enlace) una nueva entrada. A continuación. 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. en los que se constan de modo seguido los campos implicados en la conexión de las tablas. Obtención de datos mediante programa: La lectura de los datos se describe a partir de un programa separado. ) con ello podremos incluir codigo antes y después de la selección de datos. Los campos que no tengan un grupo funcional asignado. Por ultimo.. se define el formato de salida (número de filas y columnas). Query Una vez que tenemos el grupo de usuario definido y pertenecemos a él. Para asignar el grupo funcional.3. La primera pantalla que aparece es la de datos generales. no serán visibles a la hora de definir el query. En la siguiente pantalla se elige qué grupos funcionales intervendrán en el query. Al crear un query. Si el usuario pertenece a mas de un grupo. . Seguir la ruta de menú Utilidades p Query ABAP/4 p Queries. colocar authority -check o acceder a otras tablas. Esta pantalla determinará la posibilidad de trabajar con más o menos campos. Asignar a los campos de las tablas un grupo funcional. 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.. En ella se define el título del query y una explicación del mismo. justo en este momento ya somos capaces de crear nuestros query.. excel. Entrar en ABAP/4 Workbench (menú Herramientas). Se puede acceder directamente con la transacción SQ01. Para pasar a la siguiente pantalla. hacemos click sobre el icono p que aparece en la barra de status.).. se debe seguir el siguiente procedimiento : 1. Para entrar en el entorno de definición de queries. puede acceder a las queries de otro grupo al que pertenezca. que el area funcional ya ha sido creada y los campos ya estan disponibles para extraer nuestros listados. EIS. si el grupo de usuarios tiene más de un área funcional asignada. En la pantalla se listarán las queries asociadas a un grupo de usuarios.. se puede determinar si se quiere un traspaso de información a algún otro sistema (word. 2. con la opción cambiar grupo de usuario (shift + F7) en la barra de iconos. Existe una opción que nos permite incluir codigo fuente dentro de los query (Coding. etc. 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. Por otro lado. el sistema pide una preselección del área func ional en la que se quiere definir el query. Con los botones de crear y modificar accedemos a las pantallas de actualización de queries. 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. Norma de cálculo Puedes determinar el valor de un campo de las siguientes maneras: y y Usando una fórmula. como mínimo tenemos que visualizar un campo de esa tabla en el listado. para que realice correctamente la selección de datos de una tabla secundaria. por lo tanto. Entrando un valor en la pantalla de selección (Entrada en imagen de selección) y En este caso. La finalidad de una query es hacer un listado. la última pantalla nos permite definir si queremos que en el query se haga selección por campos mediante select options. por lo tanto. Esto no se puede realizar con símbolos o iconos. la query no accede a esa tabla y. la selección del resto de campos de esa tabla la hará correctamente. A parte de los campos de selección. Para finalizar con la definición de parámetros generales. en la pantalla de Selección de campos. Nota: En el caso de Bases de Datos Lógicas. el campo local es tratado como un parametro cuyo valor está determinado por una entrada en la pantalla de selección. no realiza la selección correspondiente. sea ignorada). ignorará lo que le hayamos informado en la pantalla de selección. Sino.En la siguiente se seleccionan los campos de dichas áreas funcionales que aparecerán. Para crearla se utilizan las reglas matemáticas usuales que contienen operandos y operadores. las queries también nos permiten crear campos locales. Si no es así. Lista básica . Para definir un campo local tenemos que ir por: Tratar p Campo Local p Crear. Para forzar un valor en la pantalla de selección tendremos que activar la opción de Obligatorio. Si en lugar de listar el campo de la tabla primaria listamos el de la secundaria. La tabla primaria está relacionada directamente con la secundaria mediante uno o varios campos en común. Esto nos permite generar nueva información a partir de los campos del área funcional sin tener que incluir un campo adicional. 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. Dist. Así. Además. En caso contrario. Recuento: Indicador con el cual se cuentan las veces que son leídos los campos durante la obtención de datos. en el ejemplo. A nivel global. se le especifica si la lista debe ir enmarcada. en el caso de que exista clasificación. a continuación. será descendente. Suma : Para obtener una suma parcial de los campos a sumarizar a cada cambio de grupo. y todas aquellas que tengan el mismo código de trámite aparecerán ordenadas por código de circuito. : Si no está activado. tendremos un listado clasificado por código de trámite a un primer nivel y . creamos niveles de grupos. Si decidimos clasificar la lista por algún campo. Para comenzar a definir un query deberemos empezar por: y y Línea : En qué línea física situamos el campo. Es decir. 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. la siguiente pantalla que nos aparecerá hará referencia únicamente a estos campos . Así. una clasificación. se hará una clasificación ascendente. Se da salida al número total al final de la 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 . : Con este checkbox activado. es decir. sabremos que el campo con secuencia 7 irá antes del 12. 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. Txt. por código de circuito. si tenemos dos campos en una misma línea con secuencias 7 y 12. primero saldrán las líneas ordenadas por código de trámite. La información es numérica. 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). y y y y y y . y no tiene que ver con la posición física del campo dentro de la línea. se visualiza un texto al principio de cada nivel de grupo. La lista básica no es más que una forma de obtener un listado de forma lineal de forma rápida y sencilla. Secuencia: Marca un orden entre los campos de una misma línea. es decir al cambiar los conceptos de clasificación. Cabec. Si se ha activado el checkbox Txt.y 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.Pág. Lin. Condic : Si se indica el número de otra línea.. LinBla. : Si se quiere insertar un salto de página antes de esta línea. Blanco A : Número de líneas a visualizar después de la línea actual. En caso de dependencias entre líneas es necesario respetar la estructura de la base de datos correspondiente. Pág. 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. se pueden fijar los siguientes parámetros: y y y y y y y y y y y . Nva.de la pantalla anterior.nv. la línea actual sólo será visualizada se la otra línea también es visualizada. : Inserta una línea en blanco antes de la visualización de un nuevo grupo. : Inserta un salto de página antes de cada nuevo grupo. siempre y cuando una de las líneas a continuación ocasione el cambio de página. Marc. en la que se especifica el texto que ha de aparecer al principio de cada nuevo grupo. : Para enmarcar a nivel de grupo.Para cada campo que aparece en el query. en la cabecera del listado (o subcabecera de totales) nos salga escrito : Código de Cliente: XXXXXXX. : Marcar este campo para visualizar la línea correspondiente en la cabecera de la página en un cambio de página. la siguiente pantalla será la de Textos de niveles de grupo. por ejemplo. Es como asociar una máscara al campo. Blanco Ant : Número de líneas en blanco a visualizar antes de la línea actual. que cada vez que nos salga un código de circuito nuevo. A continuación está la pantalla Opciones de salida campo. Pág. Color : color de la línea. cuantos caracteres del campo se quieren visualizar. Es necesario que hayan campos alfanuméricos y numéricos. Por ejemplo. La estadística se añade. Dentro de la máscara será suplida cada línea de subrayado ( _ ) por una posición del valor del campo. Si se desea modificarlos. basta con accionar el botón Estadísticas. o o o o y La siguiente pantalla es la pantalla de definición de máscaras para campos.o Long : Longitud de visualización del campo. si el campo Ejercicio es de cuatro posiciones. hay que activar este checkbox. Pies de página : Pies de página del query. Finalmente está la pantalla de Cabecera de lista básica. toma el final del campo anterior. Pos : Posición absoluta del campo en la línea. y y y Cabeceras de columna : Justo debajo de la cabecera de página.>) que encierran la máscara no serán visualizados. y Estadísticas Las estadísticas permiten operar con los campos numéricos de las grupos funcionales utilizados en el query. aparecen los textos que se visualizarán en las cabeceras de columna. normalmente. si se ha seleccionado algún campo en el query con máscara de salida. basta con hacer doble click sobre el texto y aparecerá un recuadro para cambiarlo. Sólo se . Los paréntesis (<. 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' . sin máscara se visualizará '2000'. Para acceder a las pantallas de definición de estadísticas.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. es decir. <> 0 : Si este checkbox está activado.En ella se define: Cabecera de la página : Cabecera de las páginas del query. En la primera pantalla se seleccionan los campos que se quieren en la estadística. Color : Color del campo dentro de la línea. Si no se especifica ningún valor. Masc: Si se quiere especificar una máscara de salida para el campo. a continuación del query básico. si el valor es igual a cero no se visualiza. siendo efectuada la asignación de izquierda a derecha. cada una de ellas debe tener su propio título. Los totales son siempre calculados para campos numéricos. Ordena los resultados de salida de la estadística en función del orden de clasificación. %: Este campo se utiliza para visualizar el % que representa una línea respecto al total. Rf : Al marcar este parámetro se generarán automáticamente sumas parciales para ese campo. se debe determinar lo s siguientes parámetros : y Nº : Este parámetro marca el orden de los campos que aparecen en la estadística. Como puede haber varias estadísticas. . Para cada campo numérico seleccionado. Cla : Orden de clasificación. Si el indicador está activado. Por esto mismo también puedes determinar valores medios. también se deben señalar: y y Unidad: en la que queremos los resultados (moneda). Lg : Longitud de salida. Red : Factor de redondeo.podrá hacer nueve listados de tipo Estadísticos en un mismo Query. Texto: texto a visualizar en la estadística. se podrá ver cuantos registros se han considerado en la suma. si una línea es una suma parcial. Ctd: Se aplica a los campos numéricos. y y y y y y y y En el caso de campos numéricos. Di : Si se quiere que el orden de salida sea ascendente o descendente. 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. tantas veces como campos numéricos con este indicador activo haya. porcentajes y total de entradas seleccionadas. Pr: Para que se calcule el promedio del campo numérico. es decir. Otra opción que nos permiten las estadísticas es la de ordenarlas según el criterio que queramos. La estadística se puede ir plegando y desplegando con sumas parciales de los campos numéricos. en la estadística aparece la cantidad de entradas contempladas en la línea. Si estando en la pantalla inicial de modificación de query nos colocamos en: Pasar a p Asignar informe. al realizar el listado otras posibilidades se nos ofrecen. el resultado será un listado ordenado de los productos más vendidos. en el query se pueden introducir hasta diez listas ranking. Cr : Si es el criterio por el que se desea ordenar. Se especifican los campos alfanuméricos por los que se quiere agregar el campo numérico. en los que veremos las unidades vendidas agregadas por producto. Lg : Longitud de visualización.Lista ranking Además de la lista básica y las estadísticas. Una lista ranking es un listado ordenado por un campo numérico... por ejemplo. Si indicamos. vendidas numérico. Lg : Longitud de visualización. debemos informar el grupo de usuarios y la query a la que queremos llamar. Llamar informe Una query la podemos enlazar con otros reports. otras querys.. un campo producto alfanumérico y un campo uds. Para cada campo numérico se define : y y y Nº : Posición que ocupa en la fila. y y En los campos alfanuméricos. Si lo que queremos es conectar esta query con otra query. Red : Factor de redondeo. se determina : y y Nº : Posición que ocupa en la fila. Asc: Si la lista ranking debe ser ordenada en criterio ascendente o descendente. a pretamos la opción de . Otras opciones Una vez tenemos ya creada la query. Si lo que queremos hacer no es asignar una query sino otro tipo de informe. En los campos numéricos se determina: y Unidad: moneda en la que está expresado el resultado. pues los grabará. Investigaciones Debemos informar la clase de aplicación a la que va destinado el query.Otro tipo informe y nos saldrán las distintas opciones que tenemos. Si nos colocamos en una línea del query final y apretamos la opción de Llamar informe .. de la pantalla resultado d e la query pasaríamos a la del report painter/writer. 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... Para ello debemos informar el grupo de informes que queremos ejecutar. Aquí tenemos la opción de comunicar la query con un informe del report writer entre otros (también con informes de bienes inmuebles. etc. ejecutándose directamente el report señalado. visualizaremos el informe. en el caso de que ejecutaramos esta opción. Informes report writer Comunicamos la query con un report writer. y ejecutará la transacción dire ctamente. Esta opción la podemos hacer desde aquí o directamente desde el punto 3. 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. si da de alta datos. Si ésta da como resultado un informe.). los valores señalados se traspasarán de un informe a otro (drill -down). En el caso de que sólo hubiera un report writer o report painter en ese grupo de informes. el query nos pasará la informacion de la línea al siguiente informe que llamemos. Informe ABAP/4 . de manera que si el informe llamado tiene una pantalla de selección con campos que se visualizan en la query. Una query se puede comunicar con otros informes. No obstante. al igual que la transacción. con unas pequeñas modificaciones podemos disponer de él. . 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. su complijidad es tan endiablada que meterse en su código resulta una batalla perdida. sino se nos ejecutarán de forma errónea. 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. se ejecutará con los datos que le enviamos desde el query. ABAP/4-Query De una query podemos pasar a otra query de diferente grupo de usuarios.Informamos el nombre de un report y éste. simplemente indicando el nombre el grupo de usuarios y el nombre del query.