Reflexiones y apuntes sobre arquitectura, consultoría y gestión proyectos CRM

Carga, integración y/o sincronización de datos entre Microsoft Dynamics CRM y otro/s sistema/s

Una fase clásica de los proyectos CRM es el de la carga inicial de datos o, más frecuentemente, la integración o sincronización de datos entre CRM y uno o más sistemas de información ya existentes y con los cuáles el sistema CRM debe integrarse.

Aunque Microsoft Dynamics CRM ofrece algunas herramientas para hacer la carga inicial de datos (herramienta de importación y Data Migration Manager), no existe en el mercado herramienta alguna para conseguir que CRM y terceros sistemas estén permanentemente sincronizados.

Este artículo describe las principales características de la herramienta ENCAMINA.XMLSynchro, un motor de sincronización de datos entre Microsoft Dynamics CRM y cualquier otro sistema de información que suple la carencia de herramientas en esta ardua tarea de cualquier proyecto CRM.

Casos típicos

El caso más simple es el de tener que cargar CRM con datos ya existentes un sistema de información que va a ser sustituido por CRM. Se trata de cargar inicialmente los datos de dicho sistema a CRM.

Un caso muy habitual es que el sistema CRM tenga que estar actualizado con los datos que se crean en otros sistemas de información con los que ‘convive’ CRM. Por ejemplo, la Web de la empresa, dónde, por ejemplo, los clientes potenciales se subscriben a un newsletter. Este es un caso típico de una integración, dónde los datos ‘viajan’ en un solo sentido: desde el sistema Web al sistema CRM.

Otro cáso típico es que el sistema CRM tenga que estar ‘permanentemente’ sincronizado con otro sistema. Por ejemplo las Cuentas en un sistema ERP con las Cuentas en el sistema CRM, dónde los registros viajan en ambos dos sentidos: tanto desde el ERP al CRM como en sentido contrario.

Cómo trabaja XMLSynchro

En todos estos casos, XMLSynchro actúa como un maestro de orquesta, dedicado a consultar los datos a cargar, integrar o sincronizar en los dos sistemas implicados, y decidir si en uno o en otro sistema realiza una inserción de datos o una actualización de los ya existentes.

XMLSynchro es un conjunto de utilidades capaces de conectar Microsoft Dynamics CRM a cualquier base de datos accesible vía ODBC, diseñadas y programadas para hacer todo lo que se espera de una herramienta de este tipo:

  • Aplicar diferentes criterios de resolución de conflictos de datos (por ejemplo gana el último registro que fue modificado).
  • Detectar conflictos con una granularidad tanto a nivel de fila como a nivel de columna.
  • Filtrar inicialmente el conjunto de datos a tratar en el sistema origen o destino (típica cláusula WHERE).
  • Generar instrucciones SQL con la sixtaxis adecuada a cada gestor de base de datos (ORACLE, MySQL, MS SQL Server, Informix, Sybase, Postgre SQL, MS Access).
  • Mantener las claves primarias para la integración en cualquiera de los dos sistemas implicados, según los requerimientos.
  • Almacenar la fecha de la última sincronización para optimizar la siguiente tratando sólo los registros modificados desde entonces.
  • Trabajar con cualquier formato de fecha/hora para los datos de este tipo.
  • Trabajar con cualquier formato de decimal para los datos de este tipo.
  • Ejecutar la inserción o actualización de un registro si se cumplen criterios programados en .NET Assemblies externas a las que XMLSynchro es capaz de llamar dinámicamente durante la ejecución de la sincronización.
  • Guardar en tablas transaccionales las modificaciones realizadas en ambos sistemas.
  • Ejecutarse en modo ‘test’ para observar cuáles serían los resultados de la sincronización sin ejecutar inserciones o actualizaciones reales.
  • Generar diferentes niveles de log para informar su actividad (sólo errores, toda la actividad, etc…).
  • Informar los errores por email a un administrador.
  • Realizar transformaciones de datos consultando cualquiera de los sistemas implicados.
  • Transformar los datos utilizando más de 50 funciones típicas de cualquier lenguage de programación (convertir a mayúsculas, capitalizar, quitar espacios, devolver constantes, fechas, operaciones matemáticas…).
  • Realizar mapeos de datos para listas de valores despleglabes (por ejemplo 1=true, 0=false).

Ejemplo del definición de la tabla de origen en un archivo de parametrización


Ejemplo del mapeo entre campos en un archivo de parametrización

El diseñador de sincronizaciones

Para facilitar la definición de las sincronizaciones, XMLSynchro incorpora un diseñador que permite, tras establecer la conexiones a los dos sistemas a sincronizar, seleccionar las tablas o entidades a sincronizar y definir los mapeos correspondientes entre sus campos.

Esta herramienta genera los correspondientes archivos de definición de traspasos (en formato XML), que interpreta el motor de la sincronización para ejecutar los procesos de sincronización definidos de esta forma.


Diseñador de sincronizaciones. Paso 1: Establecer conexión


Diseñador de sincronizaciones. Paso 2: mapear campos

De este modo, el uso de XMLSynchro no queda limitado a usuarios técnicos, sinó que puede ser utilizado por usuarios que no requieren conocimientos avanzados sobre la tecnología subyacente. Cualquier usuario que controle los datos de su negocio puede ser el diseñador de los procesos de sincronización de datos entre sus sistemas.

XMLSyncho y las fuentes de datos

XMLSynchro es un sistema de sincronización que funciona integrando datos entre sistemas de información tales como:

  • Sistemas propietarios: SAP, Visual Plan, Navision, MOSS, a través de la API o servicios web proporcionados por estos fabricantes.
  • Bases de datos de otros sistemas ERP/Web/etc…: MS SQL, MySQL, Oracle, Access, Postgre SQL.

Conclusiones

Cualquier profesional que se haya enfrentado a una migración/carga, integración o sincronización de datos entre dos o más sistemas conoce perfectamente las dificultades que todo proyecto de este tipo presenta. Y necesita herramientas que le permitan actuar de forma flexible ante los varios cambios de requerimientos que suelen producirse a lo largo del proyecto.

XMLSynchro una herramienta que no necesita ni una sóla línea de código, dónde todos los datos de la una sincronización están definidos en archivos XML que el motor interpreta. Un motor que orquesta y ejecuta la sincronización de datos entre dos sistemas e informa puntualmente de las incidencias que puedan surgir durante el proceso.

Definitivamente, antes de programar desde cero una sincronización, es preferible utilizar una herramienta como XMLSynchro que acumula miles de horas de programación basada en la experiencia previa en multitud de proyectos de sincronización.

Sobre Juan Ribes

Director de Servicios CRM en ENCAMINA. Responsable de la implantación los proyectos CRM en ENCAMINA desde 2005, principalmente con Microsoft Dynamics.
Esta entrada ha sido publicada en Arquitectura, Automatización, Consultoría, Integración, Inteligencia de negocio, Metodología. Enlace permanente.
ENCAMINA, piensa en colores