
1. Concepto Fundamental del PBO
El PBO es el evento que se dispara antes de que una pantalla (dynpro) sea visualizada por el usuario. Su propósito principal es preparar el entorno de la interfaz, seleccionando los datos necesarios y realizando las configuraciones que deben surtir efecto inmediato al mostrarse la pantalla.
En la lógica de flujo de la dynpro, los módulos de este evento se definen bajo la sección PROCESS BEFORE OUTPUT.
2. Acciones Principales en el PBO
De acuerdo con las mejores prácticas y la arquitectura estándar, en este evento realizamos tres tipos de acciones esenciales:
• Configuración de la interfaz (Status GUI y Títulos): Se define qué menús, botones y títulos verá el usuario.
• Modificación dinámica de atributos: Se alteran las propiedades de los campos (visibilidad, edición, obligatoriedad) mediante la estructura SCREEN.
• Inicialización y carga de datos: Se asignan valores a los campos de la pantalla para que no aparezcan vacíos al usuario.
3. Implementación de Módulos
Los módulos en el PBO se identifican técnicamente por la palabra reservada OUTPUT al final de su nombre.
Buenas Prácticas de Estructuración:
• Modularización: Es ampliamente recomendable crear un Include específico (tradicionalmente terminado en _PBO) para almacenar todos estos módulos y subrutinas, manteniendo el código organizado y mantenible.
• Nomenclatura: La longitud máxima permitida para el nombre de un módulo es de 30 caracteres.
4. Control de la Interfaz: Status GUI y Títulos
Dentro del PBO, utilizamos sentencias específicas para activar los componentes creados en el Menu Painter:
• SET PF-STATUS 'XXXX': Setea el Status GUI que proporciona el rango de funciones (botones y menús).
• SET TITLEBAR 'XXX': Configura el título que aparecerá en la cabecera de la ventana.
Uso de la cláusula EXCLUDING: Si deseas reutilizar un mismo Status GUI en varias pantallas pero ocultar ciertos botones en algunas de ellas, puedes pasar una tabla interna (de tipo sy-ucomm) con los códigos de función a omitir:
SET PF-STATUS '0100' EXCLUDING ti_fcode.
5. Modificación de Atributos (Estructura SCREEN)
Todos los elementos de una dynpro residen en la estructura del sistema llamada SCREEN, la cual se inicializa en cada ejecución del PBO con los valores definidos en el Screen Painter.
Para modificar campos en tiempo de ejecución, recorremos esta estructura mediante un bucle y aplicamos los cambios con la sentencia MODIFY SCREEN. Algunos campos clave de esta estructura son:
• SCREEN-INVISIBLE: Controla la visibilidad (1 = invisible, 0 = visible).
• SCREEN-INPUT: Controla si el campo permite entrada de datos (1 = entrada/salida, 0 = solo salida).
• SCREEN-REQUIRED: Define si el campo es obligatorio (1 = sí).
6. Carga de Datos en Tablas de Control
Para las Tablas de Control (Table Controls), es obligatorio que exista una sentencia LOOP-ENDLOOP en el PBO. Esta sentencia se encarga de copiar los registros de la tabla interna del programa hacia la interfaz de la pantalla. Durante este proceso, la variable SY-LOOPC contiene el número de líneas actuales de la tabla de control.