martes, 11 de septiembre de 2012

The key specified to compute a hash value is expired, only active keys are valid. What??

Un mensaje que obtuve después de llevar un tiempo con el depurador de VS activo, repasando un plugin desarrollado para un CRM 2011 onpremise.












El motivo por el que ocurre no lo tengo claro, pero empecé probando con un cmd "iisreset", esto como podrán imaginar no funcionó.

Por el tipo de mensaje intuía que algun "key" debía volver a generar. Buscando información en la web encontré que había que reiniciar el servicio de procesamiento asíncrono y en algunos casos esto puede llegar a funcionar. En el mio no fue así.

Continuando la búsqueda encontré una herramienta dentro de la carpeta tools del CRM, exactamente en:

X:\Program Files\Microsoft Dynamics CRM\Tools\ Microsoft.Crm.Tools.WRPCKeyRenewal.exe

Me informé sobre esta herramienta y la ejecuté a través de la consola de comandos de windows "cmd". Esta herramienta fue la que finalmente volvió a generar el Key del que tanto se quejaba CRM y el problema quedó solucionado.

Espero esto les ayude y les devuelva la respiración, buena suerte.

jueves, 6 de septiembre de 2012

Error al agregar integrantes de una lista de marketing a través de búsqueda avanzada CRM4.0 /Error when adding members to a marketing list CRM4.0

Hace algunos días me reportaron un problema relacionado a un error que se producía al intentar agregar integrantes de una lista de marketing a través de búsqueda avanzada (guardada o nueva).

 
 
 
 
 
 
 
 
 
 
 
 
 
Después de analizar la búsqueda avanzada que estaba siendo ejecutada, pude ver que se estaban devolviendo registros duplicados como resultado. Los criterios de la búsqueda parecían ser correctos y se trataba de una búsqueda con más de un nivel de profundidad, con esto me refiero por ejemplo a:
 
 
  • Búsqueda de cuentas que tengas oportunidades con razón para el estado en curso y que cuenten con más de un registro asociado de competidor. El resultado obtenido era un listado de contactos repetidos.



 

 
 
 
 
 
 
 
 
 
¿La solución? Muy sencilla, verificar que los atributos “primary key” de las entidades que intervienen en esta búsqueda avanzada (en este caso contactid,  opportunityid y competitoid)  se encuentren  establecidos con el valor Búsqueda = SI.
 
 

 
 
 
 
 
 
 

Si el problema persiste y se está trabajando con una búsqueda guardada (vista guardada), lo mejor es eliminarla y volver a crearla.

Cerrar un formulario de CRM sin guardar cambios / Close a CRM form without saving changes

Mientras no realicemos un cambio en el formulario que deseamos cerrar, nos es suficiente con una sentencia javascript como esta...
 

Xrm.Page.ui.close();
 
Pero cuando hacemos una modificación, ¿qué sucede?. Una ventana como la que se muetra en la imagen siguiente nos aparece y el "Xrm.Page.ui.close();" de javascript ya no nos es suficiente.















La solución a este pequeño problema puede encontrarse al deshabilitar todos los campos del formulario y, posteriormente ejecutar un "Xrm.Page.ui.close();". Al deshabilitar los campos, CRM "olvida" las modificaciones realizadas y por lo tanto nos saltamos la dichosa ventanita.
 
Tener en cuenta que con esta acción no se estarán guardando los cambios que hayan podido realizarse sobre el formulario, ojo con esto.
 
Navegando por internet he encontrado una función que ya nos permite deshabilitar todos los campos de CRM, la comparto a continuación.


¿Cómo obtener rápidamente el objecttypecode de una entidad de CRM? / How to obtain the objecttypecode of an entity?


Abrir uno de los registro existentes de la entidad de interés, observar la barra de direcciones de la ventana de internet Explorer, el valor que aparece inmediatamente después del “etc=” corresponde al objecttypecode de la entidad.
 
Si no consigues ver la barra de direcciones presiona la tecla F11.
 
Ejemplo 1: Entidad personalizada

Ejemplo 2: Entidad estandar