2. - Programación de diálogo
2.1. - Arquitectura de un programa de diálogo
2.1.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.
También, son denominados “Module Pool”, ya que está compuesto por dynpros y la lógica de cada dynpro está especificada en distintos módulos. Dentro de cada dynpro, se crearan o asociarán diferentes objetos para darles funcionalidades a las mismas.
1. Menus
2. Titluos
3. Botones
4. Tablas de control
5. Textos
6. Subscreens
7. Campos de entrada y salida de datos
Un programa de dialogo se crea igual que un reporte, con la excepción que el tipo de programa debe ser Module pool en lugar de programa ejecutable. Para trabajar con programas de diálogo, se debe utilizar la transacción SE80, donde se verán los detalles de todos los componentes de un programa de diálogo.
Para ejecutar un programa de diálogo, es necesario crear una transacción de tipo diálogo y asociarla al programa. No es posible ejecutarlos pulsando F8 o el botón ejecutar, se debe crear una transacción.
Pasos para crear un programa de diálogo
1. Crear el programa ABAP Module Pool
2. Crear en el programa ABAP las pantallas o dynpros que intervienen en la transacción especificando los datos que se visualizan en cada dynpro, de qué forma se visualizarán y cuál es la lógica asociada a cada dynpro.
3. Crear el código de la transacción en la transacción SE93, asociado al programa.
4. Definir los menús de las dynpros especificando su contenido.
a. Teclas de función
b. Botones
5. Definir el flujo de las dynpros en el module pool.
6. Programar en el module pool los módulos correspondientes a cada dynpro, es decir, qué debe hacer cada pantalla en el PBO (Proccess before output), antes que se visualice la pantalla, y en el PAI (Process after input), después que se introduzcan datos en la pantalla.
Pasos para crear una dynpro
1. Definir las características básicas o atributos de la pantalla.
a. Nombre de la dynpro
b. Descripcion breve
c. Tipo de dynpro
d. Otros atributos, dynpro siguiente
2. Diseñar el formato de la pantalla, donde se podrán incluir botones, campos de entrada/salida, checkboxes, radiobuttons, textos, etc
3. Definir los atributos de los campos o la lista de campos, donde se podrá definir para cada campo que se muestra en la pantalla si es de entrada o entrada/salida, cuál es su formato, cuál es su longitud, etc.
4. Escribir la lógica del flujo de la pantalla, donde se escribirá el código ABAP que le proporcionará las funcionalidades a las dynpros.
2.1.2. - Herramientas para la creación de pantallas y menús
ABAP proporciona dos herramientas gráficas muy potentes para la creación de pantallas y menús.
1. Screen painter
a. Se crearán las dynpros y todos los objetos que componen a estas.
b. Se podrá acceder a este menú desde la transacción SE41.
i. Desde la transacción, se podrán editar todas las características de los status gui, los títulos, las barras de menús, con introducir el nombre del programa y el nombre del status.
c.
2. Manú painter
a. Mediante el que se crearán los status gui.
b.
2.1.3. - Lógica PBO - PAI de una dynpro en un programa de diálogo
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) y PAI (Process After Input).
PBO es el evento que se ejecuta antes de que se visualice una dynpro. Aquí se definirán los menús, los títulos, la inicialización y el contenido de los campos de la pantalla, que objetos se mostrarán y como se mostrarán en la dynpro.
PAI es el evento que se ejecuta después de introducir los datos en la dynpro y realizada alguna acción sobre ella, como puede ser pulsar un botón.
Lo que se realiza aquí, será la validación de los datos ingresados en la pantalla y luego tomar alguna acción en base a las validaciones, que puede ser emitir un mensaje de error por pantalla o seguir el flujo del procesamiento hacia otra dynpro.
2.1.4. – Creación de un Module pool
Para crear un programa de diálogo, hay que acceder a la transacción SE38, indicando un nombre para el programa, al igual que otros programas. Cuando aparece la opción de poner una descripción, hay que seleccionar la opción “Module pool”. Hay que guardar y asignar una clase de desarrollo.