23/4/07

Buscador fuentes CRM y gadget

He encontrado esta aplicación que te permite lanzar búsquedas sobre CRM desde el Internet Explorer 7, como una fuente más de información. También incluye un gadget de Vista para lanzar la búsqueda desde el escritorio. Muy chulo.

http://blogs.msdn.com/joris_kalz/pages/Vista-Microsoft-CRM-Search-Gadget.aspx

10/4/07

Campañas de marketing de correo electrónico

Aquí van un par de trucos del lado oscuro de CRM: el módulo de marketing. Cuando tratamos de distribuir una actividad de campaña de marketing basada en el canal e-mail, podríamos esperar que CRM enviara los correos inmediatamente, ¿no? Pues no. En su lugar, lo que hace es crear actividades de correo electrónico que quedan abiertas y pendientes de enviar. Como no existe el botón Enviar en plan masivo, no queda más remedio que ir abriendo y enviando los correos uno por uno, lo que no parece ser de recibo.

Visto el problema, y a partir del Rollup 1 de CRM, se puede cambiar una clave en el registro que modifica este comportamiento. Si creamos una clave de tipo DWORD en la dirección

HKLM\Microsoft\MSCRM\CampaignSendEmail

y le ponemos el valor 1, el resultado de distribuir la actividad será el envío directo de los correos. En principio, y para unos pocos destinatarios, funciona. ¿Por qué esta precaución? He visto en este artículo de las news que hay gente a la que le ha fallado de forma aleatoria, presuntamente por incluir un enlace mailto: en el cuerpo del mensaje.

4/4/07

Luchando contra las Actividades de Servicio

Luchando contra una pequeña extensión de CRM que incluye funcionalidades con la parte de programación de actividades de servicio me he encontrado con los siguientes dos problemas, que muestro aquí para no olvidar.

  1. Problema al copiar una entidad que incluya el objeto activityparty
    Los objetos activityparty representan los participantes en una cita o en una actividad de servicio. En el caso de la actividad de servicio, pueden estar tanto entre los clientes (atributo customers) o en los recursos (atributo resources). Bueno, pues si los copiamos de unos previamente existentes, obtendremos un error SOAP SQL integrity violation que no ayuda mucho. Bien, pues el único problema es que hay que crear Guids nuevos para cada activityparty. Se soluciona con un simple

    foreach (activityparty ap in actividad.resources)
    ap.activitypartyid = Guid.NewGuid();

    Gracias a David Jennaway en las news de crm.developer
  2. Problema con el formato de las fechas en CrmDateTime
    Independientemente de lo que diga la SDK, sólo funciona bien con el formato yyyy/M/ddTHH:mm:00 sobre el campo Value. Hay que olvidarse (al menos yo me olvido) de los atributos date y time y especificar de golpe ambas, o sea:

    actividad.scheduledstart.Value =
    fechaInicio.ToString("yyyy/M/ddTHH:mm:00");