Tarea D: Validar la introducción de datos

De Egeasy
Saltar a: navegación, buscar

Nuestro registro de entrada y salida está bastante completo: las entradas y salidas se autonumeran y esta numeración se reinicia todos los años; tenemos fichas para almacenar la información de todas las personas (físicas o jurídicas) que presenten documentación; además, podemos reflejar la documentación presentada y el departamento al que va dirigido. Pero, ¿y si al rellenar los datos no se especifica alguno de estos datos? ¿Y si al introducir una ficha de Tercero no se especifican el Nombre o el CIF? Necesitamos algún mecanismo para garantizar que determinados datos siempre se introduzcan.

Para alcanzar este objetivo, ODL proporciona una operación sobre los contenedores: las validaciones. Una validación es un conjunto de condiciones que se evalúan cuando el objeto va a almacenarse. En caso de que alguna de las condiciones se viole, la plataforma lanza un mensaje e impide que el objeto se almacene. Veamos un ejemplo:

tipo [Tercero] es contenedor
   [Datos generales] es formulario
       [Nombre/Razón social] es texto
       [Apellidos] es texto
       [CIF/NIF] es texto
       [Dirección] es texto
       [Código postal] es texto
       [Municipio] es texto
       [Provincia] es texto
       [Teléfono 1] es texto
       [Teléfono 2] es texto
       [Fax] es texto
       [Email] es texto
   fin
   condicion [El campo Nombre/Razón social no puede estar vacío]
       -regla = [Datos generales].[Nombre/Razón social] = vacio;
       -localizacion.componente = [Datos generales].[Nombre/Razón social];
       -localizacion.mensaje = "[OBLIGATORIO]";
       -tipo = error;
       -mensaje = "Debe introducir un valor para este campo.";
fin

Para cada campo o valor que queramos comprobar deberemos añadir una declaración de condicion como la del ejemplo anterior.

En el atributo regla se especifica la condición lógica que se evalúa para comprobar si la condición es o no violada; en nuestro ejemplo, la condición se viola si el campo Nombre/Razón social está vacío.

En el atributo localizacion.componente indicamos el campo en el que debe posicionarse el cursor cuando se dispare la condición; en el ejemplo, cuando esta condición se viole el cursor se posicionará en el campo Nombre/Razón social.

En el atributo localizacion.mensaje introducimos el mensaje que queremos que aparezca en el campo indicado por localizacion.componente cuando el campo está vacío (incluso antes de se dispare la condición); en nuestro ejemplo, cuando creemos una nueva ficha de Tercero aparecerá el mensaje [OBLIGATORIO] en el campo Nombre/Razón social.

En el atributo tipo especificamos si la condicion produce un error o una advertencia. Ambos lanzan un mensaje al usuario. La diferencia es que el error impide que el contenedor se guarde, mientras que la advertencia sólo avisa al usuario, dejando a su elección almacenar o no el objeto.

Por último, el atributo mensaje contiene el mensaje que se mostrará al usuario cuando se viole la condicion. Este mensaje aparece a continuación del nombre de la condicion. En nuestro ejemplo, el mensaje completo de error sería: “El campo Nombre/Razón social no puede estar vacío. Debe introducir un valor para este campo”.

Compila y actualiza. Veamos cómo funciona.