✒️ABAP La arquitectura de un programa de diálogo
ABAP La arquitectura de un programa de diálogo
La programación de diálogo
La arquitectura de un programa de diálogo
¿Que es un programa de diálogo o Module Pool?
Es un tipo de programa ABAP que está compuesto por una serie de pantallas o dynpros por las cuales el usuario navega interactúa con el programa y realiza determinadas acciones que terminan impactando en las tablas BD de SAP.
En la siguiente imagen describimos la idea que acabamos de mencionar sobre cómo funciona los programas de diálogo:
A los programas de diálogo también se los llama Module Pool ya que el programa, como dijimos anteriormente, esta 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 nombrer:
Menús
Tpitulos
Botones
Tablas de control
Textos
SubScreen
Campo 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 de programa deber ser Module Pool en lugar de Programa Ejecutable.
Para trabajar con programas de diálogo vamos a usar la transacción 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.
Transacción SE80 la usaremos para trabajar especialmente con los programas de diálogo.
Tal como observamos en la imagen anterior, los programas de diálogo comienzan con la palabra PROGRAM seguida del nombre del programa, mientras que los reportes de ABAP, comienzan con la palabra reservada REPORT.
Los programas de diálogo no pueden ejecutarse presionando la tecla F8 o haciendo clic en el botón ejecutar.
Para ejecutar un programa de diálogo debe tener una transacción de diálogo asociada al programa.
Los pasos para la creación de un programa de diálogo son los siguientes:
Primero debemos crear el programa de tipo Module Pool.
Luego en el programa ABAP creamos las pantallas o dynpros que intervienen en a transacción, especificando los datos que se visualizaran en cada dynpro, de que forma se visualizaran 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 usando la transacción 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 correspondiente a cada dynpro, es decir lo que debe hacer cada pantalla, en el PBO, es decir antes que se visualice la pantalla y en le PAI, es decir después de ue se hayan introducido los datos en la pantalla.
Las herramientas para la creación de pantallas y menús
ABAP nos proporciona 2 herramientas gráficas muy potentes para la creación de pantallas y menús. A ambas funcionalidades se accede desde la transacción SE80. Ellas son:
Screen Painter: mediante el cual creamos las dynpros y todos los objetos que componen e 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.
La lógica PBO-PAI: Como dijimos anteriormente, un programa de diálogo esta compuestos 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): Procesamiento Antes de la Salida por pantalla.
PAI (Process After Input): Procesamiento Después de la Salida por pantalla.
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, es decir los objetos que 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 hacer clic en un botón.
Aquí lo que haremos es validad 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.
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programaci?n abap.
Certificación Académica de Lisimaco Prieto