Unidad-2-Lección-1: Arquitectura de un Programa de diálogo
1) Que es un Programa de Dialogo o Module Pool?
Es un tipo de programa ABAP el cual está compuesto principalmente por una serie de pantallas o dynpros a través de los cuales un usuario navega, mientras interactúa con el programa y realiza determinadas acciones.
Image
Es también conocido como Module Pool. Está compuesto por dynpros cuya lógica esta especificada en distintos módulos. Cada dynpro puede tener asociados diferentes objetos para darles funcionalidades, entre las cuales tenemos:
%u2981 Menús
%u2981 Títulos
%u2981 Botones
%u2981 Tablas de control
%u2981 Textos
%u2981 SubScreens
%u2981 Campos de entrada y salida de datos.
Un programa de dialogo se crea de la misma manera que un reporte (transacciones SE38, SE80), con la excepción de que el tipo de programa debe ser Module Pool en vez de Programa Ejecutable. Si trabajamos con la transacción SE80, podemos ver los componentes de un programa de diálogo. El navegador de objetos es la transacción indicada para trabajar con programas de diálogo.
Para ejecutar un programa de diálogo, debe crearse una transacción de tipo de diálogo, y asociarla al programa. Un programa de dialogo no puede ejecutarse a través del F8 o del botón de ejecutar .
Para crear un programa de dialogo, se siguen los siguientes pasos:
1. Crear el programa ABAP de tipo Module Pool.
2. 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 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 3. SE93 asociado a nuestro programa.
4. Definir los menús de los dynpros, especificando su contenido (teclas de función, botones, etc.)
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, lo que debe hacer cada pantalla, en el PBO (Process Before Output), antes de que se visualice la pantalla, y en el PAI (Process After Input), después de introducidos los datos de la pantalla.
Notas:
Una dynpro (Dynamic Program) es una pantalla en SAP. Para crear una dynpro, se deben seguir los siguientes pasos:
1. Definimos los atributos o características básicas de las pantallas, tales como, número de dynpro, descripción breve, tipo de dynpro, dynpro siguiente, etc.
2. Diseñamos el formato de la pantalla. Aquí incluimos objetos como menús, campos de entrada y salida, botones, checkboxes, radiobuttons, campos de texto etc.
3. Definimos los atributos de los campos o la lista de los campos y definimos para cada campo si son de entrada o salida, que formato van a tener, longitud, etc.
4. Definimos la lógica del flujo de la pantalla, que consiste en código ABAP que le brindará la funcionalidad a las dynpro
2) Herramientas para la creación de pantallas y menús
ABAP proporciona dos herramientas gráficas poderosas para la creación de pantallas y menús;
%u2981 Screen Painter: Utilizado para crear los dynpros y todos sus componentes.
%u2981 Menu Painter: A través de los cuales crearemos los Status GUI
El Menu Painter se puede acceder a través de la transacción estándar SE41. Solo se necesita introducir el nombre del programa ABAP y el número del Estatus GUI
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:
%u2981 PBO (Process Before Output)
Este es el evento que se ejecuta antes de que se visualice una dynpro. Aquí definimos loe menús, títulos, la inicialización y el contenido de los campos de la pantalla, es decir, qué objetos se mostrarán y cómo se mostrarán.
%u2981 PAI (Process After Input)
Este es el evento que se ejecuta luego de introducir los datos en la dynpro y realizada alguna acción sobre ella, como hacer click sobre un botón. Aquí validamos los datos ingresados en la pantalla y tomamos una acción en base al resultado de la validación, como emitir un mensaje de error, seguir el procesamiento hacia otra dynpro.
4) Creación de un Module Pool
Para crear un programa de dialogo o Module Pool, lo podemos hacer vía la transacción SE38 o SE80. Lo hacemos de la misma manera que para crear reportes
A través de la transacción SE80