
Logica de procesamiento en PAI
Ejecución condicioanda de modulos
Si especificamos la clausula ON INPUT despues de MODULE en una instrucción FIELD, el modulo es ejecutado solamente si el campo en cuestión contiene un valor diferente al valor inicial.
En la sentencia CHAIN-ENDCHAIN se debe usar la instrucción ON CHAIN INPUT. Entonces, el modulo es procesado solamente si al menos uno de los campos de la pantalla en la sentencia CHAIN-ENDCHAIN contiene un valor diferente al valor inicial.
Si se especifica la clausula ON REQUEST despues de MODULE en una instrucción FIELD, el modulo es ejecutado unicamente si el campo tiene una nueva entrada.
En la sentencia CHAIN-ENDCHAIN, se debe usar la instrucción ON CHAIN-REQUEST. Entonces, el modulo concerniente es procesado solamente si al menos uno de los campos de pantalla de la sentencia CHAIN-ENDCHAIN tiene una nueva entrada.
Se puede salir de la pantalla sin necesidad de pasar las validaciones automaticas (BACK, EXIT, CANCEL) si utilizamos la clausula AT EXIT-COMMAND de la instrucción MODULE.
Sintaxis MODULE <modulo> AT EXIT-COMMAND.
Para utilizar un AT EXIT-COMMAND, sera necesario asignar el valor E en el atributo de campo tipo función del editor de pantallas.
Tratamiento de los codigos de función
En la logica de procesamiento de cada dynpro, tendremos que realizar el tratamiento OK_CODE. Para ello, utlizaremos el modulo USER_COMMAND que deberá ser el ultimo de evento PAI, es decir que se ejecutará una vez que todos los datos de entrada han sido validados correctamente.
Una vez procesado el modulo de función, borraremos el contenido del OK_CODE, inicializandolo para la proxima dynpro. podemos guardar el contenido del OK_CODE en una variable intermedia e inicializarlo inmediatamente.
Diferencias entre SY-UCCOM y OK_CODE.
- SY-UCCOM: Es una variable del sistema que se utiliza en las menus que almacena la ultima interación del usuario.
- OK_CODE: Es una variable del programa, que utiliza en las pantallas, almacenandolo en forma temporal el valor de SY-UCCOM.
Secuencia dinamica de las pantallas
- SET SCREEN: Nos permite pasar a otra dynpro. Sintaxis SET SCREEN <No_pantalla>
- LEAVE SCREEN: Ejecuta la pantalla siguiente en forma inmediata
- LEAVE TO SCREEN: Para terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente en una sola instrucción. Sintaxis LEAVE TO SCREEN <No_pantalla>
- CALL SCREEN: Interrumpe el procesamiento de la pantlla actual para procesar la pantallas subsiguientes.
- STARTING AT / ENDING AT: Se puede especificar la posición y tamaño de la pantalla a llamar.