W Pub: ABAP Curso FGRP

Introduccin

SAP nos facilita una herramienta extraordinaria para poder realizar informes de una forma sencilla y rpida, es la herramienta ideal para que el programador pueda evitarse de hacer el 25% de los listados que le pide tanto el cliente como el consultor. No obstante, aunque sea una herramienta propia de usuario final, requiere de una configuracin por parte del administrador del sistema o del programador, igual que las areas funcionales del query. Pero a diferencia de los Query, los Rerport Painter son mucho ms atractivo, haciendo que el usuario pueda hacer grficas, totalizaciones e infinidad de operaciones ms que el programador debera de programar en sus listados pero que ya estan incorporadas.

Nota: Existe tambin otra herramienta que se llama Report Write y que est vinculada con el Report Painter, utiliza las mismas herramientas de creacin que el Report Painter a diferencia que la forma de trabajar de este es mucho ms engorrosa.

Conceptos

⚠ </a>

Antes de comenzar a hablar de los Report Painter (RP), hay que tener ciertos conceptos claros,

  • Biblioteca, es el nombre que recibe la "tabla" de trabajo, all donde estan almacenados los datos, pudiendose ser una simple tabla de SAP o una vista compleja.
  • Caracterstica, sern todos aquellos campos de la biblioteca que sean literales
  • Ratios, al contrario que las caractersticas son todos aquellos campos de la biblioteca que son numricos o de importes.
  • Variables, son aquellos valores que pueden ir cambiando de registro en registro cuando se leen los datos, incluso son aquellos valores que pueden ser pedidos de cara al usuario antes de la ejecucin del RP.
  • Set, Los set son utilizados para agrupar valores o rangos de datos o predefiniciones.
  • El Informe es el resultado de la creacin de un RP.
  • Todo informe debe de estar asociado al Grupo de Informes, esta es la unica forma de poder ejecutar un RP

Configuracin

Antes de llegar a trabajar realmente con el gestor de RP, deberemos crear nuestra propia biblioteca, para ello accederemos a la transaccin GRCT, aqu podremos crear la biblioteca, las caracteristicas y los ratios, as como prepararlos para que realicen funciones especiales.

Biblioteca

Lo primero es crear una Biblioteca asociandolo a una tabla determinada, en el ejemplo nos apoyaremos sobre una ya creada: CCSS.

Su definicin es bien secilla, le indicamos que nombre de tabla vamos a utilizar, la descripcin de la misma, la clase de tabla que podemos obtener, si necesitamos una estructura de traspaso para poder trabajar con ella, cual ser la rutina que se encargar de obtener los textos, si necesitamos otra estructura adicional (como si se tratase de un join), as como las rutinas de llanado de la misma y para finalizar, cual ser el cdigo fuente que almacenar estas y todas las dems rutinas que utilizaremos ms adelante para definir nuestra biblioteca.

Como ya os dareis cuenta, la mayora de la configuracin de las bibliotecas disponen de user-exits para que el propio usuario pueda meter su cdigo fuente, de tal forma que la obtencin de los datos se puede realizar de forma tan compleja como requiera el formulario final.

En este caso, se utiliza el programa SAPFK21R como contenedor de las rutinas, por ejemplo, la rutina E14_AUTHORITY_CHECK, que ser la rutina que validar cada uno de los registros, estar contenida en dicho programa.

Caractersticas Especiales

Estas caractersticas especiales nos permiten definir operaciones con nuestros datos, as como crear campos nuevos que luego podremos utilizar en nuestros listados.

Podemos observar que esta pantalla est completamente preparada para que el programador pueda preparar su cdigo para la recuperacin de los valores. Un campo bien importante es del de Tipo de Campo que nos dice de que tipo de campo estamos hablando, de un contador, de un secuencial, etc.

Ratios

Ahora podremos definir los ratios que podamos necesitar, as como hacer sumatorios en serie de los ya existentes.

Una de las carecteristas es que si poseemos un campo del tipo WKnnn donde nnn son nmeros correlativos, podemos hacer que estos se sumen de una forma automtica, tal como est reflejado en el ejemplo.

Una vez conseguido toda esta configuracin nuestra biblioteca ya estar disponible para que el usuario final pueda tratarla, tan slo bastar un ltimo trmite final que consiste en crear la biblioteca. Para ello accederemos a la seccin de bibliotecas de FGRP, donde uniremos la tabla que acabamos de crear para el RP con el nombre de la biblioteca que realmente vamos a trabajar. As le podremos indicar que campos estaran disponibles para las diferentes bibliotecas que utilicen la misma tabla.

Recordad, la parte ms complicada y laboriosa es la creacin de dichas tabla, la creacin del RP como veremos a continuacin es realmente sencillo.

Herramientas

Antes de diseñar un RP o en el proceso del mismo, es posible que necesitemos apoyarnos en ciertas herramientas que nos proporciona el entorno de RP, de entre las cuales podemos contar con:

Variables

Las variables como su nombre indican no son mas que zonas de memoria destinadas a contener informacin, dichas zonas pueden ser llenadas por el usuario o por las rutinas de apoyo del propio RP, de estamo forma podemos hacer de nuestros listados algo mucho ms dinmico.
Estas pueden ser de tres tipos diferentes:

  • Valor,Por lo cual tendran un valor fijo.
  • Frmula, Ser el resultado de una frmula, incluye rutinas user-exit para vincular cdigo ABAP, as como constantes tipo: sy-datum
  • Set, ser una variable que contendr a un Set

</td>

</tr>

</table>

Set

Los set son algo ms complejo de las variables, pero en su esencia sirven para agrupar rangos de datos.Estas pueden ser de cuatro tipos diferentes:

  • Bsico,Contendr un rango directo de un mismo tipo.
  • Unidimensional, pueden contender Sets Bsicos de un mismo tipo
  • Multidimensional, Engloba a los dos anteriores.
  • Set de Datos, contiene columnas predefinidas.

LayOut o Plantilla

No es ms que la definicin del formato del RP, es decir, cuantas columnas contendr, cuantas lineas por pgina, como sern los totales, los importes, donde iran los signos, los ttulos, etc. Todo aquello que vamos a dejar que sea por defecto en el momento de diseñar el RP.

Report Painter

Una vez que ya hemos creado la biblioteca, bastar con crear un primer informe para comenzar a trabajar, obtaneremos por uno ya creado para explicaros como funciona.

Esta es la forma de trabajar del RP, mediante la inclusin de lineas (caractersticas) con la conjuncin de las columnas (ratios), cuando hagamos doble-click, sobre una linea o sobre una columna, nos aparecer una lista donde podemos escoger que tipo de dato queremos colocar, as como que valores queremos darle por defecto o que variables o SET va a utilizar.

Como vemos en el ejemplo superior se le ha dado un valor por defecto a la cuenta, pero tambin podriamos haber optado por valores variables o Set, haciendo que estas aparecieran a petecin del usuario.En este ejemplo se ha solicita la inclusin de una caracterstica, no obstante si hubieramos hecho el doble-click sobre una columna nos aparecera un dilogo donde podremos seleccionar si queremos un ratio o una Frmula. En el caso de ser la primera opcin simplemente escogeriamos el ratio desea, en el caso de querer hacer operaciones con las columnas que ya tenemos dibujadas en el RP, bastara con seleccionar el mtodo de Frmula.

Como se puede ver el aspecto de la formula es bien sencillo, tal como una calculadora, al lado izquierdo podemos observar las columnas que ya han sido creadas, mientras que en el lado derecho tenemos las operaciones ms comunes. El problema consiste en que slo se pueden hacer operaciones con aquellos datos que esten dentro de una misma linea, pero a veces nos interesa hacer operaciones con otros datos flotantes dentro de nuestro propio RP, por ello, si hacemos doble-click sobre el dato en cuestin, no aparecer un dilogo indicandonos el estado de la celda, marcado o desmarcado, por ello, cuando una celta est marcada, significa que puede ser utilizada en cualquier formula y no est restringida a operaciones dentro de la propia lnea.

Es posible conseguir sumar columnas que no esten en nuestro RP, para ello utilizaremos el truco de borrado de las columnas, imaginemos que tenemos igual que Windows una papelera de reciclaje y que en ella vamos depositando columnas en las cuales podemos utilizar para hacer operaciones, slo cuando vaciemos la "papalera de reciclaje" estas columnas desapareceran totalmente.

Tambin podemos agrupar columnas utilizando el dgito que aparece encima de esta, el proposito de esto es hacer que ciertas columnas posean diferentes atributos, por ejemplo que esten expresadas en millones, que tengan el signo a la derecha, etc. Simplemente agrupandalos por grupos numricos (0..9) esta tendrn las mismas propiedades.

Hasta aqu llegara la creacin del RP, algo muy sencillo a base de pulsaciones del ratn. Hay que destacar tambin, que el usuario puede interactuar con el listado, obligando a que este realice ciertas busquedas dependiento de los valores que se le pasen, como si se tratara de un parameter o un Select-Options Para que el usuario puede escoger ciertos datos como seleccin de pantalla, bastar con darle una Seleccin/Variacin, aqu añadiremos las caracteristicas que sern de seleccin, no obstante estas caractersticas no podrn utilizarse dentro del RP.

Vemos en el ejemplo como se permite que el usuario pueda seleccionar cierto datos antes de la ejecucin del RP, as mismo, vemos como el Centro de Coste va a estar desglosado. Eso significa que nuestro listado va a ser dinmico y se plegue o desplegue dependiendo de la cantidad de datos que tenemos agrupado

Bloques

Denominamos un bloque a la creacin de otro RP dentro del mismo RP manteniendo las mismas caractersticas que su predecesor pero pudiendo alterar las columnas. Esto puede sernos til sobretodo, cuando deseemos que cierta informacin aparezcan en otra pgina que la actual o cuando sencillamente toda la informacin no nos aparezca en la misma pgina.

Secciones

Las secciones tienen la misma utilidad que los Bloques, pero con la diferencia de que cuando se crea una nueva seccin, est no es capaz de copiar las lineas de su predecesor y por lo tanto estara frente a un RP completamente virgen. De esta forma podemos tener diferentes tipos de RP pero con una misma seleccin de datos.

Y llegados a este punto, ya lo ltimo que nos queda por explicar sera la parte de enbellecer el listado, con cabeceras, titulos, portadas, y todo lo que el usuario pueda imaginar, bueno casi todo ;) Tambin podemos embellecer las lineas, las columnas.

Cuando por fin, demos por terminado nuestro RP, podemos tratar de ejecutar a modo de pruebas, mediante la creacin de un grupo de informes en el cual vincularemos nuestro informe. Esta es la nica forma para ejecutar un RP. Esto lo que va ha hacer es crear cinco programas ABAP que contendrn el cdigo fuente de nuestro RP. Un grupo de informes, adems de poder ejecutar RP puede ejecutar otro tipo de acciones, tales como reports, query, etc. Incluso, igual que los Query, podeos hacer de nuestros listados mucho ms interactivos haciendolos navegables con el doble-click en los datos.