Cuando se trata de validar las respuestas de los usuarios, tienes las siguientes opciones:

  • "Obligatorio" ("Required") - obliga al usuario a proveer *algo* como respuesta.
  • "Rango de Fecha/número" ("Date/Number Range") - te permite establecer un límite inferior y superior para respuestas de fecha y números.
  • "Formato de respuesta" ("Answer Format") - sólo lo puedes encontrar en los campos de "Texto" ("Text"), esto hace que el usuario tenga que cumplir con unos requerimientos de formato en el valor de respuesta.

Imagina que tu "Formulario" ("Form") implica capturar un código de trabajo en una campo de texto.
El usuario debe ingresar un código de trabajo válido, pero la verdad es que ellos pueden colocar cualquier valor de texto.
Sabemos que un código de trabajo válido se ve así "JOB-XXXX" donde las XXXX son el valor numérico.

¿No sería genial poder validar su respuesta para asegurar que el valor al menos contiene el texto "JOB"?

Ahí es cuando debes usar la propiedad de "Validación personalizada" ("Custom Validation").

La propiedad de "Validación personalizada" ("Custom Validation") es una propiedad de propósitos generales que te permite definir una fórmula para revisar si un valor de respuesta es válido.
Un resultado verdadero significa que el campo es válido y el usuario puede continuar.
Falso significa que el campo no es válido y el usuario debe proveer una respuesta válida.

La "Validación personalizada" ("Custom Validation") te da la libertad de definir cualquier lógica para validar un valor de respuesta.

NOTA IMPORTANTE: La "Validación personalizada" ("Custom Validation") sólo funciona cuando un valor se ingresa en el campo.
Para obligar a un usuario a registrar un resultado, usa la propiedad de "Obligatorio" ("Required") junto con la de "Validación personalizada" ("Custom Validation").



Vamos a los pasos necesarios para lograr la "Validación personalizada" ("Custom Validation") para el escenario del código de trabajo que describimos antes.
Abre un "Formulario" ("Form") nuevo o uno existente en el "Diseñador de Formularios" ("Form Designer"), y sigue los siguientes pasos:

  1. Agrega un campo de texto en el "Formulario" ("Form"), con el título "Código de trabajo" y el "Nombre de Dato" ("Data Name") de "codigoTrabajo".
  2. Encuentra la propiedad de "Validación personalizada" ("Custom Validation") en el campo de "Código de trabajo". La encuentras al final de la lista de propiedades, en la sección "Avanzada" ("Advanced").
  3. Ahora debemos crear una fórmula que arroje un resultado de "Verdadero/Falso" ("True/False"). Cuando el resultado de la fórmula es "Verdadero" ("True"), el campo será considerado válido. Cuando el resultado es "Falso" ("False"), el campo será no válido.

Coloca la siguiente fórmula en la propiedad de "Validación personalizada" ("Custom Validation"):


string-length({{codigoTrabajo}}) = 8 and substring({{codigoTrabajo}}, 0, 4) = 'JOB-'


Wow, esa es una fórmula complicada!

Vamos a descomponerlo:


  • string-length({{codigoTrabajo}}) = 8

Primero debemos asegurarnos que la respuesta es exactamente de 8 caracteres de longitud. Recuerda que esperamos que los códigos de trabajo se encuentren en el formato "JOB-XXXX" - esto tiene un total de 8 caracteres.


  • substring({{codigoTrabajo}}, 0, 4) = 'JOB-'

Ahora, queremos asegurarnos que el código de trabajo empiece con el prefijo "JOB-". Entonces utilizamos la fórmula substring() para tomar los primeros 4 caracteres de la respuesta y comprobar si en efecto coincide con el prefijo necesario.


  • Usamos el operador lógico and para asegurarnos que ambas condiciones sean cumplidas para devolver un resultado "Verdadero" ("True").

Para entender mejor acerca de como crear una fórmula, consulta nuestra página de soporte "Crear una fórmula".

4. Encuentra la propiedad de "Mensaje inválido" ("Invalid message") en el nuevo campo. Se encuentra cerca a la parte superior de la sección "Avanzada" ("Advanced").

Por defecto, la aplicación mostrará el mensaje "Código de trabajo inválido" al usuario, si la propiedad de "Validación Personalizada" ("Custom Validation") tiene un resultado falso.
Si prefieres mostrar un mensaje personalizado:
Establece la propiedad de "Mensaje inválido" ("Invalid message") para que muestre el siguiente mensaje "Debes proporcionar un código de trabajo válido con el formato JOB-XXXX".
De esta manera el usuario sabrá como debe llenar el campo de Código de trabajo.

Guarda los cambios de tu "Formulario" ("Form") y pruébalo en tu dispositivo para ver la "Validación Personalizada" ("Custom Validation") en acción.