✒️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
6° Lógica de Procesamiento en PAI: Ejecución de las Acciones
1- Ejecución Condicionada de Módulos
- Cláusulas ON INPUT y ON CHAIN-INPUT
Si se especifica la cláusula ON INPUT después de MODULE en una instrucción FIELD, el Módulo se ejecuta solamente si el Campo en cuestión contiene un valor diferente del inicial.
NOTA: La cláusula ON INPUT puede acompañar a MODULE solamente si está dentro de una sentencia FIELD.
Si el MODULE se encuentra en un CHAIN-ENDCHAIN se debe usar la cláusula ON CHAIN-INPUT. En este caso, el Módulo se ejecuta solamente si al menos uno de los campos involucrados contiene un valor diferente al inicial.
- Cláusulas ON REQUEST y ON CHAIN-REQUEST
Si se especifica la cláusula ON REQUEST después de MODULE en una instrucción FIELD, el Módulo se ejecuta solamente si el Campo en cuestión contiene un valor diferente del que se ingresó después del inicial (o sea para un reingreso).
Si el MODULE se encuentra en un CHAIN-ENDCHAIN se debe usar la cláusula ON CHAIN-REQUEST. En este caso, el Módulo se ejecuta solamente si al menos uno de los campos involucrados contiene una nueva entrada.
NOTA: La cláusula ON REQUEST puede acompañar a MODULE solamente si está dentro de una sentencia FIELD.
- Cláusula AT EXIT-COMMAND
Esta cláusula se utiliza con la sentencia MODULE si queremos preveer la posibilidad que el Usuario quiera salir de la pantalla en que está sin hacer las validaciones previstas, es decir por haber presionado el botón BACK, EXIT o CANCEL.
Ejemplo:
MODULE exit_0100 AT EXIT-COMMAND.
*-----------------------------------------------------------------------------------------------------
* Module EXIT_0100
*-----------------------------------------------------------------------------------------------------
MODULE exit_0100 INPUT.
LEAVE PROGRAM. "Sale del Programa
LEAVE TO SCREEN 0. "Sale de la Pantalla Actual pasando a la Pantalla Inicial
ENDMODULE.
2- Tratamiento de los Códigos de Función
Cuando el usuario pulsa una Tecla de Función, un Punto de Menú, un Pulsador, un Ícono o simplemente la tecla ENTER, los datos ingresados en la pantalla se pasan a los Módulos definidos en el evento PAI, para ser procesados de acuerdo a la Función que solicitó el usuario.
Dentro del procesamiento de cada Dynpro, tenemos que tener previsto el tratamiento del OK_CODE (incluido en todas las Dynpros). Para hacerlo, se utiliza el Módulo USER_COMMAND que deberá ser el último del evento PAI, es decir que se ejecuta una vez que todos los datos de entrada fueron validados correctamente.
Ejemplo:
MODULE user_command_0100 INPUT.
MOVE ok_code TO v_ucomm. "Se lo guarda en una variable del tipo sy-ucomm
CLEAR ok_code. "Se lo inicializa para la siguiente dynpro
CASE v_ucomm.
* Borrar DNI
WHEN 'BORRAR'.
CLEAR wa_screen_0100-dni.
ENDCASE.
ENDMODULE.
- Relación entre el SY-UCOMM y el OK_CODE
- El SY-UCOMM contiene la última acción ejecutada por un usuario. Cuando estamos tratando un Programa de Diálogo el valor del SY-UCOMM se pasa al OK_CODE.
- En los Programas de Diálogo se debe trabajar con el OK_CODE porque
- Las variables del sistema no pueden modificarse nunca.
- El programa ABAP tiene el control total sobre las variables incluidas en él y como es necesario inicializar siempre el OK_CODE al terminar con el evento PAI para dejarlo "limpio" para el PBO de la siguiente pantalla.
- Sentencia SET SCREEN: Indica cual es la siguiente pantalla a procesar porque se terminó el procesamiento en la Actual o porque se ejecutó una sentencia LEAVE SCREEN y pasa directamente a la Pantalla Siguiente.
- Sentencia LEAVE TO SCREEN: Se utiliza para terminar el procesamiento de la Pantalla Actual y pasar directamente a la Pantalla indicada en esta sentencia.
- Sentencia CALL SCREEN: Interrumpe el procesamiento de la Pantalla Actual para continuar procesando la Pantalla indicada en esta sentencia. Puede estar acompañada de dos cláusulas
- - Cláusula STARTING AT: Indica la posición de inicio de la Pantalla Siguiente (vértice superior izquierdo).
- - Cláusula ENDING AT: Indica la posición final de la Pantalla Siguiente (vértice inferior derecho). En combinación con la STARTING AT determinan el tamaño de la Pantalla Siguiente.
NOTA: Si por los valores dados a las cláusulas STARTING AT y ENDING AT la Pantalla Siguiente aparece incompleta, se incluye en la misma una Barra de Desplazamiento.
 
 
 
Sobre el autor
Publicación académica de Victor Norberto Levi, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Norberto Levi
Profesión: Analista Programador - Argentina - Legajo: VT17H
✒️Autor de: 111 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Victor Levi