✒️ABAP / La arquitectura de un programa de diálogo Por Mauricio Yedro
ABAP La arquitectura de un programa de diálogo

Programa de Diálogo
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 que terminan impactando en las tablas de la base de datos de SAP.
En SAP hablar de dynpros y pantallas es lo mismo.
A los programas de diálogo también se los llama Module Pool ya que el programa, 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
• Titulos
• 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 lugar de Programa Ejecutable.
Para trabajar con programas de diálogo vamos a utilizar la transacción estándar SE80 correspondiente al Navegador de Objetos, en lugar de la transacción estándar SE38 correspondiente al editor ABAP, ya que en la SE80 podemos ver en detalle todos los componentes que forman parte del programa de diálogo.
Los programas de diálogo comienzan con la palabra reservada PROGRAM seguida del nombre del programa, mientras que los reportes de ABAP comienzan con la palabra reservada REPORT.
Los pasos para la creación de un programa de diálogo son los siguientes:
• Primero debemos crear el programa ABAP de tipo Module Pool.
• Luego en el programa ABAP creamos las pantallas o dynpros que intervienen en la transacción, especificando los datos que se visualizarán en cada dynpro, de qué forma se visualizarán y cuál es la lógica asociada a cada dynpro.
• A continuación, creamos el código de la transacción asociado a nuestro programa utilizando la Tx estándar SE93.
• Luego definimos los menús de las dynpros especificando su contenido, es decir las teclas de función, los botones, etc.
• También definimos el flujo de las dynpros en el module pool.
• Y, por último, vamos a programar en el Module Pool los módulos correspondientes a cada dynpro, es decir 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.
- PBO: “Procces Before Output” es el evento que se ejecuta antes de que la pantalla o dynpro se visualice. En este evento se declaran STATUS GUI y el TITEBLAR que se van a utilizar, se realizan las elecciones de los datos que posteriormente serán mostrados en la pantalla, se generan los reportes ALVs que serán mostrados en la dynpro.
- PAI: “Procces After Input” es el evento que se ejecuta en los programas de diálogo o module pools de ABAP, luego de introducidos los datos en pantalla y realizada alguna acción sobre ella como puede ser presionar un botón. Dentro del PAI se realizarán todas las validaciones de los datos introducidos en la pantalla. Para realizar estas validaciones se realizarán selecciones a las tablas de la base de datos.
Las 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. A ambas funcionalidades se accede desde la transacción SE80.
• Screen Painter: Mediante el cual creamos las dynpros y todos los objetos que componen a estas.
• Menú Painter: mediante el cual crearemos los STATUS GUI, los cuales están compuestos por las barras de menús, la barra de pulsadores y las teclas de función.
 
 
 
Sobre el autor
Publicación académica de Mauricio Ezequiel Yedro, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Mauricio Ezequiel Yedro
Profesión: Programador - Argentina - Legajo: FU93M
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Master ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Mauricio Yedro






Disponibilidad Laboral: FullTime


















