✒️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.
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.
PROCESS AFTER INPUT.
FIELD wa_screen_0100-dni
MODULE validar_dni_0100 ON INPUT.
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 inicial.
PROCESS AFTER INPUT.
FIELD <campo de pantalla>
MODULE <módulo> ON INPUT.
.
.
PROCESS AFTER INPUT.
CHAIN.
FIELD <campo_de_pantalla>,
<campo_de_pantalla>,
.
.
<campo_de_panalla>.
MODULE <módulo> ON CHAIN-INPUT.
.
NOTA: 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 módulo es ejecutado únicamente si el campo tiene una nueva entrada.
PROCESS AFTER INPUT.
FIELD wa_screen_0100-dni
MODULE validar_dni_0100 ON REQUEST.
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.
PROCESS AFTER INPUT.
FIELD <campo_de_pantalla>.
MODULE <módulo> ON REQUEST.
.
.
PROCESS AFTER INPUT.
CHAIN.
FIELD <campo_de_pantalla>,
<campo_de_panalla>,
.
.
<campo_de_pantalla>.
MODULE <módulo> ON CHAIN-REQUEST.
ENDCHAIN.
NOTA: Solamente se puede usar la adición ON REQUEST si la instrucción MODULE es especificada dentro de una instrucción FIELD.
Para salir de la pantalla sin necesidad de pasar las validaciones, BACK, EXIT, CANCEL, usaremos la clausula AT EXIT-COMMAND de la instrucción MODULE.
MODULE <módulo_ABAP> AT EXIT-COMMAND.
MODULE exit_0100 INPUT.
LEAVE PROGRAM.
ENDMODULE.
Para poder utilizar 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 incluiremos las instrucciones necesarias para salir del programa. Ej. LEAVE TO SCREEN 0
2.- Tratamiento de los códigos de función.
Si en un dialogo se pulsa una tecla de función, un punto de menú, un pushbutton, un icono, o simplemente 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 creamos una dynpro definimos el campo de tipo código de función llamado OK_CODE
En la lógica de procesamiento de cada dynpro, tendremos que realizar el tratamiento del OK_CODI. Para ello usaos el módulo USER_COMMAND que deberá ser el ultimo del evento PAI.
PROCESS BEFORE OUTPUT.
MODULE staus_0100.
PROCESS AFTER INPUT.
MODULE exit_0100 AT EXIT-COMMAND.
MODULE user_command_0100.
Una vez procesado el módulo de función, inicializamos el contenido de OK_CODE. Podemos guardar el contenido en una variable interna.
DATA: w_ucomm TYPE sy-ucomm.
MODULE user_command_0100 INPUT.
MOVE ok_code TO v_ucomm.
CLEAR ok_code.
 
 
 
Sobre el autor
Publicación académica de Juan Hern?ndez, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hern?ndez
Profesión: Programador Inform?tico - Espa?a - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hern?ndez