This topic is a how to.
Please keep it as clear and simple as possible. Avoid speculative discussions as well as a deep dive into underlying mechanisms or related technologies.


En el artículo “Microsoft Dynamics CRM 2011 & Sharepoint 2010. Better Together [es-ES]” hablamos de como Microsoft Dynamics CRM 2011 y Microsoft Sharepoint 2010 se complementan brindando una plataforma escalable y extensible de colaboración, integración, gestión del conocimiento, administración de relaciones de negocio, ventas, marketing y servicios que cubren un alto espectro de las necesidades de cualquier negocio.

Hablamos también de las áreas de fortalezas de cada uno de estos productos, así como sus escenarios típicos de aplicación, los elementos y herramientas que tenemos disponibles en cada uno, las necesidades de negocio que cubren y también de las dualidades que existen y debemos tenerlas presente a la hora de tomar decisiones en nuestros clientes.

Ese artículo también está ahora disponible en elblogdeDynamicsCRM.com! [blog #1 de Dynamics CRM en español] en el siguiente link:  http://www.elblogdedynamicscrm.com/post/2011/05/23/Microsoft-Dynamics-CRM-2011-y-SharePoint-2010-Mejor-juntos-Parte-I.aspx

En este artículo vamos a ver como  configurar la integración entre ambos productos en un escenario típico ‘on-premise’, comenzando con un breve repaso de los componentes que intervienen y puntualizando algunas consideraciones previas importantes.

 

 

Ilustración 1 - Algunas diferencias y complementos entre Dynamics CRM y Sharepoint.

[Tabla comparativa extraída de http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/OSP309 ]

 

Cómo funciona la integración y qué componentes que intervienen?

Repasemos aquí a grandes rasgos como se logra técnicamente la integración entre ambas plataformas:

Dynamics CRM 2011 -> Sharepoint 2010

  • Se debe instalar el Dynamics CRM 2011 List Component en el servidor de Sharepoint. Esto es una solución .WSP que se instala a nivel de sitio y está disponible gratuitamente para su descarga.

 

La instalación de este componente hace que las librerías de documentos almacenados en Sharepoint luzcan de manera similar a como luce cualquier otra grilla de Dynamics CRM, brindando de esta forma una experiencia de usuario homogénea a lo largo de la solución.

 

También permite que automáticamente se creen carpetas dentro de las librerías de Sharepoint relacionadas a cada registro en CRM que utiliza documentación (ej. una oportunidad comercial, una cuenta)

 


Ilustración 0‑2 Lista de documentos relacionados de una Oportunidad comercial en CRM.

 

Para los que trabajan desde Dynamics CRM, directamente no tienen por qué saber de la existencia de Sharepoint. Simplemente, es trasparente para ellos.

 

  • A nivel de configuración, se establece en Dynamics CRM:
    • La URL del sitio de Sharepoint configurado para la integración (donde se instaló el List Component en el punto anterior).

 

  • Cuáles son las entidades de negocio habilitadas para trabajar con documentos.

 

 

A partir de esta configuración y para las entidades habilitadas, cada vez que el usuario haga click en la sección ‘Documentos’ de un registro (ej. un contacto, una oportunidad) se desplegará la correspondiente librería de documentos desde Sharepoint, permitiendo tanto editar documentos existentes como agregar nuevos (según los permisos del usuario). Asimismo, si la carpeta para ese registro aún no existe dentro de la librería de Sharepoint, Dynamics CRM solicita confirmación para crearla automáticamente.

 

Sharepoint 2010 -> Dynamics CRM 2011

También es posible trabajar con entidades de Dynamics CRM 2011 dentro de Sharepoint 2010.

Una opción disponible es a trav��s de la instalación de la List Web Part for Microsoft Dynamics CRM 4.0 disponible gratuitamente aquí: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3B6EB884-EC15-4288-A2A3-D0B47E057458&displaylang=en

Si bien fue desarrollada para Sharepoint 2007 y Dynamics CRM 4.0, funciona correctamente para Sharepoint 2010 on-premise y Dynamics CRM 2011 on-premise.

Otra opción que entiendo será la forma más ágil es a través de Business Connectivity Servivces (BCS, ex. BDC) de Sharepoint 2010.  BCS permite conectarse a bases de datos y servicios WCF (como los que expone Dynamics CRM) y desplegar su información dentro de una lista de Sharepoint.

Al momento de escribir este artículo, Microsoft está trabajando en un conector para BCS que automáticamente generará el modelo de BCS desde entidades de Dynamics CRM. De esta forma, la configuración de BCS no debería resultar traumática.

Puedes ver un preview (por ahora para CRM Online) en las demos de Girish Raja, aquí: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/OSP309

 

Ilustración 3 - Preview de Sharepoint BCS desplegando datos de Dynamics CRM 2011

 

Qué consideraciones debemos tener antes de comenzar con la integración?

  • Debemos tener claro en que Web application, site collection (colección de sitios) y sitio estaremos alojando las librerías documentales que utilizará Dynamics CRM.

Podemos utilizar alguna ya existente o en su defecto crear una nueva web application y un nueva colección de sitios (site collection) para este propósito.

Esto depende de las necesidades y preferencias de cada uno. En mi caso, preferí separar todo en una nueva web application con una nueva colección de sitios.

Puedes crear una nueva web application separada y luego un nueva colección de sitios, desde la Administración Central, a través de 'Application Management.'

Si no estás familiarizado con estas operaciones, puedes encontrar:

 

  • Debemos ser administradores de la colección de sitios de Sharepoint para poder instalar los Dynamics CRM 2011 List Components.

 

  • Si la ejecución de scripts de Powershell está restringida (por defecto, lo está) en el servidor de Sharepoint precisaremos habilitarla y para ello, debemos hacerlo  con una cuenta de administrador a nivel de granja (farm administrator).

 

 

Cómo configurar la integración?

A continuación se describirán los pasos más importantes necesarios para lograr esta configuración:

 

1.      Instalar Microsoft Dynamics CRM 2011 List Component for Microsoft SharePoint Server 2010

1.1   Descargar estos componentes desde:  http://www.microsoft.com/downloads/en/details.aspx?FamilyID=23c0f351-8694-4d92-9ddf-34a949aec6a7

1.2   Extraer el paquete a una carpeta en el disco.

1.3   El siguiente paso consiste en agregar la extensión .htc a la lista de extensiones permitidas en Sharepoint 2010.

 

Para esto tenemos un script que viene en el paquete [AllowHtcExtn.PS1] que debemos ejecutarlo con PowerShell, de la siguiente manera:

 

> & "<ruta>\AllowHtcExtn.ps1" http://<servidorsharepoint>

 

Donde ‘<ruta>’ es la ruta complete de la carpeta donde se extrajo el paquete y ‘<servidorsharepoint>’ es la ruta del servidor Sharepoint 2010

 

                IMPORTANTE:

  • Puede que no esté habilitada la ejecución de scripts (de hecho, esa es paradójicamente la configuración por defecto). Con el comando 'Get-ExecutionPolicy' podemos saber el nivel de restricción que está aplicando.

El nivel menos restrictivo es 'Unrestricted' y podemos setearlo a través del comando 'Set-ExecutionPolicy Unrestricted' como se muestra a continuación:

 Set-ExecutionPolicy Unrestricted

 

 

  • El usuario con el que ejecutamos el comando debe ser adminstrador de la farm (granja) de Sharepoint, de lo contrario, podemos obtener el siguiente error:

 

Cannot access the local farm. Verify that the local farm is properly configured, currently available, and that you have the appropriate permissions to access the database before trying again. ...

 

1.4   Una vez instalado lo anterior, continuamos a través de la Administración Central de Sharepoint. Vamos ahora  a flexibilizar la navegación de archivos para la web application.

 

Para ello vamos a 'Manage web applications' -> seleccionamos la web application correspondiente y vamos a General Settings->General settings. Allí seleccionamos Browser File Handling -> Permissive.

  

 

1.5   El siguiente  paso consiste en instalar la solución .WSP. Esto debe hacerse a nivel de colección de sitios (Site collection) ya que no es una solución de tipo granja (farm).

 

Para ello, vamos al sitio de Sharepoint en el que se crearán las listas de documentos y seleccionamos Site Actions->Site Settings. Ahí dentro vamos a Galleries->Solutions y subimos el archivo crmlistcomponent.wsp que está dentro del paquete que descargamos anteriormente:

 

 

 

1.6   Una vez subida la solución, procedemos a activarla presionando en 'Activate'.

 

 

1.7   Verificar que a nivel de colección de sitios (site collection) quedó activada la feature, de lo contrario, activarla. Para ello, vamos a Site Actions->Site Settings.

 

Bajo Site Collection Administration hacemos click en Site collection features.

 

Verificar el estado de la feature 'Microsoft Dynamics CRM List Component'. Debería estar 'Active'. De no ser así, hacer click en 'Activate'.

 

2.      Configurar  la Administración de documentos en Microsoft Dynamics CRM 2011

 

Una vez instalados los componentes de lista de sharepoint a través de los pasos anteriores, estamos en condiciones de configurar la integración desde Dynamics CRM 2011. Para ello, realizaremos los siguientes pasos:

 

2.1   Debemos dirigirnos a Settings->Document Management y allí presionar en 'Sharepoint Sites'.

 

Allí presionar en 'New'

 

2.2   Indicar un nombre que identifique al sitio (no tiene por qué coincidir con el nombre del sitio mismo de sharepoint) y la URL del sitio de Sharepoint que tiene activada la feature de 'Dynamics CRM List Component'.

 

  

IMPORTANTE:

Colocar el '/' (slash) al final de la URL. Esto es mandatorio. Cuidado con esto porque si no lo ponemos, probablemente obtengamos un error porque la configuración no lo resuelve automáticamente.

 

2.3   Presionamos en 'Save' para guardar los cambios.

 

2.4   Ahora debemos validar esta configuración. Para ello, una vez guardados los cambios presionamos en 'Validate'

 

 

 

2.5   Si seguimos correctamente los pasos, la configuración debería pasar a Status 'Valid'

 

IMPORTANTE:

Debemos volver a presionar en 'Save' para que el sitio quede en estado 'Valid'

 

2.6   Luego debemos marcar la casilla ‘list component is installed’ y presionar ‘Save and Close’. Esto hará que la configuración chequee en búsqueda de este componente que es el que va a permitir entre otras cosas, la creación automática de librerías de documentos para nuestras entidades de CRM.

 

IMPORTANTE:

Si les sucede que este paso les arroja el error ‘List component is not installed on the SharePoint URL…’, sugiero vean este post:

http://weblogs.asp.net/pabloperalta/archive/2011/04/25/integrating-dynamics-crm-2011-with-sharepoint-2010-error-list-component-is-not-installed-on-the-sharepoint-url.aspx

 

2.7   Ahora nos dirigimos a ‘Document Management Settings’ dentro de Settings->Document Management y seleccionamos las entidades para las que deseamos activar la administración de documentos.

 

 

Ilustración 0‑4 Entidades de negocio de CRM para habilitar la integración con librerías de documentos de Sharepoint

 

Las entidades por defecto que tienen activada esta característica son: Accounts, Articles, Leads, Opportunities, Products, Quotes y Sales Literature.

 

NOTA:

Podemos configurar nuestras entidades personalizadas para que también aprovechen esta característica, simplemente activando la casilla ‘Document management’ en la definición del a misma.

 

2.8   Al presionar ‘Next’ en esta página, debemos elegir como queremos que se organice la estructura de librerías documentales dentro de Sharepoint. Tenemos dos opciones:

  • Basado en una entidad en particular [Account| Contact]

Ej. de ruta para una oportunidad llamada ‘mi oportunidad’ relacionada a una cuenta ‘mi cuenta’: http://miservidor_sharepoint/mi cuenta/opportunity/mi oportunidad

  • No basado en una entidad

Ej. de ruta para una oportunidad llamada ‘mi oportunidad’

 http://miservidor_sharepoint/opportunity/mi oportunidad

Esta decisión será en función de lo que mejor aplique en cada escenario. Si no se tiene claro este punto, recomiendo que no basen la estructura en ninguna entidad en particular.

 

2.9   En el siguiente paso confirmamos la creación de la estructura de las  librerías documentales.

 

 

 

2.10           De esta forma terminamos la configuración. Solo nos resta probarla, abriendo cualquier registro de una de las entidades que habilitamos para la administración de documentos (ej. cuentas) y en el formulario de la entidad, hacer click en ‘Documents’ en la barra de navegación de la izquierda, tal como lo muestra la siguiente figura:

 

 

Espero que este artículo haya sido útil para comprender como se logra técnicamente la integración entre estas dos poderosas plataformas y las consideraciones a tener en cuenta.