Lección 6: Lógica de procesamiento en PAI: Ejecución de las acciones.
1.- Ejecución condicionada de módulos.
Si especificamos la clausula ON INPUT después de MODULE en una instrucción FIELD, el módulo 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 módulo 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 cláusula ON REQUEST después de MODULE en una instrucción FIELD, el módulo es ejecutado únicamente si el campo tiene una nueva entrada.
En la sentencia CHAIN-ENDCHAIN, se debe usar la instrucción ON CHAIN-REQUEST. Entonces, el módulo concerniente es procesado solamente si al menos uno de los campos de pantalla de la sentencia CHAIN-ENDCHAIN tiene una nueva entrada.
2.- Tratamiento de los códigos de función.
Cuando el usuario de una transacción de diálogo pulsa una techa de función, un punto de menú, un pushbutton, un icono o la tecla ENTER, los datos introducidos se pasan a los módulos definidos en el PAI para ser procesados junto a un código de función que indicará que función ha solicitado el usuario.
Una vez procesado el módulo de función, borraremos el contenido del OK_CODE, inicializandolo para la próxima dynpro. Podemos guardar el contenido del OK_CODE en una variable intermedia e inicializarlo inmediatamente.
3.- Secuencia dinámica de las pantallas.
En un programa de diálogo o también llamado transacción de diálogo podemos controlar la secuencia de ejecución de cada una de las dynpros que componen a la transacción.
Existen dos instrucciones para pasar a otra dynpro dentro del mismo programa:
- SET SCREEN - Reescribe temporalmente la siguiente pantalla a procesar. La pantalla siguiente debe ser una pantalla del mismo Module Pool.
- CALL SCREEN - Interrumpe el procesamiento de la pantalla actual para procesar la pantalla X y las pantallas subsecuentes.
Cualquiera de las instrucciones: SET SCREEN 0, LEAVE SCREEN, LEAVE TO SCREEN 0, regresa el control al lugar donde fue ejecutada la instrucción CALL SCREEN.
Usando las cláusulas STARTING AT y ENDING AT, en la instrucción CALL SCREEN, se puede especificar la posición y tamaño de la pantalla a llamar.
Si la pantalla aparece incompleta, se incluye en la misma una barra de desplazamiento.