
PROCESAMIENTO PAI, EJECUCION DE ACCIONES:
- EJECUCIÓN CONDICIONAL:
> ON INPUT / ON CHAIN-INPUT
PROCESS AFTER INPUT FIELD wa_screen_0100-dni MODULE validar_dni_0100 ON INPUT.
El módulo se ejecutará solamente si el campo indicado contiene un valor diferente al inicial. En el caso de CHAIN-ENCHAIN, urilizamos ON CHAIN-INPUT y se ejecutará únicamente si al menos uno de los campos de la sentencia CHAIN-ENDCHAIN contiene un valor distinto al inicial.
Se puede utilizar ON INPUT sólo si MODULE se encuentra dentro de la instrucción FIELD.
> ON REQUEST
PROCESS AFTER INPUT FIELD wa_screen_0100-dni MODULE validar_dni_0100 ON REQUEST.
El módulo se ejecutará solamente si el campo indicado tiene una nueva entrada. En el caso de CHAIN-ENCHAIN, urilizamos ON CHAIN-REQUEST y se ejecutará únicamente si al menos uno de los campos de la sentencia CHAIN-ENDCHAIN contiene una nueva entrada.
Se puede utilizar ON REQUEST sólo si MODULE se encuentra dentro de la instrucción FIELD.
> AT EXIT-COMMAND
Si queremos salir de la pantalla sin pasar las validaciones automáticas, utilizando BACK, EXIT o CANCEL, hemos de utilizar AT EXIT-COMMAND:
MODULE <modulo-ABAP> ALT EXIT-COMMAND
La sentencia LEAVE PROGRAM:
MODULE exit_0100 INPUT. LEAVE PROGRAM. ENDMODULE.
Para poder utilizarlo es necesario asignar en un botón de campo el valor 'E' en el atributo Tipo función del editor de pantallas e incluiremos en el modul,o llamado las instrucciones para salir de la pantalla (por ejemplo LEAVE TO SCREEN 0 que vuelve a pantalla de inicio)
- TRATAMIENTO DE CODIGOS DE FUNCION
Utilizaremos el OK_CODE y el modulo USER_COMMAND (último en el PAI). Debemos borrar el contenido de OK_CODE tras el proceso y podemos guardarlo e inicializarlo. La variable donde lo guardaremos es del tipo SY-UCOMM.
- SECUENCIA DINAMICA DE LAS PANTALLAS
Se puede controlar la secuencia de ejecución de las dynpros:
< SET SCREEN <nro_pantalla> reescribe temporalmente la siguiente pantalla a procesar.
> LEAVE SCREEN termina el procesamiento del la pantalla o dynpro actual
> LEAVE TO SCREEN <nro_pantalla> regresa el control al lugar donde se ejecutó CALL SCREEN
> CALL SCREEN <nro_pantalla> interrumpe la pantalla actual para procesar otra y las subsiguientes. Utilizando STARTIND AT y ENDING AT, se puede especificar el tamaño y posición de la pantalla a llamar
SET SCREEN 0, LEAVE SCREEN, LEAVE TO SCREEN 0 regresan a donde se ejecutó CALL SCREEN. Si no se ejecuta tras haber llamado a otra dynpro el programa termina.