✒️ABAP La arquitectura de un programa de diálogo
ABAP La arquitectura de un programa de diálogo
PROGRAMA DE DIALOGO O MODULE POOL
Es un tipo de programa ABAP que esta compuesto principalmente por una serie de pantallas o dynpros por los cuales el usuario navega mientras interactua con el programa y realiza determinadas acciones.
Se lo llama tambien module pool (tipo de programa ABAP que esta formado por una serie de dynpros (es el sinonimo de pantalla dentro de SAP, Tiene asignado un numero compuesto por cuatro digitos numericos) o pantallas por lo que el usuario interactua mientras navega. Cada dynpro tiene una logica de procesamiento que esta especificada en modulos) ya que el programa, como dijimos anteriormente, esta compuesto por dynpros y la logica de cada dynpro esta especificada en distintos modulos.
Dentro de cada dynpro se crearan o asociaran diferentes objetos para darles funcionalidades a las mismas. Entre ellos podemos nombrar:
- Menus
- Titulos
-Botones
-Tablas de control
-Textos
-Subscreens
-Campos de entrada y salida de datos
Un programa de dialogo se crea exactamente igual que un reporte con la excepcion que el tipo del programa debe ser module pool en vez de programa ejecutable.
Para trabajar con programas de dialogo debemos utilizar la transaccin SE80 (navegador de objetos para trabajar especialmente con los programas de dialogo), de modi que desde alli veremos en detalle todos los componentes de un programa de dialogo.
Para ejecutar un programa de dialogo debemos crear una transaccion del tipo de dialogo y asociarla al programa.
Los programas de dialogo no pueden ejecutarse presionando f8 o el boton ejecutar. Debe crearse una transaccion de dialogo y asociarla al programa para poder ejecutarlo.
Los pasos para la creacion de un programa dialogo son:
- Crear el programa ABAP module pool.
- Crear en el programa ABAP las pantallas o dynpros que intervienen en la transaccion, especificando los datos que se visualizan en cada dynpro, de que forma se visualizaran y cual es la logica asociada a cada dynpro.
- Crear el codigo de la transaccion en la transaccion SE93 asociada a nuestro programa.
- Definir los menus de las dynpros especificando su contenido (teclas de funcion, botones, etc.)
- Definir el flujo de las dynpros en el module pool.
- Programar en el module pool los modulos correspondientes a cada dynpro, es decir lo que debe hacer cada pantalla, en el PBO (Process Before Output es el evento que se ejecuta antes de la visualizacion en pantalla de una dynpro), es decir antes que se visualice la pantalla y en el PAI (Process After Input es el evento que se ejecuta luego de introducirdos los datos en pantalla y realizada alguna accion sobre ella como puede ser presionar un boton), es decir despues de que se hayan introducido los datos en la pantalla.
Dynpro o dynamic program es una pantalla en sap
1. definir las caracteristicas basicas o atributos de la pantalla (como el numero de la dynpro, descripcion breve el tipo de la dynpro y otros atributos como la dynpro siguiente)
2. diseñamos el formato de la pantalla se incluye ( botones, campos de entrada/salida checkboxing, radiobuttons, textos, etc.)
3. definir los atributos de los campos o la lista de los campos en donde definimos para cada campo que se muestra en la pantalla si es de entrada o entrada/salida cual es su longitud, etc.
4. Escribimos la logica del flujo de la pantalla que es donde escribiremos el codigo ABAP que
le brindara las funcionalidades a las dynpros.
-----------------------------------------------------------------------------------------------
HERRAMIENTAS PARA LA CREACION DE PANTALLAS Y MENUS
ABAP nos proporciona dos herramientas graficas muy potentes para la creacion de pantallas y menus.
Ellas son:
- Screen painter: crearemos las dynpros y todos los objetos que componen a estas.
- Menu painter: crearemos los status gui (es un componente de un programa ABAP que sirve para proporcionarle al usuario un amplio rango de funcionalidades en la pantalla).
Podemos acceder al menu painter en la transaccion estandar SE41 podremos editar todas las caracteristicas de los status gui, los titulos, las barras de menus con solo introducir el nombre del programa abap y el nombre del status.
----------------------------------------------------------------------------------------------------
LOGICA PBO - PAI DE UNA DYNPRO EN UN PROGRAMA DE DIALOGO
Un programa de dialogo esta compuesto por dynpros. La logica de procesamiento de cada dynpro cumple con la metodologia muy particular que consiste en la ejecucion de dos eventos:
PBO (PROCESS BEFORE OUTPUT) : Evento que se ejecuta antes de que se visualice una dynpro. Aqui definiremos los menus, los titulos, la inicializacion y el contenido de los campos de la pantalla o sea que objetos mostraremos y como los mostraremos en la dynpro.
PAI (PROCESS AFTER INPUT) : Evento que se ejecuta luego de introducidos los datos en la dynpro y realizada alguna accion sobre ella, como puede ser presionar un boton.
Aqui lo que haremos sera validar los datos ingresados en la pantalla y luego tomar alguna accion con base a nuestras validaciones que puede ser emitir un mensaje de error por pantalla o seguir el flujo del procesamiento hacia otra dynpro.
----------------------------------------------------------------------------------------------------
CREACION DE UN MODULE POOL
Accedemos al a transaccion SE38 ingresamos el nombre del programa, por ejemplo zprueba_dialogo y presionamos el boton crear, tal como haciamos hasta ahora con los reportes.
Luego ingresamos una descripcion para el programa y seleccionamos la opcion module pool en el tipo de programa.
Finalmente guardamos la configuracion del programa y asignamos una clase de desarrollo al mismo.
El proceso anteriormente descrito puede ser realizado medniante la transaccion SE80.
 
 
 
Agradecimiento:
Ha agradecido este aporte: William Lemus
Sobre el autor
Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Guillermo Rodriguez Villate
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WM49P
✒️Autor de: 103 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Oscar Rodriguez