✒️ABAP La lógica de procesamiento en el PAI y la ejecución de las acciones
ABAP La lógica de procesamiento en el PAI y la ejecución de las acciones
1. EJECUCIÓN CONDICIONADA DE MÓDULOS
Si especificamos la cláusula ON INPUT al final de un FIELD MODULE, el módulo se ejecuta sólo si el campo en cuestión contiene un valor diferente al valor inicial.
Ej. FIELD wa_screen_0100-dni MODULE validar_dni_0100 ON INPUT.
En la sentencia CHAIN-ENDCHAIN debe usarse ON CHAIN-INPUT. El módulo se procesa sólo si al menos uno de sus campos CHAIN contiene un valor diferente al inicial.
La claúsua ON REQUEST en una instrucción FIELD.. MODULE, hace que el módulo se ejecute sólo si el campo tiene una nueva entrada. Para CHAIN-ENDCHAIN, usar ON CHAIN-REQUEST.
Para salir de la pantalla sin pasar las validaciones automáticas, con las funciones estándares Back, Exit o Cancel, usaremos la cláusula AT EXIT-COMMAND. Ej. MODULE <mod> AT EXIT-COMMAND. Para poder usarlo, debe tener asignado el valor E en el atributo Tipo Función
La sentencia LEAVE TO SCREEN 0 saldrá de la transacción o de la pantalla en proceso.
2. TRATAMIENTO DE LOS CÓDIGOS DE FUNCIÓN
Cuando un usuario pulsa una tecla de función, un pto de menú, un pushbutton, un icono o un ENTER, los datos introducidos en pantalla se pasan a los módulos definidos en el PAI junto con un código de función.
Cada dynpro tiene el código de función OK_CODE. Debemos realizar su tratamiento en la lógica de proceso de cada dynpro. Para ello, usamos el módulo USER_COMMAND que deberá ser el último del evento PAI (cuando todos los datos de entrada han sido validados).
Tras procesar el módulo de función, borraremos el contenido el OK_CODE y lo inicializaremos para la próx. dynpro (se puede guardar el valor en una variable intemedia (v_ucomm)). Definimos: DATA: v_ucomm type sy-ucomm.
SY-UCOMM: variable de sistema (menús) que contiene la última acción ejecutada por el usuario
OK-CODE: Variable de los progr. ABAP. (tipo SY-UCOMM) que se usa en las pantallas. Es una variable temporal para almacenar SY-UCOMM. En los progr. de Diálogo trabajaremos con él. Lo inicializaremos para el próximo dynpro.
3. SECUENCIA DINÁMICA DE LAS PANTALLAS
En una transacción de diálogo podemos controlar la secuencia de ejecución de cada una de las dynpros que componen la transacción.
Existen 2 instrucciones que permiten pasar a otra dynpro del mismo programa:
- SET SCREEN: SET SCREEN <num_pantalla>. Reescribe temporalmente la siguiente pantalla a procesar (debe ser del mismo Module Pool). Si en una pantalla ejecutamos la instrucción LEAVE SCREEN pasa a la siguiente pantalla. Podemos ir directamente a otra pantalla con la sentencia LEAVE TO SCREEN <num_pantalla>
- CALL SCREEN: Interrumpe el procesamiento de la pantalla actual para procesar la pantalla X y subsecuentes. P. ej. CALL SCREEN 0200. Debe pertenecer al mismo Module Pool. Las instrucciones: SET SCREEN 0, LEAVE SCREEN o LEAVE TO SCREEN 0 regresan el control al lugar donde se ejecutó la instr. CALL SCREEN. Mediante STARTING AT y ENDING AT se puede especificar la posición y el tamaño de la pantalla a llamar. P.ej. CALL SCREEN 0200 STARTING AT 5 1 ENDING AT 130 25. Si se corta, se puede incluir una barra de desplazamiento.
 
 
 
Sobre el autor
Publicación académica de David Campillo Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
David Campillo Martinez
Profesión: Administrador de Sistemas - España - Legajo: PC32Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de David Campillo