✒️ABAP La arquitectura de un programa de diálogo
ABAP La arquitectura de un programa de diálogo
1 | ¿ Qué es un Programa de diálogo o Module Pool ?
Es un tipo de programa ABAP que está compuesto principalmente por una serie de pantallas o dynpros
por las cuales el usuario navega mientras interactúa con el programa y realiza determinadas acciones.
En el siguiente gráfico describimos la idea que acabamos de mencionar:
Imagen 1.1 - Estructura general de un programa de diálogo
Se lo llama también Module Pool ya que el programa, como dijimos anteriormente,
está compuesto por dynpros y la lógica de cada dynpro está especificada en distintos módulos.
Dentro de cada dynpro se crearán o asociarán diferentes objetos para darles funcionalidades a las mismas.
Entre ellos podemos nombrar:
Menús
Títulos
Botones
Tablas de control
Textos
SubScreens
Campos de entrada y salida de datos
Un programa de diálogo se crea exactamente igual que un reporte,
con la excepción que el tipo del programa debe ser Module Pool en vez de Programa Ejecutable.
Para trabajar con programas de diálogo debemos utilizar la transacción SE80,
de modo que desde allí veremos en detalle todos los componentes de un Programa de diálogo.
Imagen 1.2 - Componentes de un programa de diálogo
Transacción SE80 (Administración Modul Pool)
Utilizaremos la transacción estándar SE80 "Navegador de objetos" para trabajar especialmente con los programas de diálogo.
Para ejecutar un programa de diálogo debemos crear una transacción del tipo de diálogo y asociarla al programa.
Los programas de diálogo no pueden ejecutarse presionando F8 o el botón ejecutar.
Debe crearse una transacción de diálogo y asociarla al programa para poder ejecutarlo.
Los pasos para la creación de un Programa de diálogo son:
Crear el programa ABAP Module Pool.
Crear en el programa ABAP las pantallas o dynpros que intervienen en la transacción,
especificando los datos que se visualizarán en cada dynpro, de que forma se visualizarán y cual es la lógica asociada a cada dynpro.
Crear el código de la transacción en la transacción SE93 asociado a nuestro programa.
Definir los menús de las dynpros especificando su contenido (teclas de función, botones, etc.)
Definir el flujo de las dynpros en el Module Pool.
Programar en el Module Pool los módulos correspondientes a cada dynpro, es decir lo que debe hacer cada pantalla, en el PBO,
es decir antes que se visualice la pantalla y en el PAI, es decir después de que se hayan introducido los datos en la pantalla.
2 | Herramientas para la creación de pantallas y menús
ABAP nos proporciona dos herramientas gráficas muy potentes para la creación de pantallas y menús. Ellas son:
SCREEN PAINTER:
mediante el cual crearemos las dynpros y todos los objetos que componen a estas.
MENÚ PAINTER:
mediante el cual crearemos los STATUS GUI.
3 | Lógica PBO - PAI de una dynpro en un programa de diálogo
Como dijimos anteriormente, un programa de diálogo está compuesto por dynpros.
La lógica de procesamiento de cada dynpro cumple con una metodología muy particular que consiste en la ejecución de dos eventos:
PBO (Process Before Output)
PAI (Process After Input)
El PBO
Es el evento que se ejecuta antes de que se visualice una dynpro.
Aquí definiremos los menús, los títulos, la inicialización y el contenido de los campos de la pantalla,
o sea que objetos mostraremos y como los mostraremos en la dynpro.
El PAI
Es el evento que se ejecuta luego de introducidos los datos en la dynpro y realizada alguna acción sobre ella,
como puede ser presionar un botón.
Aquí lo que haremos será validar los datos ingresados en la pantalla
y luego tomar alguna acción en base a nuestras validaciones que puede ser emitir un mensaje de error por pantalla
o seguir el flujo del procesamiento hacia otra dynpro.
Más adelante en la unidad veremos en detalle estos dos eventos y otros más que intervienen en el procesamiento de un programa de diálogo.
4 | Creación de un Module Pool
Para crear el programa de diálogo o Module Pool accedemos a la transacción SE38, ingresamos el nombre del programa,
por ejemplo ZPRUEBA_DIALOGO y presionamos el botón Crear, tal como hacíamos hasta ahora con los reportes.
Luego ingresamos una descripción para el programa y seleccionamos la opción Module Pool en el tipo de programa.
Finalmente guardamos la configuración del programa y asignamos una clase de desarrollo al mismo.
De ahora en más trabajaremos con la transacción SE80.
Todo el proceso anteriormente descrito también puede ser realizado mediante esta transacción.
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial