INTRODUCCIÓN
Las validaciones personalizadas son un tipo de personalización que te permite validar datos antes de enviar la información a través del sitio web. Los registros no se actualizan/crean si una validación personalizada devuelve un error.
1. ACTIVAR VALIDACIONES PERSONALIZADAS
Activa las validaciones personalizadas utilizando la siguiente consulta.
update tblConfigItems set PorDef = 1, fModificado = getdate(), UserModificado = 51 where codigo = 'customValidations'
2. ESTRUCTURA DE LA TABLA
Solo hay una tabla involucrada en la configuración de las validaciones personalizadas.
tblCustomValidations: para cada campo diferente a validar se necesita una fila.
Campo | Descripción |
entity | empresas, oportunidades |
field | email, tel, Z_nif (nombre exacto que aparece en tblCamposStandard, tblCamposExtra)
|
name | nombre exacto de la función (validateNif, validateTel) |
description | descripción de la validación |
type | cadena “validation“ |
scope | cadena “field“ |
action | cadena “onSave” |
bucket | URL de la función (https://fmcustomactions.s3-eu-w…….) |
Debemos proporcionar al departamento de Soporte el nombre y la función JS, ellos nos darán la URL para establecer en el campo bucket de tblCustomValidations.
3.ESTRUCTURA Y EJEMPLOS DE FUNCIÓN
ESTRUCTURA
La función de validación personalizada siempre debe devolver un mensaje. Si el mensaje contiene una cadena diferente de ‘’ o con longitud > 0, la aplicación lo detectará como un error y mostrará la cadena en las diferentes aplicaciones.
var handler = function (value) { if (value) { let error = ‘’; const fieldRexp = / –REGEX EXPRESION– /i; const string = ((value == null) ? “” : value).toString().toLowerCase(); if (!fieldRexp.test(string)) { return error = ‘texto de error’; } else { return error; }} }
La validación puede usar una expresión Regex. Puedes evaluar la expresión antes de enviarla en este sitio web -> https://regex101.com/
VALIDAR CP ES (validateCpEs)
var handler = function (value) { if (value) { let error = ‘’; const cpRexp = /^(?:0[1-9]\d{3}|[1-4]\d{4}|5[0-2]\d{3})$/i; const string = ((value == null) ? “” : value).toString().toLowerCase(); if (!cpRexp.test(string)) { return error = ‘CP no válido’; } else { return error; }} }
VALIDAR EMAIL (validateEmail)
var handler = function (value) { if (value) { let error = ‘’; const emailRexp = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/; const string = ((value == null) ? “” : value).toString().toLowerCase(); if (!emailRexp.test(string)) { return error = ‘La dirección de email no es válida’; } else { return error; }} }
VALIDAR TEL ES (validateTelEs)
var handler = function (value) { if (value) { let error = ‘’; const telRexp = /^(+34|0034|34)?[6789]\d{8}$/; const string = ((value == null) ? “” : value).toString().toLowerCase(); if (!telRexp.test(string)) { return error = ‘Teléfono no válido’; } else { return error; }} }
VALIDAR NIF ES (validateNif)
var handler = function (value) { if (value) { let error = ‘’; const dniRexp = /^(\d{8})([A-Z])$/I; const cifRexp = /^([ABCDEFGHJKLMNPQRSUVW])(\d{7})([0-9A-J])$/I; const nieRexp = /^[KLMXYZ]\d{7,8}[A-Z]$/I; const string = ((value == null) ? “” : value).toString().toLowerCase(); if (!dniRexp.test(string) && !nieRexp.test(string) && !cifRexp.test(string) ) { return error = ‘NIF no válido’; } else { return error; }} }