✒️ABAP / La lógica de procesamiento en el PAI y las validaciones Por Lisimaco Prieto Herrera

Selector Alummnos / Empresas

ABAP La lógica de procesamiento en el PAI y las validaciones

ABAP La lógica de procesamiento en el PAI y las validaciones

La lógica de procesamiento en el PAI y las validaciones

La validación de los datos de entrada

Una de las funciones mas importantes del PAI, es la de validar los datos de entrada de la pantalla antes de ser usados.

Existen 2 tipos de validaciones de los datos de entrada:

Las validaciones automáticas realizadas por el sistema

Las validaciones manuales programadas con la sentencia FIELD en la lógica de proceso del PAI de las dynpros.

A continuación veremos cada una de las validaciones.

Las validaciones automáticas

El sistema realiza automáticamente una serie de validaciones de los datos de entrada antes de procesar el evento PAI. Estas validaciones son las siguientes:

La verificación del formato

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 y se volverán a mostrar los campos para su nueva entrada.

En el ejemplo que vemos en la imagen anterior, introducimos una fecha invalida en un campo de tipo fecha lo cual produce un error y también introducimos una letra en un campo numérico lo cual también produce un error.

Veamos un ejemplo:

La verificación de campos obligatorios

Cuando a un campo de la pantalla se le asigna el atributo de obligatorio, el sistema no continuará con el procesamiento, a menos que el campo obligatorio tenga algún valor.

Veamos a continuación un ejemplo para ver qué sucede cuando no completamos un campo de la pantalla que es obligatorio y hacemos clic en un botón de la dynpro.

La verificación del ámbito de valores

En el diccionario d datos se puede definir un ámbito de valores asociados a un dominio de un campo de una BD.

Por ejemplo, para el campo ESTADO_USU de la tabla BD ZTABLA_USUARIOS tenemos definido al dominio ZZ_ESTADO_USUARIO tal como vemos en la siguiente imagen:

Y dentro del dominio Z_ESTADO_USU definimos un ámbito de valores con tres valores posible: A (Activo), I (Inactivo) y N (Anulado).

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.

Si por ejemplo, creamos en una dynpro el campo de entrada/salida Estado del usuario cuya definición será ZTABLA_USUARIOS-ESTADO_USU.

Comprobamos que al visualizar la dynpro en ejecución y presionar la tecla F4 sobre el campo, aparecen en una ventana de diálogo los posibles valores para introducir en el campo.

Y si introducimos un valor diferente a alguno de los valores posibles y presionamos la tecla enter entonces visualizaremos el mensaje de error en pantalla Indique un valor valido correspondiente a la validación automática tal como vemos a continuación:

Las validaciones manuales

Además de las validaciones automáticas es posible realizar una validación más extensa de los valores de entrada con las sentencias FIELD y CHAIN-ENDCHAIN.

Co la sentencia FIELD podemos validar individualmente cada campo de forma que en caso de error, la siguiente entrada de datos sólo permitirá introducir el campo erróneo sobre el que estamos utilizando la sentencia FIELD.

Es posible realizar distintas validaciones de un campo de entrada, veamos a continuación cada una e estas opciones:

La validación de un campo de la dynpro en un MODULE

Para probar esta validación, dentro del PAI de nuestro programa PRUEBA_DIALOGO_DV67X escribimos la sentencia FIELD tal como vemos a continuación, declarando el módulo VALIDAR_DNI_0100, el cual va a validar que el DNI introducido en la pantalla exista en la tabla de la BD ZTABLA_USUARIOS.

Vamos a crear el MODULE VALIDAR_DNI_0100 dentro del include correspondiente al PAI tal como vemos en la siguiente imagen:

Si ejecutamos la transacción ZACT_USU asociada al programa, completamos el campo DNI con un valor que no existe en la tabla BD ZTABLA_USUARIOS y hacemos clic en el botón Buscar usuarios entonces visualizamos el mensaje de error El DNI introducido no existe.

Tal como vemos en la imagen anterior, la pantalla es desplegada nuevamente pero sin procesar los MODULE PBO. El texto del mensaje es mostrado y solo el campo que ocasionó el error se encuentra disponible para introducir datos nuevamente, es decir si en la pantalla existirían mas campos de entrada entonces no se mostrarían habilitados para introducir valores.

La validación de más de un campo de la dynpro en un MODULE

Existe la posibilidad también de crear un solo MODULE para validar más de un campo de la dynpro o todos ellos, con una misma sentencia FIELD, lo cual resulta conveniente en la mayoría de los casos.

Para ello, vamos a crear el MODULE VALIDAR_CAMPOS_0300 dentro del include correspondiente al PAI, de modo de validar todos los campos indicados en la sentencia FIELD.

Dentro del MODULE VALIDAR_CAMPOS_0300 vamos a generar la siguiente lógica:

Si ejecutamos la transacción ZACT_USU asociada al programa, configurando a la dynpro 0300 como a primera dynpro que se visualiza, completamos el campo Código Postal y presionamos la tecla enter, entonces visualizamos el mensaje de error Debe introducir una dirección.

Tal como vemos en la imagen anterior, todos los campos de la dynpro quedan grisados, es decir no disponibles para introducir datos, por lo que esta solución así como la planteamos no sirve.

Para evitar que todos los campos de la dynpro se bloqueen vamos a usar la sentencia CHAIN.ENDCHAIN.

CHAIN-ENDCHAIN: encierra un conjunto de instrucciones FIELD, que en caso de error en la entrada de alguno de ellos, todos los campos del CHAIN-ENDCHAIN se podrán modificar mientras que los que no se encuentren dentro del CHAIN-ENDCHAIN estarán bloqueados para la entrada de datos.

Veamos a continuación, cómo sería la implementación de la sentencia CHAIN-ENDCHAIN en nuestro programa de diálogo:

Si ahora volvemos a ejecutar la transacción ZACT_USU asociada al programa, configurando a la dynpro 0300 como la primera dynpro que se visualiza, completamos el campo Código Postal y presionamos la tecla enter, entonces visualizamos el mensaje de error Debe introducir una dirección y todos los campos de la dynpro disponibles para ingresar datos.

Los mensajes en la pantalla

A continuación, analizaremos el comportamiento de cada uno de los tipos de mensajes existentes en programa de diálogo.

El mensaje de error

El texto del mensaje de error (E) es desplegado en la pantalla actual.

La sintaxis de los mensajes de error es tal como vemos en la siguiente imagen:

Todos los campos de pantalla asignados al MODULE correspondiente en la sentencia FIELD se vuelven disponibles para introducir información de nuevo.

El sistema obliga al usuario a volver a introducir datos.

Si ejecutamos la transacción ZACT_USU asociada al programa no completamos el DNi en la dynpro 0100 y hacemos clic en el botón Buscar usuarios entonces visualizamos el mensaje de error El DNI introducido no existe tal como vemos a continuación:

El mensaje de advertencia

El texto del mensaje de advertencia (W) es desplegado en la pantalla actual.

La sintaxis de los mensajes de advertencia es tal como vemos en la siguiente imagen:

Todos los campos de la pantalla asignados al MODULE correspondiente en la sentencia FIELD se vuelven disponibles para introducir información de nuevo.

El usuario puede volver a introducir los datos o ignorar el mensaje de advertencia presionando la tecla ENTER.

Si ejecutamos la transacción ZACT_USU asociada al programa, no completamos el DNI en la dynpro 0100 y hacemos clic en el botón Buscar usuarios entonces visualizamos el mensaje de advertencia El DNI introducido no existe tal como vemos a continuación:

El mensaje de información

El teto de un mensaje de información (I) se muestra en una ventana de diálogo que se visualiza encima de la pantalla actual.

La sintaxis de los mensajes de información es tal como vemos en la siguiente imagen:

El proceso de la pantalla actual es suspendido.

Después que el usuario presione la tecla ENTER, el programa continúa con su ejecución normal desde el punto donde fue suspendido.

El mensaje de éxito

El mensaje de un mensaje de éxito (S) es desplegado en la pantalla actual.

La sintaxis de los mensajes de éxito es tal como vemos en la siguiente imagen:

Los mensajes de éxito se van a usar generalmente en los programas de diálogo para informar que la actualización de los datos se realizo correctamente tal como mostramos en la siguiente imagen en donde se visualiza el teto Se actualizaron los datos correctamente.

El mensaje de interrupción

El texto de un mensaje de interrupción (A) es desplegado en la pantalla actual dentro de una ventana de diálogo junto con los botones Finalizar y Ayuda.

El usuario debe presionar la tecla ENTER para finalizar y a continuación el proceso actual es terminado y se regresa a la pantalla inicial.

Si ejecutamos la transacción ZACT_USU asociada al programa, no completamos el DNI en la dynpro 0100 y hacemos clic en el botón Buscar usuarios entonces visualizamos el mensaje de interrupción El DNI introducido no existe tal como vemos a continuación:


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para el Curso SAP ABAP Avanzado.

SAP Master

Lisimaco Prieto Herrera

Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X

✒️Autor de: 96 Publicaciones Académicas

🎓Egresado de los módulos:

Presentación:

Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.

Certificación Académica de Lisimaco Prieto

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La lógica de procesamiento en el PAI y las validaciones" de la mano de nuestros alumnos.

SAP Expert


1. Concepto del Evento PAI El PAI es el evento que se desencadena inmediatamente después de que el usuario interactúa con la pantalla (dynpro) y realiza una acción, como presionar la tecla ENTER o hacer clic en un botón. Su objetivo primordial es validar los datos ingresados y determinar la acción a seguir en el flujo del programa, ya sea emitir un mensaje de error o navegar hacia otra dynpro,. Técnicamente, los módulos de este evento se declaran en la lógica de flujo de la dynpro bajo la sección PROCESS AFTER INPUT. Estos módulos se identifican en el código ABAP por llevar la palabra reservada INPUT al final de su nombre (ej. MODULE user_command_0100 INPUT). 2....

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


La logica de procesamiento en el PAI y las validaciones. Validación de datos de entrada en DIMPRO. Se explicó la importancia de validar los datos de entrada en una DIMPRO antes de ser utilizados. Existen dos tipos principales de validaciones: automáticas (realizadas por el sistema) y manuales (programadas en la lógica de proceso del PAI con la sentencia Fill). Validaciones automáticas El sistema valida automáticamente el formato de los campos según sus atributos, mostrando mensajes de error si se ingresa un valor incorrecto. Si un campo es obligatorio y no se completa, el sistema no permite continuar. La validación del...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: El evento PAI (Process After Input) en dynpros gestiona validaciones de datos y mensajes post-interacción del usuario. Domina validaciones automáticas/manuales y tipos de mensajes para crear aplicaciones robustas. Validaciones Automáticas (Sistema) 1. Formato de Campos El sistema verifica tipos de datos (ej: fecha, numérico). Ejemplo error: Letras en campo numérico → Mensaje de error. Visualización: Campo se resalta y debe corregirse. 2. Campos Obligatorios Si un campo tiene atributo Obligatorio, debe ser completado. Ejemplo: Campo vacío → Bloqueo hasta ingresar valor. 3. Ámbito de...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



La lógica de procesamiento en el PAI y las validaciones El PAI (Procesamiento Antes de la Interfaz) es una fase crucial en el ciclo de procesamiento de una pantalla (Dynpro) en SAP. El Dynpro consta de dos partes principales: PBO (Procesamiento Antes de la Pantalla) y PAI (Procesamiento Antes de la Interfaz o Input). Mientras que el PBO se encarga de preparar y mostrar los datos en la pantalla, el PAI gestiona la lógica que ocurre después de que el usuario interactúa con la pantalla y presiona un botón o realiza alguna acción. Funcionamiento de la lógica de procesamiento en el PAI La lógica del PAI se organiza normalmente en un módulo de proceso de diálogo llamado dentro...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

El evento PAI (Process After Input) tiene como función crucial validar los datos de entrada de la pantalla antes de que sean utilizados. Existen dos tipos de validaciones: las automáticas realizadas por el sistema y las manuales programadas. · •La validación de los datos de entrada En el PAI se validan los datos que el usuario ingresa en la pantalla antes de su uso. · •Las validaciones automáticas El sistema realiza una serie de validaciones automáticamente antes de procesar el evento PAI. o â—¦La verificación del formato: El sistema valida las entradas según los atributos de cada campo, mostrando un mensaje de error si el valor es incorrecto. o â—¦La...

Acceder a esta publicación

Creado y Compartido por: Roberto Fluder Ahumada

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


La sentencia Chain EndChain de la logica de procesamiento de una dimpro definen cadena de procesamiento dentro de Chain EndChain se ejecutan las sentencias fill 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 podemos colocar un chain endchain dentro de otro chain endchain la sentencia chain endchain puede ser especificada tanto en el PAI como en el PBO sin embargo en el PBO no tiene efecto alguno. *************** La sentencia CHAIN-ENDCHAIN encierra un conjunto de instrucciones FIELD, que en caso de error en la entrada de alguno de ellos, todos los campos CHAIN-ENDCHAIN se podran modificar, mientras que los que no se encuentren dentro del...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

La validación de los datos de entrada. Una de las funciones más importantes del PAI, es la de validar los datos de entrada de la pantalla antes de ser utilizados. Existen dos tipo de variables de los datos de entrada: Las variables automáticas realizadas por el sistema. Las variables manuales programadas con la sentencia FIELD en la lógica de proceso del PAI de las dynpro. Las validaciones automáticas. El sistema realiza automáticamente una serie de validaciones de los datos de entrada antes de procesar el evento PAI. Estas validaciones son las siguientes: La verificación del formato: el sistema valida las entradas de acuerdo a los atributos de cada campo. LA verificación...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

LA VALIDACIÓN DE LOS DATOS DE ENTRADA. Existen dos tipos de validación de lo datos de entrada: • La validaciones automáticas realizadas por el sistema. • Las validaciones manuales programadas con la sentencia FIELD en la lógica de proceso del PAI de las dynpros. LAS VALIDACIONES AUTOMÁTICAS La verificación de formato: 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 y se volverán a mostrar los campos para su nueva entrada. La verificación de campos obligatorios: cuando a un campo se le asigna el atributo de obligatorio, el sistema no continuará con el procesamiento, a...

Acceder a esta publicación

Creado y Compartido por: Gerardo Jose Campos Tovar / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Processing Logic in "PAI" and Data Validations Data Input Validation One of the critical functions of "PAI" is to validate the input data on the screen before it's used. There are two types of input data validations: Automatic check performed by the system. Manual check programmed using the "FIELD" command in the processing logic of Dynpros. Automatic Validation The system automatically performs several checks on input data before processing the "PAI" event. These checks include: Format verification: The system validates inputs based on the attributes of each field. If an incorrect value is detected, an error message is displayed, and the fields are shown again for re-entry. Mandatory...

Acceder a esta publicación

Creado y Compartido por: Jaime Eduardo Gomez Arango / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


La lógica de procesamiento en el PAI y las validaciones 1 - la validacion de los datos d entrada. PAI valida los datos de entrada. - validaciones automáticas. - validaciones manuales: con sentencias field en la logica. 2 - Validaciones automáticas. El sistema realiza automaticamente las sig validaciones: - verificacion de formato. - campos obligatorios. - verificacion del ambito de valores. 3 - Validaciones Manuales. validaciones a los datos de entrada con: field: validar individualmente cada campo. Chain-EndChain. La validacion de un campo de la dynpro en un module. field wa_screen_0100-dni module validar_dni_0100. crear el module para hacer la validacion. module validar_dni_0100...

Acceder a esta publicación

Creado y Compartido por: Pablo Adrian Oggero

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!