Dynamics CRM no tiene la posibilidad de añadir campos de
contraseña (Password) a un formulario. Con este script , mostramos una manera
de cambiar el tipo de campo para que se pueda usar como campo de contraseña.
OGBIT.PasswordField
= {
Init: function (fields) {
var ids = fields.split(';');
for (var idx in ids) {
var id = ids[idx];
var control = document.getElementById(id);
if (control && typeof (control) != "undefined") {
control.setAttribute("type", "password");
OGBIT.PasswordField.Show(id, true);
}
}
},
Show: function (id, cmd) {
var control = Xrm.Page.getControl(id);
if (control)
control.setVisible(cmd);
}
}
La función Init toma un texto delimitado por punto y coma
con los identificadores de campo. A cada campo, le cambiamos el atributo del
campo a tipo Password. Esto automáticamente enmascara el texto en el campo con
asteriscos (*), y los valores de los caracteres reales no son afectados. Dado
que existe una demora entre el JavaScript cambiando el tipo de campo y el
formulario de presentación de los valores , tenemos que ocultar inicialmente el
campo en el formulario. Esto evita que los usuarios vean el texto real . Este
script utiliza el framework XRM JavaScript para obtener la referencia de campo
y establecer el atributo de visibilidad a TRUE después de cambiar el tipo de
campo. Consulte la función Show para más detalles.
Para hacer trabajar esto en CRM, puedemos añadir este script
como un recurso web y configurarlo en el evento OnLoad del formulario. Despues
podemos añadir un STRING con los nombres de los campos que se deben cambiar. Este
STRING es pasado como parametro a la function Init.
Debemos tener en cuenta que esta solución tiene una
limitación . Si nos fijamos en el código fuente HTML , verá el valor real de la
contraseña. Si esto no es deseable, hay que hacer trabajo adicional. Una manera
puede ser de que nunca se incluya el campo real en la forma y manejar la
actualización a través de los servicios web de OData.
Espero que encuentren este articulo útil.