✒️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) EJECUCIÓN CONDICIONADA DE MÓDULOS
Clausulas:
- ON INPUT: Si se especifica la cláusula ON INPUT después del MODULE en la instrucción FIELD, el módulo es ejecutado solamente do el campo en cuestión contiene un valor diferente al valor inicial.Ejemplo:
PROCESS AFTER INPUT.
FIELD wa_screen_0100-dni.
MODULE validar_dni_0100 ON INPUT.
Se puede usar ON INPUT solamente si la instrucción MODULE es especificada dentro de la instrucción FIELD.
- ON CHAIN-INPUT. En este caso el módulo es procesado si al menos unos de los campos de la pantalla en la sentencia CHAIN-ENDCHAIN contiene un valor diferente al inicial.
PROCESS AFTER INPUT.
CHAIN,
FIELD <campo1>
MODULE < ON INPUT.modulo> ON CHAIN-INPUT,
END-CHAIN
- ON REQUEST . Se utiliza después de MODULE en la instrucción FIELD, y solo es ejecutado si el campo tiene una nueva entrada.
PROCESS AFTER INPUT.
FIELD wa_screen_0100-dni.
MODULE validar_dni_0100 ON REQUEST.
- ON CHAIN-REQUEST. Esta es utilizada en la sentencia CHAIN-ENDCHAIN, entonces el módulo es procesado solamente si al menos unos de los campos de pantalla de la sentencia CHAIN- END CHAIN tiene nueva entrada
PROCESS AFTER INPUT.
CHAIN,
FIELD <campo1>
MODULE < ON INPUT.modulo> ON CHAIN-REQUEST.,
END-CHAIN
Se puede usar ON REQUEST solamente si la instrucción MODULE es especificada dentro de la instrucción FIELD.
- AT-EXIT-COMMAND. Esta clausula funciona cuando el usuario quiere salir de la pantalla sin pasar por las validaciones automática, y se usan las funciones BACK, EXIT , CANCEL.
MODULE <modulo_ABAP> AT EXIT-COMMAND.
MODULE exit_0100 INPUT.
LEAVE PROGRAM.
ENDMODULE.
Para poder utilizar AT-EXIT-COMMAND será necesario asignar el valor E en el atributo de campo "Tipo Funcion"
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
........
MODULE EXIT INPUT.
LEAVE TO SCREEN.
ENDMODULE.
2) TRATAMIENTO DE CÓDIGO DE FUNCIÓN
Cuando un usuario pulsa una tecla de función, un punto del menú, un pushbutton, un icono o solo da 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 indicará que función ha solicitado el usuario.
Para el tratamiento del OK_CODE, se utilizará el módulo USER- COMMAND que será el último evento PAI , o sea , se ejecutará después que se han validado lo datos de entrada.
PROCESS AFTER INPUT.
Module exit_0100 AT EXIT-COMMAND.
Module user._command_0100.
Una vez procesado el módulo de función, se borrará el contenido del OK_CODE, y se inicializará para la próxima dynpro. Se creará la variable v_ucomm del tipo sy-ucomm para almacenar temporalmente el valor del sy-ucomm
DIferencia entre OK_CODE y sy-ucomm
- Sy_ucomm. Variable del sistema que contiene las últimas acciones ejecutadas del usuario
- OK_CODE . variable que se declara en los programas y es el tipos sy-ucomm, actúa solo como una variable temporal
En los programas Abap se debe de trabajar con el OK_COde en vez del sy.-ucomm, hay 2 razones para esto:
- El programa Abap tiene el control total de los campos declarados en él
- Nunca se debe cambiar el valor de una variable del sistema ABAP
Siempre se debe limpiar el OK_CODE para no recibir un valor equivocado.
3) SECUENCIA DINÁMICA DE LAS PANTALLAS.
En un programa de dialogo se puede controlar la secuencia de ejecución de las dynpros.Existen 2 instrucciones para esta funcionalidad:
- SET SCREEN. Esta instrucción reescribe temporalmente la siguiente pantalla a procesar y debe ser un module pool
PROCESS AFTER INPUT.
MODULE OK_CODE.
MODULE OK_CODE INPUT.
SET SCREEN 200.
LEAVE SCREEN.
Al ejecutar LEAVE SCREEN se ejecuta la pantalla siguiente en forma inmediata.
- LEAVE TO SCREEN. Si se desea terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente se puede usar esta instrucción.
LEAVE TO SCREEN <nro_pantalla>.
- CALL SCREEN. Interrumpe el procesamiento de la pantalla actual para procesar la pantalla y las pantallas subsecuentes.
CALL SCREEN 200.
Cualquiera de las 3 instrucciones regresa el control al lugar donde fue ejecutada la instrucción CALL SCREEN.
Usando las clausulas STARTING AT y ENDING AT en la instrucción CALL SCREEN se puede especificar la posición y el tamaño de la pantalla a llamar.
CALL SCREEN 0200 STARTING AT 5 1 ENDING AT 130 25
 
 
 
Sobre el autor
Publicación académica de Maria Guadalupe Gonzalez Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Maria Guadalupe Gonzalez Sanchez
Mexico - Legajo: LB83R
✒️Autor de: 147 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP BI / BW BO Nivel Inicial
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial