✒️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
Lógica de procesamiento en PAI: Ejecución de las acciones
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 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.
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 después de MODULE en una instrucción FIELD, el modulo es ejecutado únicamente si el campo tiene una nueva entrada.
En la sentencia CHAIN-ENDCHAIN se debe utilizar la instrucción ON CHAIN-REQUEST. Entonces el modulo concerniente es procesado solamente si al menos unos de los campos de la pantalla en la sentencia CHAIN-ENDCHAIN tiene una nueva entrada.
Tratamientos de los códigos de función
Cuando el usuario de una transacción de dialogo pulsa una tecla de función, un punto de menú, un pushbutton, un icono o simplemente la tecla ENTER, los datos introducidos en la pantalla se pasan a los módulos definidos en el PAI para ser procesados junto a un código de función que indicara que función ha solicitado el usuario.
Recordemos que cuando definimos una dynpro creamos el campo de tipo código de función denominado OK_CODE.
En la lógica de procesamiento de cada dynpro, tendremos que realizar al tratamiento del OK_CODE. Para ello, utilizaremos el modulo USER-COMMAND que deberá ser el último del 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, inicializándolo para la próxima dynpro. Podemos guardar el contenido del OK_CODE en una variable intermedia e inicializarlo inmediatamente.
Secuencia dinámica de las pantallas
En un programa de dialogo o también llamado transacción de dialogo podemos controlar la secuencia de ejecución de cada una de las dynpros que componen a la transacción.
Existen dos instrucciones que nos permitirián pasar a otra dynpro existente dentro del mismo programa. La primera de ellas es la instrucción SET SCREEN.
La instrucción SET SCREEN reescribe temporalmente la siguiente pantalla a procesar. La pantalla 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 inmediata.
La instrucción CALL SCREEN interrumpe el procesamiento de la pantalla actual para procesar X y las pantalla subsecuentes.
La pantalla llamada con esta instrucción deberá ser una pantalla del mismo module pool.
Cualquiera de las instrucciones: SET SCREEN 0, LEAVE SCREEN, ELAVE TO SCREEN 0, regresa el control al lugar donde fue ejecutada la instruccion CALL SCREEN,
Usando las clausulas STARTING AT y ENDING AT en la instruccion CALL SCREEN, se puede especificar la posicion y el tamaño de la pantalla a llamar.
 
 
 
Sobre el autor
Publicación académica de Jos? Luis Zevallos Mamani, en su ámbito de estudios para la Carrera Consultor ABAP.
Jos? Luis Zevallos Mamani
Profesión: Ingeniero de Sistemas - Peru - Legajo: MZ47M
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster Funcional ABAP
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial