W Pub: ABAP Curso MP

Parte I

Un Modul Pool es un programa interactivo que contiene ms de una pantalla de interaccin o contiene elementos complejos del tipo tablas y pestañas o incluso que su disposicin no cumple las normas de los parameters y los select-options. Adems estos programas constan de una flow-logic diferente al tradicional.

Un Modul Pool se basa en la antigua tcnica de los pantallazos, es decir, se ejecuta un cdigo antes de mostrar la pantalla, se muestra la pantalla y por ltimo cuando el usuario ha acabado con la pantalla (ha pulsado una tecla de funcin) el control se devuelve otra vez al programa. Esto sigue hasta un bucle infinito, hasta que se le diga a la pantalla que no se muestre mas.

Esto procresos pre-post-pantalla se conocen con el nombre de PBO (Process Before Output) y PAI (Process After Input). Estos dos procesos son la lgica de las pantallas. Ya se ver que cuando se cree el Flow-Logic de la pantalla nos los crea automticamente. Para ello SAP utiliza las sentencias process, el process acaba cuando comienza otro process. Adems dentro de estas sentencias no se puede escribir ABAP estandar, sino que tienen que utilizarse otro sublenguaje (mismo ABAP) que slo va a ser utilizado aqui.

Como en los process slo estn pensados para controlar la lgica de las pantallas, slo utilizaremos directivas de pantallas, tales como:

  • FIELD, nos permite acceder a un campo.
  • CHAIN, agrupador.
  • MODULE, llama a un grupo de funciones.

Estas son las directivas fciles, ya veremos que para poder utilizar subscreens utilizaremos directivas del tipo CALL SUBSCREEN o tambin, para poder utilizar las tables control utilizaremos los LOOP.

En definitiva, en los Modul Pool se utiliza un pseudo-cdigo asociado a sus pantallas y que luego se convertir en ABAP puro y su funcionamiento es mediante dos procesos, un pre-pantalla, donde tendremos la opcin de rellenar los campos de pantalla y un post-pantalla donde seremos capaz de leer los datos que el usuario ha llenado.

Concepto SUB/SCREEN
Cuando trabajamos con un Modul Pool siempre vamos a trabajar con una pantalla o screen. Esta pantalla es nica en ejecucin y va a contenet todos los campos de salida y entrada, as como los que nosotros queremos des/activar en el momento de ejecucin. Si por algun motivo en nuestra pantalla es necesaria la presencia de otras pantallas, estas reciben el nombre de subscreen y por lo tanto tendrn su lgica correspondiente. Un ejemplo calor de subscreen es cuando necesitamos diferentes campos en las mismas coordenadas de pantalla o por ejemplo, cuando se utilicen carpetas o pestañas, estan requieren de un subscreen donde contener la informacin. Para poder pasar de una pantalla a otra tenemos:

Tambin contamos con una estructura interna conocida como SCREEN en la cual podemos hacer un LOOP y que nos devolver los atributos de los campos de que pintados en la pantalla.

Concepto TABLE CONTROL
Normalmente, cuando se crea un pantalla es muy habitual que en ella se quieran mostrar diferentes registros sin que la pantalla cambie en su totalida de aspecto. Ello se consigue mediante una TABLE CONTROL que nos crear como una prequeña subscreen donde nosotros podremos paginar los datos como si de un visor se tratase. Un ejemplo bien claro de una TC es la transaccin SM30, que nos permite visualizar el contenido de las tablas.

Una TC siempre se basa en una tabla interna donde contiene la informacin y que debe de ser relacionada en la definicin de datos con la directiva CONTROLS. A su vez, la definicin de esta TC contiene en su interior los campos que van a mostrarse, siempre en columnas. Como la TC contiene un nmero ilimitado de elementos estos deben controlarse con un campo de status igual que el okcode de las pantallas.

Igual que en las pantallas podemos utilizar los FIELD y los CHAIN dentro de cada registro de la TC podremos hacer lo mismo con un LOOP y esto se hace dentro de los process, tanto para el PBO como para el PAI.

Concepto TABSTRIP
O lo que es lo mismo: carpetas o pestañas. Si analizamos este complejo elemento grfico vemos que se trata solamente de una seleccin de botones sobre un borde en tres dimensiones. Y es lo es lo que vamos a hacer, simplemente ir añadiendo tantos botones como pestañas necesatimos, con la nica diferencia es que dichos botones estn vinculados a un objeto que se conoce como campo de referencia que va a ser el elemento que los va a controlar.

Una TABSTRIP es muy sencilla de controlar, lo nico que hay que tener presente es que dichas pestañas pueden ser activadas y desactivas a voluntad, que su contenido depende de las subscreen a las cuales estn relacionadas.