sábado, 5 de junio de 2010

Microsoft publica el Rollup 11

Como cada 2 meses, Microsoft ha publicado un nuevo Update Rollup 11.
Puede ser descargado de aquí: http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=f84f2bfb-393d-4b90-bf1b-300a82ec6083
Para mas información mirar la descripción de los cambios aquí:
http://support.microsoft.com/default.aspx?kbid=981328
y en el blog del equipo de CRM:
http://blogs.msdn.com/b/crm/archive/2010/06/04/update-rollup-11-for-microsoft-dynamics-crm-4-0.aspx

Como siempre: mucho cuidado y probar bien la instalación de esto antes de instalar en producción.

Un saludo

viernes, 4 de junio de 2010

Cuidado con los "Otros"


Se ha publicado un artículo en el blog del equipo de CRM con unos consejos realizados por el MVP Joel Lindstrom, que creo que son interesantes, ya que surgen de la experiencia de diversas implementaciones en muchos clientes.
El artículo es el siguiente:
Lost: Beware of the "Others"
Si bien el título es gracioso y nos hace referencia a la serie finalizada recientemente (tristemente), los consejos son muy útiles.
Habla de los típicos campos de tipo picklist para categorizar Cuentas o Contactos, en donde después de una seria de valores, se añade el "peligroso" valor de "Otros" para definir el registro.
El tema es que como a los usuarios les suele ser mas "fácil" poner "Otros" que seleccionar el valor que debería ser, o porque la categorización no recoge el valor que se necesite(no siempre es culpa del usuario), resulta que puede ocurrir que la gran mayoría de los registros terminen teniendo el valor "Otros".
Esto puede provocar que se dificulte mucho la explotación de esta información, y para evitar esto da algunos consejos:

  • Dentro de lo posible, no incluir el valor "Otros" en los picklists.

  • En su lugar, diseñar un proceso sencillo para que los usuarios puedan solicitar nuevos valores para el picklist.

  • En caso de ser muy necesario el valor "Otros", tener el mismo muy controlado, para que no ocurra lo descrito.

  • En caso de que la categorización pueda ser muy cambiante, analizar la posibilidad de poner un "Lookup" en lugar de un "Picklist", y que sean los mismos usuarios los que puedan gestionar la categorización. (esta recomendación es añadida)


  • un abrazo

    miércoles, 2 de junio de 2010

    Haciendo consultas con LINQ usando Microsoft Xrm

    Siguiendo con el artículo Usando la nueva SDK 4.0.12 (Microsoft xRM) voy a mostrar como seguir aprovechando las nuevas posibilidades que nos permite la nueva SDK (4.0.12).
    En este artículo mostraré un par de ejemplos de como poder hacer consultas en LINQ al CRM.
    En el siguiente cósigo muestro como se podrían hacer consultas en LINQ, para recoger datos de contactos en CRM, filtrando por el email:

    var crm = new Xrm.XrmDataContext("Crm");

    var namedContacts =
    from contact in crm.contacts
    where contact.emailaddress1 == "demianr@demo.com"
    select contact;
    foreach (var c in namedContacts)
    {
    System.Console.WriteLine(c.fullname);
    }

    var contacts4 =
    from contact in crm.GetEntities("contact")
    where contact.GetPropertyValue("emailaddress1") == "demianr@demo.com"
    select contact.GetPropertyValue("fullname");

    foreach (var c in contacts4)
    {
    Console.Write("{0}, ", c);
    }


    Como se ve, hay 2 formas de hacer las consultas, la primera es con los objetos creados por crmsvcutil.exe, y la segunda manera es realizandolo con "Dynamics Entities".

    lunes, 24 de mayo de 2010

    Usando la nueva SDK 4.0.12 (Microsoft xRM)

    En la nueva versión de la SDK, se recogen una serie de herramientas y ejemplos de código, muy útiles para el trabajo con CRM.
    Esto se recoge en el capítulo Advanced Developer Extensions for Microsoft Dynamics CRM 4.0 (Microsoft xRM).
    En este post, intentaré dar una especie de "ayuda" de como empezar a utilizar estas utilidades para sacar provecho de las mismas.
    Haré un pequeño ejemplo paso a paso de como crear un nuevo proyecto, y utilizar el código de xRM para crear un Contacto.

    Paso 1: copiar la herramienta "crmsvcutil.exe" que contiene la SDK en la carpeta "SDK\microsoft.xrm\tools" en el servidor de CRM.

    Paso 2: Ejecutar en una línea de comandos lo siguiente:
    crmsvcutil /server:"http://localhost/DEMO" /namespace:Xrm /dataContextPrefix:Xrm /out:Xrm.cs

    Esto genera un fichero "Xrm.cs" con todas la estructura necesaria para trabajar con "xRM".

    Paso 3: Crear un nuevo proyecto de tipo "Aplicación de consola".

    Paso 4: Añadir las siguientes referencias al proyecto:
  • Microsoft.Crm.Sdk.dll y Microsoft.Crm.SdkTypeProxy.dll (SDK\Bin)
  • Microsoft.Xrm.Client Microsoft.Xrm.Portal Microsoft.Xrm.Portal.Files (SDK\Microsoft.Xrm\Bin)
  • System.Data.Services System.Data.Services.Client (.NET)

    Paso 5: Añadir la clase "Xrm.cs" generada previamente con la herramienta "crmsvcutil.exe"

    Paso 6: Añadir un nuevo fichero de Configuración de la aplicación (app.config) con el siguiente Xml (reemplazar las credenciales del usuario):








    El proyecto quedaría así:


    Paso 7: añadir el código para la creación del Contacto:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace TestXrm
    {
    class Program
    {
    static void Main(string[] args)
    {
    CrearContacto();
    }
    static void CrearContacto()
    {
    var crm = new Xrm.XrmDataContext("Crm");

    var contact = crm.CreateEntity("contact");

    contact.SetPropertyValue("firstname", "Demian Adolfo");
    contact.SetPropertyValue("lastname", "Raschkovan");
    contact.SetPropertyValue("emailaddress1", "demianr@demo.com");

    var id = Guid.NewGuid();
    contact.SetPropertyValue("contactid", id);

    crm.AddObject("contact", contact);
    crm.SaveChanges();

    var id2 = contact.GetPropertyValue("contactid");

    }

    }
    }


    Espero les sirva!

    un abrazo
  • jueves, 13 de mayo de 2010

    Combinación de correspondencia con Campañas de marketing

    Existen algunas entidades de sistema que no tienen la posibilidad de realizar Combinación de correspondencia con Word directamente desde CRM. Por ejemplo: Campañas, Listas de marketing, Competidores, Pedidos, etc.
    Si quisiésemos hacer una combinación de correspondencia, sólo nos quedaría la opción de exportar primero a Excel y luego combinar desde allí. Esta opción es medianamente válida, salvo que nos obligaría a hacer el paso adicional de exportar primero a Excel.
    Para permitir esto, existe una forma NO SOPORTADA de permitir esta posibilidad, que consiste en actualizar mediante un UPDATE en el SQL los metadatos de la entidad.
    Para esto habría que hacer el siguiente update y luego un "IISRESET":

    UPDATE MetadataSchema.Entity
    SET ismailmergeenabled=1
    WHERE name='campaign'
    Entonces la vista de Campañas tendría la opción de combinar correspondencia:

    Cabe destacar que este cambio también habilitará la opción de creación de nuevas plantillas de combinacion de correspondencia relacionadas con Campañas:


    Tengan en cuenta que esto no esta soportado, pero bueno, podría darnos una buena salida si se necesitase.

    Un saludo!

    viernes, 7 de mayo de 2010

    Se ha publicado una nueva versión de la SDK (4.0.12)

    Pues si, finalmente 6 meses después de la última actualización, se ha publicado una nueva versión de la SDK del CRM.
    Puede descargarse de aquí: http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en
    A todos los que desarrollen para CRM, les recomiendo tener siempre la última versión de la SDK, ya que se arreglan pequeños "errores" en la documentación y añade nuevas funcionalidades y ejemplos.
    En este caso lo más interesante es sin duda el capítulo dedicado a "xRM" (Advanced Developer Extensions for Microsoft Dynamics CRM 4.0), donde se provee y explica una serie de herramientas para facilitar el trabajo con el CRM. Incluye una funcionalidad para crear clases en .NET (CrmSvcUtil.exe) desde la estructura de entidad relación de la base de datos de CRM, ejemplos de como utilizar Linq, etc.
    Espero les sirva!

    un abrazo

    jueves, 6 de mayo de 2010

    CRM 5 saldría primero en online


    Siguiendo la estrategia de Microsoft de pasar todo a la "nube", aparentemente la nueva versión de CRM (conocida como "CRM 5") parecería ser que va a salir primero en su version "Online" para luego salir las versiones "On premise".
    Según un artículo publicado en "ZDNet", la versión online saldría antes de fin de 2010 y luego mas tarde las versiones "On premise".
    El artículo es:
    Microsoft to deliver its cloud-hosted CRM 5 first, software later
    Aparentemente la versión "online" saldría en 32 países y 41 idiomas.

    Un saludo,