✒️ABAP La lógica de procesamiento en el PAI y las validaciones
ABAP La lógica de procesamiento en el PAI y las validaciones
1.- Validación de los datos de entrada.
Una de las funciones más importantes del PAI(Process After Input) es la de validar los datos de entrada de la pantalla antes de ser utilizados. Existen 2 tipos de validaciones de los datos de entrada y estos son:
- Chequeo autómatico realizado por el sistema.
- Chequeo manual programado con el FIELD de la lógica de proceso de las dynpros.
2.- Validación Automática
El sistema realiza automáticamente una serie de chequeos de los datos de entrada antes de procesar el evento PAI.
- Verificación del Formato: Verificación automática del formato de los campos de la pantalla. El sistema valida las entradas de acuerdo a los atributos de cada campo. Si se detecta un valor incorrecto se desplegará un mensaje de error se limpiarán los campos para su nuevo ingreso.
- Verificación de Campos Obligatorios. Cuando aun campo de la pantalla se le asigno el atributo de obligatorio, el sistema no continuará con el procesamiento, a menos que el campo obligatorio tenga algún valor.
- Verificación de claves foráneas. Una verificación de este tipo es procesada sólo si un campo de la pantalla se refiere a un campo del Diccionario de Datos para el cual se ha definido una tabla de verificación. Al mismo tiempo la funcionalidad de la tecla F4 es activada. Esto significa que las posibles entradas para un campo son desplegables.
- Verificación del ámbito de valores: En el Diccionario de Datos se puede definir un ámbito de valores asociado a un dominio de datos. Si se define un campo de pantalla con referencia a un dominio con un ámbito de valores asociados, ocurre lo siguiente:
- Los valores del ámbito de valores son desplegados si el usuario presiona la tecla F4 para ver los posibles valores para el campo de entrada.
- El sistema verificará los valores introducidos en el campo contra el conjunto de valores del ámbito de valores del dominio correspondiente.
3.- Validación Manual.
Es posible hacer una validación más extensa de los valores de entrada con las instrucciones FIELD y CHAIN-ENDCHAIN.
FIELD: Sentencia que se utiliza para validar los campos de una pantalla de un programa de diálogo en forma manual.
CHAIN-ENDCHAIN: Sentencia que encierra en un conjunto de instrucciones FIELD de campos de la pantalla y en caso de error en la entrada de alguno de ellos, todos los campos de CHAIN se podrán modificar, mientras que los que NO pertenezcan al CHAIN estarán bloqueados para la entrada de datos.
Con FIELD podemos validar individualmente cada campo de forma y en caso de error sólo permitirá introducir el campo erróneo sobre el que estamos utilizando la instrucción FIELD.
Dependiendo de la sentencia FIELD que utilicemos, será la forma de válidar y se hará de acuerdo a la lógica de proceso de la dynpro o en un módulo.
Es posible realizar diferentes validaciones a un campo de entrada, esto dependerá de la fuente con la que contrastamos los valores posibles. Así podemos validar el contenido de un campo, comparándolo vs una Base de Datos vs Una Lista de Valores ó Realizando la validación de un módulo del Module Pool. Veremos a detalle estas 3 maneras de validación manual:
- Chequeo de un campo contra una tabla base de datos. Si no se encuentran registros en el Diccionario de datos se emite un mensaje de error estandar. Existe una versión mejorada de la instrucción anterior que permite envíar mensajes o warnings en caso de que no se encuentre ningún registro.
- Chequeo de un campo respecto de una lista de valores. FIELD <campo pantalla> VALUES (<lista de valores>). Si el valor introducido por el usuario no corresponde a ningún valor de la lista el sistema emite un mensaje de error.
- Chequeo de un campo en un módulo. FIELD <campo_pantalla> MODULE <módulo_ABAP/4>. Si el módulo genera un error (E) o un mensaje de advertencia(W), la pantalla se deplegará nuevamente pero sin ejecutar nuevamente el PBO. El texto del mensaje se mostrará y sólo quedará disponible el campo que generó el error para que vuelva a ingresar los datos. PROCESS AFTER INPUT. FIELD wa_screen_0100-dni MODULE validar-dni_0100.
- La instrucción CHAIN-ENDCHAIN:Sentencia que encierra en un conjunto de instrucciones FIELD de campos de la pantalla y en caso de error en la entrada de alguno de ellos, todos los campos de CHAIN se podrán modificar, mientras que los que NO pertenezcan al CHAIN estarán bloqueados para la entrada de datos.
Audio TIP: La sentencia CHAIN-ENDCHAIN de la lógica de procesamiento de una dynpro, definen cadenas de procesamiento dentro dentro de CHAIN-ENDCHAIN se ejecután las cadenas de procesamiento FIELD y MODULE. Las sentencias que estan entre CHAIN-ENDCHAIN forman una cadena de procesamiento, las cadenas de procesamiento no se pueden anidar, es decir no puede haber una dentro de otra,esta sentencia puede ser especficada tanto en PAI como en el PBO, sin embargo en el PBO no tiene efectó alguno.
4.- Mensajes en Pantalla.
- Mensajes de Error. El texto de un mensaje de Error (E) es desplegado en la pantalla actual. Todos los campos de la pantalla asignados al módulo(INSTRUCIÓN FIELD) nuevamente vuelven a estar disponibles, después del error. el sistema obliga a que el usuario reingrese los datos correctos.
- Mensaje de Advertencia: El texto de un mensaje de Advertencia (W) es desplegado en la pantalla actual. Todos los campos de la pantalla asignados al módulo(INSTRUCIÓN FIELD) nuevamente vuelven a estar disponibles, En este caso el usuario puede re-introducir los datos o ignorar el mensaje de advertencia presionando la tecla ENTER.
- Mensaje de Información: El texto de un mensaje de Información (I) es desplegado en la pantalla actual. El proceso de la pantalla actual es suspendido. Después de que el usuario presione la tecla ENTER, el programa continua con su ejecución normal desde el punto donde fue suspendido.
- Mensaje de Éxito: El texto de un mensaje de Éxito (S) es desplegado en la pantalla actual.
- Mensaje de Interrupción: El texto de un mensaje de Interrupción (A) es desplegado en la pantalla actual. Luego de que se presente este mensaje y de que el usaurio presione la tecla ENTER, el proceso actual es terminado y el proceso regresa a la pantalla inicial.
 
 
 
Sobre el autor
Publicación académica de Gustavo Alberto Ramirez Franco, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Alberto Ramirez Franco
Profesión: Ingeniero en Sistemas Computacionales - Mexico - Legajo: TA38Q
✒️Autor de: 38 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Gustavo Ramirez