24/12/07

CRM vs. SharePoint

Aparte de parecer el título de una película estilo "Alien vs. Predator", o más que un artículo es una declaración de intenciones de las que se hacen típicamente en estas fechas. Se trata de enumerar las maneras que existen (que se me ocurren) de conectar SharePoint y CRM, de forma más genérica primero y luego con ejemplos concretos en artículos individuales (y aquí es donde empiezan las buenas intenciones).

Integración visual en CRM Podemos añadir un IFRAME a un formulario de CRM que muestre una página de SharePoint. La página en cuestión podría (debería) estar libre de decoraciones estilo SharePoint para que el encaje sea más limpio. Esto se puede hacer fácilmente con SharePoint designer. Por ejemplo: para una cuenta de CRM, mostrar en su formulario una biblioteca de documentos de SharePoint con los documentos asociados al cliente. La URL de SharePoint se puede crear dinámicamente en el evento OnLoad del formulario, y debería incluir información para filtrar la biblioteca, por ejemplo el número de cliente.

CRM List Web Part Muestra una lista de entidades de CRM dentro de SharePoint (WSS o MOSS). También permite (como muchos otros web parts) filtrar detalles de otro web part. Por ejemplo: un Web Part con una lista de cuentas de CRM y otro conectado con los contactos asociados. Se puede descargar aquí y ya lo ha contado (mejor) Marco Amoedo en este post. Sencillo de configurar, pero con pocas funcionalidades y - en principio - no extensible, puesto que el código no está disponible.

Business Data Catalog Dentro de MOSS 2007 tenemos el gran invento del BDC: una herramienta que nos permite ver datos externos a SharePoint integrados como Web Parts. A diferencia del sistema anterior, es un sistema genérico que permite conectar a cualquier base de datos, (digamos Oracle, MySQL etc.) y necesita ser configurado abundantemente a nivel SQL. Para empezar, necesitaremos una Application Definition File específica para la fuente de datos. Hay gente que ha desarrollado la apropiada para CRM, en concreto Rehman Gul en este ejemplo.

Worflows/CallOuts/Plugins de CRM En cualquiera de sus versiones (la más clásica de CRM 3.0 o la nueva de CRM 4.0 integrada con Windows Workflow Foundation) podemos detectar eventos de CRM que actualicen o creen información en SharePoint. En el caso de los wf de CRM 3.0, estos eventos están limitados a la creación, cambio de estado y cambio de propietario. Con los CallOuts/Plugins no tenemos esta limitación. Por ejemplo: cada vez que se crea una cuenta de cliente en CRM, podríamos lanzar un proceso que cree una biblioteca de documentos en SharePoint. Habría que desarrollar la funcionalidad utilizando la SDK de SharePoint en una dll que integrar como una acción del workflow de CRM (versión 3.0). Para la versión 4.0 habría que desarrollar una CustomActivity.

Workflows de SharePoint Buenas noticias, también basados en WF. Tanto en WSS como en MOSS podemos asociar workflows a listas o bibliotecas de documentos. Las acciones elementales del workflow son actividades que pueden incluir cualquier código personalizado, incluyendo llamadas a la SDK de CRM. Por ejemplo: podríamos tener un sitio de SharePoint expuesto en Internet que permita al usuario dar de alta una solicitud de servicio en una lista especializada. El wf asociado a la lista podría crear un incidente en nuestro CRM a través de la SDK. Ventaja: la interfaz de usuario final es la propia de SharePoint. Si estamos en un sitio de "publishing" podemos darle el aspecto que queramos con sólo cambiar el diseño de la página con SharePoint designer.

Web Parts La SDK de WSS permite desarrollar nuestros propios Web Parts, que ahora además están totalmente integrados en ASP.NET 2.0, así que podemos probarlos en cualquier página aspx, no sólamente en un site de SharePoint. La idea es la misma que en el punto anterior, pero más cercano a la interfaz de usuario: el Web Part llama a la SDK de CRM directamente, sin que haya un almacenamiento en SharePoint. El ejemplo: el mismo del punto anterior, pero sin lista en SharePoint. La pega: tenemos que diseñar la interfaz de usuario directamente en código (C# o VB) sin un editor visual a través de un CustomControl de ASP.NET 2.0

Servicio Windows Esta es la versión asíncrona de algunas de las opciones que hemos visto. La idea es tener relacionados una entidad de CRM (digamos Artículos de la KB) con una lista/biblioteca de SharePoint. Un servicio periódico utlizaría ambas SDKs para sincronizar los elementos concordantes. Habría que añadir una columna a la lista con el GUID de CRM y un campo en la entidad de CRM con el identificador de SharePoint para hacerlo posible.

1 comentario:

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.