✒️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
Ejecución condicionada de módulos:
- Si se especifica la cláusula 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 senténcia 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.
- Se puede usar la adición ON INPUT solamente si la instrucción MODULE es especificada dentro de una instrucción FIELD.
- Si se especifica la clausula ON REQUEST despues 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.
- Se puede usa la adición ON REQUEST solamente si la instrucción MODULE es especificada dentro de una instrucción FIELD.
- Para considerar si un usario quiere salir de la pantalla sin necesidad de pasar las validaciones automáticas (como BACK, EXIT o CANCEL ) se utilizará la cláusula AT EXIT-COMAND de la instrucción MODULE. La sintaxis a usar es: MODULE <módulo_ABAP> AT EXIT-COMMAND.
- Para poder asignar un AT EXIT-COMMAND en un botón de campo será necesario asignar el valor E en el atributo de campo tipo función del editor de pantallas. En el módulo que llamamos se incluirá las instrucciones necesarias para poder salir de la transacción o de la pantalla en proceso como puede ser LEAVE TO SCREEN 0.
Tratamiento de los códigos de función:
- Cuando el usuario de una transacción de diálogo pulsa una tecla de función, punto de menú, pushbutton, icono o tecla ENTER los datos introducidos en pantalla son 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.
- En la lógica de procesamiento de cada dynpro hay que realizar el tratamiento del OK_CODE.
- Para ello se utiliza el módulo USER_COMMAND que deberá ser el último evento PAI, es decir, se ejecutará una vez que todos los datos de entrada ha sido validados correctamente.
- Una vez procesado el módulo de función, borraremos el contenido del OK_CODE, inicializandolo para la próxima dynpro. Se puede guardar el contenido del OK_CODE en una variable intermedia e inicializarla immediatamente.
Secuencia dinámica de las pantallas:
- En un programa de diálogo o también llamado transacción de diálogo se puede controlar la secuencia de ejecución de cada una de las dynpros que componen a la transacción.
- Existen dos transacciones que nos permitirán pasar a otra dynpro existente dentro del mismo programa.
- La primera de ellas es la instrucción SET-SCREEN que tiene la sintaxis: SET SCREEN <nro_pantalla>. La instrucción SET SCREEN reescribe temporalmente la siguiente pantalla a procesar. La pantalla siguiente debe ser una pantalla del mismo Module Pool.
- La pantalla siguiente es procesada después de procesar la pantalla actual o al menos que se termina la ejecución de la pantalla actual con la instrucción LEAVE SCREEN. Al encontrar esta instrucción, se ejecuta la pantalla siguiente en forma immediata.
- Si se desea terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente en una sola instrucción, se puede usar la sentencia LEAVE TO SCREEN.
- La instrucción CALL SCREEN interrumpe el procesamiento de la pantalla actual para procesar la pantalla X y las pantallas subsecuentes. La pantalla llamada con esta instrucción debe ser una pantalla del mismo Module Pool.
- 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.
- Si se usa cualquiera de las instrucciones anteriores cunado no se está en el modo de llamada (sin ceder el control a otra dynpro) el programa se termina.
- Usando STARTING AT y ENDING AT en la instrucción CALL SCREEN se puede especificar la posición y el tamano de la pantalla a llamar. Si la pantalla aparece incompleta, se incluye en la misma una barra de desplazamiento.
 
 
 
Sobre el autor
Publicación académica de Llu?s Cul? Duran, en su ámbito de estudios para la Carrera Consultor ABAP.
Llu?s Cul? Duran
Profesión: Ingeniero Industrial - Alemania - Legajo: HG65D
✒️Autor de: 39 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial