
1. El Evento PAI (Process After Input)
El PAI es el evento que se desencadena inmediatamente después de que el usuario interactúa con la pantalla (dynpro) y realiza una acción, como presionar la tecla ENTER o hacer clic en un botón,. Su objetivo primordial es validar los datos ingresados y determinar la acción a seguir en el flujo del programa,.
Técnicamente, los módulos de este evento se declaran en la lógica de flujo de la dynpro bajo la sección PROCESS AFTER INPUT,. Estos módulos se identifican en el código ABAP por llevar la palabra reservada INPUT al final de su nombre (por ejemplo, MODULE user_command_0100 INPUT),.
2. Validaciones de Datos en el PAI
Una de las funciones más críticas del PAI es garantizar la integridad de los datos antes de su procesamiento. Existen dos categorías de validación:
• Validaciones Automáticas: El sistema las realiza por defecto antes de procesar cualquier módulo PAI. Incluyen la verificación del formato de los campos (como fechas o valores numéricos), el chequeo de campos obligatorios ("required") y la validación contra ámbitos de valores definidos en el dominio del Diccionario de Datos,,.
• Validaciones Manuales (Sentencia FIELD): Se utilizan para chequeos complejos programados por el desarrollador.
â—¦ Al usar FIELD campo MODULE modulo, si el módulo emite un mensaje de error, la pantalla se redispone bloqueando todos los campos excepto el validado,.
â—¦ La sentencia CHAIN-ENDCHAIN permite agrupar varios campos; si ocurre un error, todos los campos incluidos en la cadena quedan habilitados para su corrección, manteniendo bloqueados los externos,.
3. Ejecución Condicionada de Módulos
Para optimizar el rendimiento, podemos controlar cuándo debe ejecutarse un módulo mediante cláusulas específicas en la lógica de la dynpro:
• ON INPUT (o ON CHAIN-INPUT): El módulo se ejecuta solo si el campo (o al menos uno en la cadena) contiene un valor distinto al inicial,.
• ON REQUEST (o ON CHAIN-REQUEST): El módulo se dispara únicamente si el usuario ha modificado el valor del campo manualmente, incluso si ingresa el mismo valor original,.
4. Tratamiento del Código de Función (OK_CODE)
Cuando el usuario pulsa un botón o menú, se transfiere un código de función al programa. Este se captura en una variable de tipo sy-ucomm, tradicionalmente denominada OK_CODE, que debe ser definida en la lista de elementos de la dynpro,.
Mejor práctica de experto: El tratamiento del OK_CODE debe realizarse en el último módulo del PAI, generalmente llamado USER_COMMAND. Una vez procesada la acción, es fundamental borrar o inicializar el contenido del OK_CODE para evitar que afecte a la ejecución de la siguiente dynpro.
5. Salto de Validaciones (AT EXIT-COMMAND)
Si el usuario desea abandonar la pantalla (botones BACK, EXIT o CANCEL) sin pasar por las validaciones automáticas o manuales, se utiliza la cláusula AT EXIT-COMMAND en un módulo de PAI. Para que esto funcione, el botón en el Status GUI debe tener asignado el tipo de función "E" (Exit Command),.
6. Control de la Secuencia Dinámica de Pantallas
Dentro del PAI, el desarrollador controla la navegación mediante sentencias de control de flujo:
• SET SCREEN <nro>: Reescribe temporalmente la siguiente pantalla a procesar tras finalizar la actual,.
• CALL SCREEN <nro>: Interrumpe la dynpro actual para procesar una nueva secuencia,. El control regresa al punto de llamada al ejecutar SET SCREEN 0 o LEAVE SCREEN.
• LEAVE TO SCREEN <nro>: Finaliza el procesamiento de la pantalla actual y salta inmediatamente a la siguiente,.