✒️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
Un programa de diálogo está compuesto por dynpros. La lógica de procesamiento de cada dynpro cumple con una metodología muy particular que consiste en la ejecución de dos eventos:
- PBO (Process Before Output)
- PAI (Process After Input)
El PAI es el evento que se ejecuta luego de introducidos los datos en la dynpro y realizada alguna acción sobre ella, como puede ser presionar un botón.
Aquí lo que haremos será validar los datos ingresados en la pantalla y luego tomar alguna acción en base a nuestras validaciones que puede ser emitir un mensaje de error por pantalla o seguir el flujo del procesamiento hacia otra dynpro.
Existen dos tipos de validaciones de los datos de entrada:
- Un chequeo automático realizado por el sistema.
- Un chequeo manual programado con el comando FIELD de la lógica de proceso de las dynpros.
Es la cláusula ABAP que se utiliza para en la sentencia CHAIN-ENDCHAIN para procesar un módulo si alguno de los campos de la pantalla dentro de la sentencia CHAIN-ENDCHAIN contiene un valor distinto del inicial.
Veamos un ejemplo de su utilización:
CHAIN.
FIELD: v_campo1,v_campo2,v_campo3 MODULE ejecutar ON CHAIN-INPUT.
MODULE ejecutar2.
ENDCHAIN.
En el ejemplo anterior la ejecución del MODULE ejecutar, estará condicionada a que alguna de los campos v_campo1 o v_campo2 o v_campo3 cambian su valor.
En cambio el MODULE ejecutar2 se ejecutará siempre, sin ninguna condición.
Si especificamos la cláusula 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 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 valor inicial.
Si se especifica la cláusula ON REQUEST después de MODULE en una instrucción FIELD, el módulo es ejecutado únicamente si el campo tiene una nueva entrada.
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.
 
 
 
Sobre el autor
Publicación académica de Cesar Armando Gutierrez Gomez, en su ámbito de estudios para la Carrera Consultor ABAP.
Cesar Armando Gutierrez Gomez
Profesión: Ingeniero en Sistemas y Redes Infor - El Salvador - Legajo: KQ36J
✒️Autor de: 89 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Cesar Gutierrez