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,