sábado, 4 de junio de 2011

Trabajando con datos de tablas en SAP

Hola, en este post voy a continuar de nuevo con el tema de SAP. Hará un poco más de un año que escribí 2 artículos sobre SAP Netweaver ABAP Trial Edition en los que explicaba un poco como instalarlo en una máquina virtual y como escribir nuestro primer programa en ABAP. Continuando con este tema quiero expresar varias ideas claras sobre SAP, debido a que con la cantidad de material que hay y lo poco orientado a principiantes a veces son muy duros los inicios, y también colgar varios recursos que considero interesantes para aprender poco a poco a dominar este ERP.

La primera idea clara es que si tenemos instalado en nuestra máquina virtual o en nuestro ordenador la versión SAP Netweaver ABAP Trial Edition sólo podremos usarla para fines de programación. Es decir si escribimos en el ‘command field’ la transacción SE38 (‘ABAP Editor’) no habrá problemas y la ejecutará, pero si por el contrario tú eres un consultor de SAP o trabajas como contable o controller con SAP, posiblemente entre muchas de las transacciones que tienes añadidas a menú favoritos esté la F-02, que sirve para contabilizar un apunte en el mayor (siempre que no vaya a una cuenta de IVA) -vamos el típico asiento contable de toda la vida-. Pues bien si escribes F-02 en el ‘command field’ y usas la versión ABAP Trial Edition verás que te dirá que dicha transacción no existe. Lógicamente la versión de SAP que tienes en tu trabajo tendrá todos los demás módulos instalados. Por ejemplo yo trabajo habitualmente con el módulo FI y en la versión de ABAP no lo tenemos instalado, ya que es una versión de prueba para testear ABAP.
Aquí adjunto una captura de dicha transacción por si alguien la quiere curiosear:

Pero, aquí va el primer puntazo del día, hay una versión de SAP llamada IDES que viene con todos los módulos instalados, así con varios mandantes para probar distintas configuraciones y varias empresas ya creadas con distintos planes de cuentas. Esta versión es interesante cuando, por ejemplo, no te puedas conectar remotamente desde casa al servidor de tu empresa a través del cual puedas logearte al sistema SAP a mediante el SAPGUI y puedas hacer pruebas en el mandante de desarrollo de las funcionalidades de las distintas transacciones que luego usarás en producción. Instalarlo en una máquina virtual es cuestión de paciencia ya que son 14 horas de instalación, 10 horas si tienes un i7 con 8 GB de RAM, pero lo bueno que tiene es que mientras se está instalando puedes crear snapshots y continuar con la instalación echando 2 horitas cada día. Hay un manual muy bueno cuyo enlace adjunto aquí donde se detalla el proceso de instalación.
Como verás en el manual los preparativos para instalar SAP IDES son similares a los preparativos para instalar SAP Netweaver ABAP Trial Edition: adaptador de bucle invertido, instalar el JRE 1.4.2.x de JAVA, cambiar el hostname o nombre del equipo para que no tenga más de 16 caracteres, verificar que en Windows/System32/drivers/etc/services no tenga entradas para los puertos 3200, 3600 y 8000 y añadir entrada una que ponga localhost y nuestra IP. Lo que no pone en el manual anterior y creo que es importante es crearse una cuenta de administrador en Windows con contraseña, cerrar sesión y usar esta cuenta de administrador para instalar SAP IDES. Además hay que tener en cuenta que tamaño del disco duro de nuestra máquina virtual no debe ser inferior a 120 GB.
Pues bien yo me voy a centrar por ahora en el uso de nuestro SAP Netweaver ABAP Trial Edition, y si nos vamos a la transacción SE16 (‘Data Browser: Initial Screen’) y nos posicionamos sobre el campo ‘Table Name’ y pulsamos F4 veremos que nos vienen creadas unas cuantas tablas de ejemplo, como la SFLIGHT, la SPFLI y la SBOOK, que son las tablas ya creadas del ‘Flight Data Model’ con el que vamos a practicar. Son las tablas para almacenar los datos de una compañía aeronáutica. Ésta sería la captura de la pantalla:

El diseño de estas tablas se puede consultar escribiendo en el 'command field' la transacción SE11 a través de la que accedemos al ‘ABAP Dictionary’.

Si seleccionamos el radiobuttom ‘Database table’ y escribimos el nombre de la tabla a consultar y pulsamos en el botón ‘Display’ veremos el diseño.

El problema es que si te vas de nuevo a la transacción SE16 y consultas los datos que tienen cada una de las tablas verás que están vacías.
El segundo puntazo del día es que si no queremos escribir en el ABAP Editor (transacción SE38) los INSERTS correspondientes para ir populando las tablas o a través de la misma transacción SE16 ir añadiendo los datos uno a uno, hay una opción más sencilla. Existe un programa creado en ABAP que nos permite rellenar las tablas con datos ficticios y así empezar a crear programas que interactúen esas tablas de ejemplo. Pues para añadir los datos a las tablas de ejemplo éstos son los pasos:
1º Ir con la transacción SE38 al ABAP Editor.
2º Situar el cursor en la caja de texto llamada ‘Program’ y pulsa F4 para buscar en la lista de programas que aparecerá uno que se llama SAPBC_DATA_GENERATOR.

Una vez seleccionado pulsamos en el botón ‘Display’ para visualizarlo. En el editor pulsamos en el botón ‘Direct Processing’ o F8 (que es un icono con una especie de llave inglesa) y entonces se nos compilará el programa y se mostrará una pantalla en la que podremos definir algunas opciones como la cantidad de datos que queremos que se genere.

3º Pulsamos en F8 o al icono de ‘Execute’ para ejecutarlo y así rellenar las 3 tablas con datos ficticios.
Pues bien en este vídeo voy escribir un pequeño programa que me permitirá consultar los datos de la tabla SFLIGHT y mostraré por pantalla el resultado de la consulta. Explicaré el funcionamiento del Data Dictionary hablando de dominios, elementos de datos y tablas y dejo para más adelante explicar como diseñar la definición de una tabla en el Data Dictionary y luego activarla para crearla físicamente en la base de datos.
Pues bien en el siguiente vídeo voy a tratar todos estos temas y algunos más de una forma más visual.