sábado, 29 de agosto de 2009

Validaciones en el evento OnSave() de los formularios

Muchas veces necesitamos realizar validaciones en los formularios de CRM, que impidan que se guarden los datos introducidos en el mismo.
MSCRM 4.0 nos da la opción de recoger el evento que provocó la grabación del formulario, para poder realizar la validación que se necesite.
La documentación del evento OnSave() aparece en la SDK de CRM 4.0.
Allí nos detalla que podemos recoger la acción en el OnSave() accediendo a los valores de event.Mode que son los siguientes:


Hora intentaré hacer un par de ejemplos prácticos en relación con esto. Los ejemplos serán Javascripts que deberán ponerse en el evento OnSave() del formulario.

1) En una entidad donde tenemos una "Fecha desde" y una "Fecha hasta", no dejar guardar el formulario si la "Fecha hasta" es menor que la "Fecha desde":

if (event.Mode==1 event.Mode==2) // si es un evento de "Guardar" o "Guardar y cerrar"
{
var fechadesde=crmForm.all.new_fechadesde.DataValue;
var fechahasta=crmForm.all.new_fechahasta.DataValue;
if (fechadesde>fechahasta)
{
alert("La 'Fecha hasta' no puede ser menor que la 'fecha desde'.");
event.returnValue = false;
return false;
}
}

2) Ejemplo para no dejar completar una Cita, si no se rellena algo en el campo de descripción, para así obligar a rellenar los comentarios acerca de la misma:

if (event.Mode==58) // si es un evento de "Guardar como completado"
{
var comentarios=crmForm.all.description.DataValue;
if (comentarios==null || comentarios=="")
{
alert("Para completar la cita, debe rellenar los comentarios de la misma.");
event.returnValue = false;
return false;
}
}

No hay comentarios:

Publicar un comentario