lunes, marzo 14, 2016

Integrando Microsoft Dynamics NAV 2016 con Microsoft Dynamics CRM



Una de las novedades de la nueva versión de NAV es la integración nativa con Dynamics CRM.

En las versiones anteriores (desde NAV 2009 R2 hasta NAV 2015) teníamos que usar el “Connector for Microsoft Dynamics”, que tenía una serie de limitaciones, y que estaba fundamentalmente concebido para la sincronización de datos entre tablas de NAV y entidades de CRM.

Ahora, la integración se hace de forma muy rápida y con un elevado grado de automatización.
Los 4 pasos para integrar NAV con CRM son los siguientes:
  1. Configurar Dynamics CRM.
  2. Configurar la conexión desde Dynamics NAV a Dynamics CRM.
  3. Validar la configuración de sincronización de datos.
  4. Hacer el “mapeo” o emparejar los registros entre Dynamics NAV y Dynamics CRM.


1.       Configuración de Microsoft Dynamics CRM:

Lo primero es configurar los usuarios de Microsoft Dynamics CRM para la conexión y sincronización de Microsoft Dynamics CRM. Opcionalmente, se puede instalar la Solución de Integración de Microsoft Dynamics NAV que permite ver las estadísticas de los clientes de Microsoft Dynamics NAV y la navegación a los clientes a partir directamente de las cuentas de Microsoft Dynamics CRM, contactos, usuarios y productos.


Alta de usuario en CRM

Vamos a comenzar con la creación del usuario en CRM. La recomendación es dar de alta un usuario nuevo, con privilegios de escritura, lectura, modificación y eliminación de datos en las entidades que serán integradas con Dynamics NAV.

               IMPORTANTE: No se debe utilizar esta cuenta para iniciar sesión en Microsoft Dynamics CRM para modificar los registros de entidades que se integran con Microsoft Dynamics NAV porque los cambios serán ignorados por los trabajos de sincronización de integración de Microsoft Dynamics NAV.

Si estamos haciendo la integración con CRM Online, el alta debemos hacerla desde dentro del portal de Administración de Office 365, al que le asignaremos el rol de “usuario”.

Posteriormente, dentro de Dynamics CRM Online, en el apartado de “Configuración”, vamos a “Seguridad” y en el apartado de “Usuarios” lo seleccionamos:


Una vez en la ficha del usuario, en la pestaña de “Administración” os recomiendo asignarle el Modo de acceso de “No interactivo”

OPCIONAL: Instalación de la Solución de Integración de Microsoft Dynamics NAV:

Microsoft Dynamics NAV incluye una solución que permite a los usuarios acceder a los registros asociados en Microsoft Dynamics NAV, como clientes y artículos, de los registros en Microsoft Dynamics CRM, como las cuentas y productos. La solución agrega un enlace en las páginas de registro de Microsoft Dynamics CRM que abre el registro de Microsoft Dynamics NAV asociado. La solución también se utiliza para mostrar información de Microsoft Dynamics NAV en una parte de ciertos registros de entidad en Microsoft Dynamics CRM, como las cuentas. La instalación de esta solución es opcional, no es un requisito para la integración… pero mola :-)
Para realizar la instalación, lo primero es localizar el fichero “DynamicsNAVIntegrationSolution.zip”, que está ubicado en el DVD de instalación de NAV 2016, dentro de la carpeta “CrmCustomization”.


Con las opciones que nos ofrece por defecto, continuamos hasta que se completa el proceso, quedándonos tal que así:

Esto añade 2 roles de seguridad adicionales, uno de Administrador y otro de Usuario de integración (para usar la funcionalidad):


Y, por supuesto, se generan las nuevas entidades  “Conexión a Dynamics NAV” y “Estadísticas de cuentas de Dynamics NAV”.

Podemos hacer que se muestren modificando las propiedades de la entidad, dentro de “Configuración” -> “Personalización” -> “Personalizar el sistema”:


En este sentido, se puede mostrar la entidad en “Configuración”, de forma que el usuario que tenga el rol de “Admin” pueda personalizar la entidad:


Lo siguiente que debemos hacer ahora es asignar los nuevos roles, de tal forma que asociaremos el rol “Dynamics NAV Integration Administrator” al usuario que conectará con NAV, y el rol “Dynamics NAV Integration User” a todos nuestros usuarios de CRM que requieran hacer uso de las características de la solución de integración instalada.

               IMPORTANTE: Si instalamos la solución de integración después de haber configurado la conexión con Dynamics CRM desde Dynamics NAV, tendremos que modificar la configuración de la conexión para que apunte a la URL del cliente Web de Dynamics NAV.



2.       Configurar la conexión desde Dynamics NAV a Dynamics CRM

Para realizar la configuración en Dynamics NAV, necesitaremos al menos 2 cosas: la URL del servidor de Microsoft Dynamics CRM, que normalmente será HTTPS o HTTP y el FQDN (esquema URI), y un usuario (si es dedicado para la integración mejor).

Para una conexión como la de este ejemplo, donde nuestro servidor está basado en Dynamics CRM Online, la conexión será del tipo https://mi-organizacion.crm4.dynamics.com.

Para comenzar con la configuración, dentro de Dynamics NAV, debemos ir a “Departamentos” -> “Administración” ->“Administración de IT” ->“Servicios”. Una vez aquí vamos a “Configuración de conexión de Microsoft Dynamics CRM”:


Esto nos abre la página de configuración, donde debemos especificar los datos comentados con anterioridad: la URL de Dynamics CRM y el usuario y password:


Lo siguiente que haremos será darle a “Probar conexión”, que nos dará un mensaje diciendo si es correcta o no. Normalmente, si no consigue conectar, el informe de error es lo suficientemente descriptivo como para que nos oriente sobre cómo solucionarlo :-)

               NOTA: Lo más normal es que salte un aviso advirtiendo sobre el cifrado de datos, ya que no lo hemos configurado. No es necesario configurarlo para que funcione, y lo podemos configurar cuando queramos desde la sección de “Cifrado”, en Administración del cifrado”


Lo siguiente que haremos será marcar el checkbox de “Activado”:


Este checkbox podemos marcarlo o desmarcarlo a demanda, en cualquier momento. Evidentemente, mientras que no esté marcado como “Activado” no funcionará la sincronización.

Cuando marcamos este checkbox la primera vez, si no tenemos una configuración previa de la conexión, NAV nos preguntará si queremos usar la configuración de sincronización “por defecto”.

Nuevamente, si por el motivo que sea no hacemos esto, tenemos la opción de “regenerar” la configuración a sus valores predeterminados desde la pestaña de “Acciones”, haciendo click en “Usar configuración de sincronización predeterminada”.


Con esto, podríamos decir que podríamos comenzar a trabajar con datos de Dynamics CRM en Dynamics NAV :-)

Tenemos otra serie de campos que aparecen ahora, en las pestañan que se habilitan cuando está activada la sincronización:

  • Solución de integración de Dynamics NAV importada: básicamente se marca como “Sí” si hemos realizado el paso opcional de importar la solución del paso anterior dentro de Dynamics CRM.
  •  URL del cliente web de Dynamics NAV: es la URL de acceso al cliente Web. Es necesaria para que funcione la solución de integración.
  •  Versión: responde a la versión de Dynamics CRM.

Luego tenemos 2 campos interesantes:


Si hacemos click en “No” en cualquiera de ellos, el sistema lo cambiará a “Sí” ejecutando la acción correspondiente:
  • El usuario de conexión de Dynamics CRM es el usuario de integración: si marcamos esto como “Sí” nos pedirá las credenciales de administrador de Dynamics CRM y modificará la configuración del usuario en CRM, convirtiéndolo en “No interactivo”.


  • Integración del pedido de venta habilitado: esto permite que los pedidos de venta generados en Dynamics CRM sean importados en NAV.


  • Los usuarios de Dynamics NAV deben asignar a los usuarios de Dynamics CRM: esto implica que todo usuario de NAV debe tener en su cuenta un “mapeo” entre el email de autenticación de Office 365 de su cuenta de usuario de Dynamics NAV, con la dirección de correo principal de Dynamics CRM. Si desmarcamos esto, lo que entiende el sistema es que cualquier usuario de NAV puede acceder a los datos de integración, y es el “usuario de integración” el que interactúa con los datos en su nombre.


En este ejemplo, dado que en la cuenta de mi usuario no está habilitado, nos aparece como resultado “No” en el campo “El usuario de Dynamics NAV actual está asignado a un usuario de Dynamics CRM”.


Podemos comprobar el estado de la conexión desde “Conexiones de servicio”, que podemos encontrar dentro de “Administración de IT” -> “Servicios”


Llegados a este punto ya tenemos nuestra integración funcionando.

 

Nota importante sobre el proceso de sincronización:

Mientras que la sincronización está activa, cuando generamos nuevos registros (clientes, contactos, etc.) se les asigna automáticamente un “Id. de integración”, pero… ¿qué ocurre si los doy de alta con la sincronización deshabilitada?

 Pues sencillamente tendremos que lanzar un proceso de forma manual, que encontramos dentro de la pestaña “Acciones”, en el grupo “General” -> “Generar id. de integración”:


Con esto hacemos la tarea de rellenar manualmente los Identificadores de integración que han quedado “huérfanos” en el período que ha estado la sincronización desactivada.


3.       Validar la configuración de sincronización de datos

Ya que hemos realizado una parametrización con los valores predeterminados, deberíamos al menos verificar que los mapeos son correctos.

Esto podemos hacerlo desde “Asignación” -> “Lista de asignaciones de tablas de integración”:


Esto nos abre la siguiente ventana:


Básicamente podemos ver la equivalencia entre tablas de Dynamics NAV y entidades de CRM, así como sus diferentes filtros aplicados.

Por supuesto, estas asignaciones son las predeterminadas, pero el sistema está totalmente abierto a conectar otras tablas adicionales, incluso si pertenecen a algún desarrollo o personalización propia, siempre que tengamos bien definida su equivalencia en Dynamics CRM.

Cabe destacar las 3 últimas columnas:

  • Código de plantilla de config. de tabla: Especifica una plantilla de configuración que se utilizará para crear registros nuevos en la tabla de Dynamics NAV (que especifica el campo Id. tabla) durante la sincronización. Cuando accedemos para su edición, podemos ver cuáles son los valores predeterminados:


  • Código de plantilla de config. de tab. int.: Especifica una plantilla de configuración que se utilizará para crear nuevos registros en la tabla de base de datos externa, como Microsoft Dynamics CRM. Lo que vemos es algo así.


  • Sincronizar solo reg. Emparejados: Especifica cómo administrar los registros desacoplados en entidades de Microsoft Dynamics CRM y tablas de Microsoft Dynamics NAV cuando la sincronización la realizada un proyecto de sincronización de integración. 
    • Si selecciona esta casilla, solo se sincronizarán los registros de Microsoft Dynamics CRM y Microsoft Dynamics NAV que están acoplados. Ésta es la configuración predeterminada.
    • Si desactiva esta casilla, para cualquier registro del origen que no está acoplado a un registro en el destino, se creará automáticamente un registro nuevo que se acoplará en el destino. Por ejemplo, al sincronizar datos desde los clientes de Microsoft Dynamics NAV a cuentas de Microsoft Dynamics CRM, si un cliente no está acoplado a una cuenta, se creará automáticamente una cuenta nueva en Microsoft Dynamics CRM que se acoplará al cliente. Por otro lado, al sincronizar datos desde clientes de Microsoft Dynamics CRM a clientes de Microsoft Dynamics NAV, si una cuenta no está acoplada a un cliente, se creará un cliente nuevo en Microsoft Dynamics NAV que se acoplará a la cuenta.

Por otro lado, tenemos que verificar los trabajos “programados” de sincronización. Esto lo tenemos en el grupo de “Sincronización” de la pestaña “General”:


Esto básicamente son movimientos de la cola de proyectos, que tenemos disponible en el estándar de NAV para las tareas programadas.


Desde aquí podemos poner en espera, reiniciar, ver los movimientos de registro, etc. Si damos a editar cualquiera de los movimientos, tenemos esta pantalla:


Como se observa, aquí especificamos si queremos ejecutar un “Codeunit” (módulo) o un informe, se le pueden pasar parámetros en la ejecución, establecerle un calendario de ejecución, periodicidad, etc.


Vale, pero… ¿cómo funciona el proceso de sincronización?:

Cada movimiento de cola de proyectos de sincronización utiliza una asignación de tabla de integración concreta que especifica qué tabla de Microsoft Dynamics NAV y entidad de Microsoft Dynamics CRM se deben sincronizar. Las asignaciones de tabla también incluyen configuraciones que controlan qué registros de la tabla de Microsoft Dynamics NAV y de la entidad de Microsoft Dynamics CRM se deben sincronizar.

Para sincronizar datos, los registros de entidad de Microsoft Dynamics CRM deben emparejarse o “acoplarse” a los registros de Microsoft Dynamics NAV. Por ejemplo, un cliente de Microsoft Dynamics NAV debe acoplarse a una cuenta de Microsoft Dynamics CRM. Puede configurar los acoplamientos manualmente, antes de ejecutar los proyectos de sincronización o permitir que los proyectos de sincronización configuren acoplamientos automáticamente.

La lista siguiente describe cómo los datos se sincronizan entre Microsoft Dynamics CRM y Microsoft Dynamics NAV cuando se utilizan los movimientos de la cola de proyectos de sincronización:
  • De manera predeterminada, solo se sincronizan los registros de Microsoft Dynamics NAV que están acoplados a registros de Microsoft Dynamics CRM. Se puede cambiar la asignación de tabla entre una entidad de Microsoft Dynamics CRM y una tabla de Microsoft Dynamics NAV, de manera que los proyectos de sincronización de integración creen los registros nuevos en la base de datos de destino para cada registro de la base de datos de origen que no esté acoplado. Los registros nuevos también se acoplan a los registros correspondientes en el origen. Por ejemplo, al sincronizar los clientes con cuentas de Microsoft Dynamics CRM, se crea un registro de cuenta nuevo para cada cliente en Microsoft Dynamics NAV. Las cuentas nuevas se acoplan automáticamente a clientes en Microsoft Dynamics NAV. Como la sincronización en este caso es bidireccional, se crea un cliente nuevo y se acopla para cada cuenta de Microsoft Dynamics CRM que aún no está acoplada.
  • Cuando se crean registros nuevos en Microsoft Dynamics NAV, los registros utilizan la plantilla que se define para la asignación de tabla de integración o la plantilla predeterminada que está disponible para el tipo de registro. Los campos se rellenan con datos de Microsoft Dynamics NAV o Microsoft Dynamics CRM según la dirección de sincronización.
  • En las sincronizaciones posteriores, solo se actualizarán los registros que se hayan modificado o agregado después de la última sincronización correcta. En el caso de los registros nuevos de Microsoft Dynamics CRM, los registros se agregan en Microsoft Dynamics NAV. Si los datos de los campos de los registros de Microsoft Dynamics CRM se han modificado, los datos se copian en el campo correspondiente de Microsoft Dynamics NAV.
  • Con la sincronización bidireccional, el proyecto se sincroniza de Microsoft Dynamics NAV a Microsoft Dynamics CRM y, a continuación, de Microsoft Dynamics CRM a Microsoft Dynamics NAV.


4.       Hacer el “mapeo” o emparejar los registros entre Dynamics NAV y Dynamics CRM

Ya lo último que nos falta es ver cómo podemos emparejar los registros y sincronizarlos manualmente.

Para acoplar un registro específico, nos vamos por ejemplo a un cliente cualquiera, y en la pestaña “Navegar”, dentro del grupo “Dynamics CRM”, elegimos “Acoplamiento” -> “Configurar acoplamiento”:


Esto nos abre la siguiente ventana, donde podemos ver el acople con la entidad de nuestro Dynamics CRM:

(En este caso, puesto que aún no he lanzado una “sincronización completa”, la cuenta de Dynamics CRM está sin datos).

Para Sincronizar un registro específico, nos vamos por ejemplo a un cliente cualquiera, y en la pestaña “Navegar”, dentro del grupo “Dynamics CRM”, elegimos “Sincronizar ahora”:


Por último, para sincronizar múltiples registros, debemos irnos a la lista, seleccionar los registros que queremos sincronizar, y desde la pestaña “Navegar”, en el grupo “Dynamics CRM” -> “Sincronizar ahora”.


Para hacer la sincronización inicial:

Nos tenemos que ir a la “Configuración de conexión de Microsoft Dynamics CRM”, en la pestaña “Acciones” -> “Ejecutar sincronización completa”

Esto nos muestra la siguiente ventana:


Nos advierte de que los vendedores deben estar emparejados con los usuarios de Dynamics CRM, ya que de no ser así tendremos errores en la sincronización.

Si aceptamos, comienza el proceso:


Y concluye transcurridos unos minutos:


Aceptamos, y podemos comprobar el resultado, navegando desde “Lista de asignaciones de tablas de integración”:


Veremos que existen errores, puesto que no hemos realizado el emparejamiento entre vendedores y usuarios de Dynamics CRM (en el caso de que hayamos realizado el ejemplo con los datos por defecto de Dynamics CRM y los datos de la empresa “Cronus” de Dynamics NAV).


Por tanto, debemos dar de alta los usuarios en Office 365, irnos a Dynamics CRM y asignarle los roles pertinentes… y para concluir, establecer manualmente el emparejamiento entre “vendedor” de Dynamics NAV y “usuario” de Dynamics CRM:


Y hacemos la asignación:


Tras esto tan sólo debemos volver a ejecutar el proceso de “Ejecutar sincronización completa” que había mencionado al inicio.

Una vez concluido… LISTO!! Ya tenemos terminado nuestro proceso.

Podemos comprobarlo desde cualquier registro:


Espero que os haya servido!!

Un saludo! Miguel Llorca.

No hay comentarios:

Publicar un comentario