✒️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
1. Ejecucion condicionada de modulos.
Si especificamos la clausula ON INPUT despues del MODULE en una instruccion FIEL el modulo es ejecutado solamente ssi el campo en cuestion tiene un valor
diferente al valor inicial
en la sentencia CHAIN-ENCHAIN se debe usar a instuccion ON CHAIN-INPUT.el modulo es procesado solamente si al menos uno de los valores de campos de la pantalla
en la sentencia CAHIN-ENCHAIN contien un valor diferente al valor inicial
Si la causula es ON REQUEST, el modulo es ejecutado unicamte si el campo tiene una nueva entrada.
En la sentencia CHAIN-ENDCHAIN se debe usar la intruccion ON CHAIN-REQUEST, el modulo es procesado solamente si al meno uno de los campo de pantalla de la sentencia
CHAIN-ENDCHAIN tiene una nueva entrada.
Es posible que en alguna ocacion el usuario quiera salir de la pantalla sin necesidad de pasar las validaciones automaticas usando BACK, EXIT, CANCEL, en este caso
utilizamos la clausula AT EXIT-COMMAND: MODULE <modulo_ABAP> AT EXIT-COMMAND.
Para poder utilizar un AT EXIT-COMMAND en un boton de campo, sera necesario asignar el valor E al atributo de campo TipoFuncion del editor de palabras.
En el modulo que llamamos incluiremos las instrucciones necesarias para poder salir del programa, por ejemplo LEAVE TO SCREEN 0.
2. Tratamiento de los codigos de funcion.
Cuando el usuario de una transaccion de dialogo pulsa una tecla de funcion, un punto de menu, un pushbutton, un icono, o un enter, los datos intruducidos en la pantalla
se pasan a los modulos definidos en el PAI para ser procesados junto a un codigo de funcion que indicara que funcion ha solocitado el usuario.
Recordemos que cuando definimos una dynpro creamos un campo tipo OK_CODE.
Para realizar el tratamiendo del OK_CODE utilizamos el modulo USER_COMMAND que debera ser el ultimo evento del PAI. Es decir se ejetura una vez que todos los datos de entrada hau sido
validamos con exito.
guardamos el contenido del OK_CODE en una variable del tipo SY-UCOMM y le hacemos un CASE para ver que fue lo que hizo.
3. Secuencia dinamica de las pantallas.
Existen 2 intrucciones que nos prmiten pasar a otra dynpro existente dentro del mismo programa.
*SET SCREEN (SET SCREEN <#_pantalla): reescribe temporalmente la siguiente pantalla a procesar.
La pantalla siguiente es procesada despues de procesar la pantalla actual o al menos que se termina la ejecucion de la pantalla actual con un LEAVE SCREEN.
Si desea terminar el procesamiento e ir directamente a la siguiente pantalla se usa LEAVE TO SCREEN (LEAVE TO SCREEN <#_pantalla>
CALL SCREEN (CALL SCREEN 0200.) interrumpe el procesamiennto actual para pasar ala pantalla X.
Cualquiera de estas instrucciones regresa el control al lugar donde fue ejecutada la instruccion CALL SCREEN:
-SET SCREEN 0.
-LEAVE SCREEN.
-LEAVE TO SCREEN 0.
si se utiliza cualquiera de las instrucciones ateriores cuando no se cedio el control a otra dynpro el programa termina.
utilizando las clausulas STARTING AT o ENDING AT en la instruccion CALL SCREEN se puede especificar la posicion y el tamaño de la pantalla a llamar.
Ejemplo:
CALL SCREEN 0200 STARTING AT 5 1 ENDING AT 130 25.
si la pantalla aparece incompleta, se incuye en la misma una barra de desplazamiento.
 
 
 
Sobre el autor
Publicación académica de Juan Antonio Alvarado Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Antonio Alvarado Rodriguez
Profesión: Ingeniero Programador Abap - Mexico - Legajo: BZ30A
✒️Autor de: 31 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Juan Alvarado