Nuevamente tenemos un post para modificar el comportamiento de los atributos en la visualización de las interfaces de usuario finales. Ya hemos aprendido el uso de los TaggedValues y los Valores calculados. Ahora, utilizaremos nuevamente las Macros para agregar MegaUpdateTools que sirven para realizar alguna acción cuando se actualicen los valores de los atributos, es decir que esto no se ejecutará en cada actualización de la página, es necesario intentar añadir un valor y ahí es cuando la validación ocurre.
Para este ejercicio estaremos utilizando nuevamente al Contribuidor IRM y su vista de las propiedades de un riesgo, que actualmente se ve de la siguiente manera:
De forma estándar, la clave de los riesgos se pueden estar registrando de forma indistinta, pero qué ocurre si deseamos que el usuario registre explícitamente el inicio del código de riesgo con un patrón y de no ser así, el código no se podrá registrar. Esta es una situación en la que se puede implementar un UpdateTool, que verifique si la clave ingresada es correcta en cuanto al inicio de la cadena. El inicio que se propone es "DEMO-R-".
Para agregar un MegaUpdateTool, debemos ir directamente al atributo y agregar en su asociación un UpdateTool:
Crearemos una macro de forma habitual, escrita en Visual Basic Script y utilizaremos la siguiente función:
Function AttCtl_Update(Context As MegaUpdateToolContext,Status As Integer,ErrorMessage As String) As Boolean
End Function
Esta función nos permitirá enviar un mensaje de error en caso de que el código no siga la estructura que nosotros estamos definiendo, por lo que, pasaremos a escribir la función de Visual Basic para validar esto. El código quedaría de la siguiente manera:
Function AttCtl_Update(Context As MegaUpdateToolContext,Status As Integer,ErrorMessage As String) As Boolean
AttCtl_Update=True
Dim codigoRiesgo, mensaje, regex
mensaje = "Error al digitar el código de Riesgo, debe comenzar por DEMO-R-"
codigoRiesgo = Context.EditText
Set regex = New RegExp
regex.Pattern = "^DEMO-R-\d+$"
If not regex.Test(codigoRiesgo) then
ErrorMessage = mensaje
end if
End Function
En esta función, estamos definiendo el mensaje de error, obtenemos el código de riesgo por medio del Context y creamos una expresión regular que sirva para verificar el inicio de la cadena como "DEMO-R-" y en caso de no cumplirse la condición, aparecerá el mensaje de error y el atributo no se actualizará. Los resultados son los siguientes:
Podemos ver que al registrar DEMO CLAVE como código del riesgo, aparece el mensaje que definimos y ahora que registramos el siguiente:
Ahora, cuando se utiliza el inicio de la cadena que definimos correctamente, entonces el mensaje desaparece o no aparece y el valor si puede ser registrado correctamente.
Esta es una de las maneras que se pueden utilizar las MegaUpdateTools, para verificar la digitación de los textos ingresados por el usuario final, aunque no es la única función que se puede realizar con estos UpdateTool pero es un buen inicio para validar campos de forma sencilla. y rápida sin exigir un procesamiento tan pesado. Esperamos que haya sido de utilidad y de paso a implementaciones más complejas.