Garantizar que su migración de Dynamics 365 on premise a la nube no destruya las integraciones que necesita

Garantizar que su migración de Dynamics 365 on Premise a la nube no destruya las integraciones que necesita

Ana Neto Conectores, Productos y soluciones, Técnico 4 Comentarios

Artículo actualizado por última vez el: 28 de marzo de 2022

Veamos lo siguiente escenario:

Una próspera empresa ha estado utilizando Microsoft Dynamics CRM on-premise, integrado con su ERP (Dynamics NAV), SharePoint, y un sistema de contabilidad.

Después de algunas investigaciones, reconocen los beneficios de pasar a Dynamics 365 online y a la nube de Azure. Sin embargo, también descubren que Microsoft no proporciona a sus usuarios una solución práctica para transferir las bases de datos y todas las demás integraciones existentes de Dynamics CRM a Dynamics 365 Online.

Si el creador del software no tiene una respuesta a esta pregunta, ¿cómo puede esta empresa hacer realidad sus deseos?

Estamos orgullosos de presentar su solución para conectarse a la base de datos Dynamics 365.... sin conectarse realmente a la base de datos.

Mover Dynamics CRM On-Prem a D365 Online

Aunque es posible realizar una Dynamics 365 despliegue en las instalacioneses seguro decir que el uso de Dynamics 365 en línea es actualmente la opción más atractiva para casi todas las empresas.

Cuando investigan los modelos de Dynamics 365 en línea frente a los locales, llegan rápidamente a la conclusión de que la versión de Software como Servicio (SaaS) de Dynamics 365 en línea tiene las siguientes ventajas:

  • Menos estrés - No tiene que comprar hardware ni infraestructura, y no tiene que mantenerlo.
  • No compromiso - La licencia del software suele ser un modelo de pago por uso en lugar de una gran compra única por asiento.
  • Versátil - El SaaS suele ofrecer un acceso universal, que permite conectarse al software desde cualquier dispositivo (ordenador de sobremesa, portátil, teléfono móvil), siempre que el usuario disponga de conexión a Internet.
  • Asequible - La inversión inicial suele ser considerablemente menor que la compra de equipos y software in situ.
  • De confianza - La solución en la nube viene con un SLA de alta disponibilidad.

Entonces, ¿es fácil sincronizar las bases de datos locales con Dynamics 365 Online?

En un mundo perfectoLa migración de Microsoft Dynamics CRM on-premise a Dynamics 365 online incluiría fácilmente las integraciones existentes a Microsoft Dynamics CRM on-premise. Esto debería ser aún más sencillo en el caso de que ya tuvieras D365 y quisieras hacer una migración de Dynamics 365 on premise a la nube.

Sin embargo, no vivimos en un mundo perfecto. No obstante, aunque pasar a la nube no es tan sencillo como se espera, allí consejos y trucos que pueden ayudar a lo largo del camino. ¡Empecemos!

Lo que Microsoft le ofrece por el paso a Dynamics 365 Online

Hay una cosa llamada página FastTrack. Microsoft ofrece soporte a través de ella para ayudar a sus usuarios a desplegar soluciones en la nube de Microsoft. Los clientes con suscripciones elegibles a Microsoft 365, Dynamics 365 o Azure pueden acceder a ella sin coste adicional durante todo el periodo de su suscripción (enlace al final del artículo). Por lo tanto, si tienes intención de utilizarlo, es recomendable que compruebes los criterios de elegibilidad actualizados para lo que estás intentando migrar. Microsoft suele basarse en el número de puestos o en los ingresos.

En abril de 2019, Microsoft reconoció que "Hasta hace poco, no había ningún mecanismo disponible para que los clientes pudieran trasladar fácilmente su implementación local a Dynamics 365 (online)". Así lo ha confesado en un documento PDF de 45 páginas titulado "Microsoft Dynamics CRM on-premises to Dynamics 365 Online Migration", en el que se describen los pasos a seguir (el enlace de descarga está también al final del artículo).

¿Puedo acceder a la base de datos de Dynamics?

Una posible solución para ese problema sería encontrar una manera de acceder a la base de datos Dynamics 365 y luego ir a la sincronización con su Dynamics CRM en las instalaciones. El problema es que Microsoft no proporciona acceso a la base de datos back-end de Dynamics.

Esto tiene mucho sentido, ya que exponer las bases de datos de back-end de los servicios SaaS al mundo exterior se considera una mala práctica y puede dar lugar a considerables brechas de seguridad o problemas de integridad de los datos. En su lugar, Microsoft ofrece una API oficial para realizar la interacción de datos con D365 online.

La razón principal por la que se utilizan los servicios API es que no rompen las reglas y restricciones internas de la empresa, lo que garantiza que las aplicaciones de los clientes no obstaculicen el rendimiento. También ayudan a mantener la integridad de los datos y la consistencia de la base de datos back-end. Bastante beneficioso, ¿verdad?

El único inconveniente es que se requieren muchas habilidades y tiempo para el desarrollo de procesos para manipular datos a través de la API. Además, tendrás que bucear en toneladas de documentación para descubrir los parámetros correctos y hacer las llamadas adecuadas a los métodos y funciones que ofrecen las interfaces correspondientes. Por desgracia, así es como funcionan las cosas.

¿Y si pudieras hacer esto más sencillo? Si está familiarizado con SQL, ¿no sería genial si pudiera simplemente aprovechar sus conocimientos de SQL e interactuar con la API de D365 como lo haría con un DBMS (sistema de gestión de bases de datos) normal, o mejor aún, si pudiera simplemente hacer que Dynamics 365 sincronizara la base de datos utilizando Microsoft SQL Server Management Studio...?

Pues bien, ¡tenemos una magnífica noticia para ti!

Conéctese a D365 Online desde un DBMS local o cualquier aplicación cliente

Le damos la bienvenida a nuestro Solución de Sincronización de Base de Datos D365¡! Al estar totalmente basado en la plataforma de integración de Connecting Software Connect Bridge, está hecho a medida para sincronizar las bases de datos locales con la nube de D365. Increíble, ¿verdad?

Si te preguntas cómo funciona, Connect Bridge traduce la sintaxis SQL estándar ANSI en las llamadas apropiadas de la API.

Al garantizar que el acceso a los datos se realiza con llamadas a la API (aunque no tiene que preocuparse por ello), esta solución mantiene la integridad de su sistema de destino asegurada. Además, también se obtiene la facilidad de comunicarse con cualquier sistema de destino a través del SELECT, INSERT, UPDATE y DELETE estándar declaraciones.

¿Sabes qué significa esto? Que puedes conectar e insertar datos en D365 en línea, desde su DBMS local o cualquier aplicación cliente!

Esto es especialmente útil en el caso de empresas que migran de Dynamics CRM on-prem a D365 online, que tienen bases de datos SQL on-prem o aplicaciones conectadas a Dynamics. Afortunadamente, estas conexiones se pueden mantener implementando Connect Bridge. Esto es exactamente lo que hizo una cadena de supermercados italiana, como puedes leer en este estudio de caso.

Es importante tener en cuenta que si desea conectarse a otras soluciones Dynamics 365, como Dynamics 365 Business Central o Finance, ¡también funciona! Le cubrimos las espaldas...al final del artículo.

Ahora, es el momento de ver cómo funciona en la práctica. Puedes ir a la prueba gratuita y probarlo tú mismo, puedes pedir a nuestros expertos que te enseñen en una demostración gratuita o simplemente puedes seguir leyendo.

Desde cualquier Base de Datos a Dynamics 365 Online

La famosa base de datos Adventure Works DW (Datawarehouse) de Microsoft (descarga disponible al final), nos va a servir de base para esta demostración. Mostraremos lo fácil que es integrar sus procesos existentes con Microsoft Dynamics 365 Online utilizando la Plataforma Connect Bridge.

En el siguiente procedimiento, utilizaremos SSMS (SQL Server Management Studio) para gestionar su base de datos SQL Server:

1 - Una vez configurada la base de datos AdventureWorks, verá el esquema de la base de datos en la ventana del Explorador de Objetos, como en la siguiente imagen.

SSMS AdventureWorks

2 - Ahora vamos a crear el Servidor Enlazado. Para ello seguiremos los pasos en este video tutorial.

 Tenga en cuenta que la creación de conexiones de Linked Server a cualquier sistema de destino, por medio de conectores, es posible porque estamos utilizando el Plataforma Connect Bridge. Hay más de 400 conectores disponibles para nuestros usuarios en todo el mundo. Para este ejemplo, utilizamos específicamente el conector Dynamics 365.

Logotipos de algunos de los conectores Connect Bridge

La selección de conectores de Connecting Software en las áreas de CRM, ERP y contabilidad

3 - Una vez configurado el Servidor Vinculado, parecerá que está accediendo a la base de datos back-end de Dynamics en SSMS. En la imagen de abajo se puede ver con el nombre "D365_CRM".

Imagen

Al expandir el nodo de catálogos en el TreeView, podemos ver todo el esquema proporcionado por Dynamics 365, tal y como se vería al acceder a una base de datos normal. Pero esto es, de hecho, una abstracción con llamadas a la API que se ejecutan en segundo plano para que sea así de sencillo en el front-end.

El uso de este procedimiento de 3 pasos le permitirá crear cualquier tipo de integración y/o personalizar los procesos existentes. Echemos un vistazo a lo que utilizan los usuarios de todo el mundo.

Aplicabilidad de la solución de sincronización en la nube de On-prem a D365

En caso de que te preguntes por qué necesitarías hacer esto en primer lugar, aquí hay dos escenarios comunes que pueden golpear cerca de casa:

Escenario 1

La empresa para la que trabaja todavía utiliza Microsoft Dynamics CRM on-premise, y actualmente están en proceso de migración a Microsoft Dynamics 365 Online. Tienen varias integraciones entre de sus bases de datos del servidor SQL a su Microsoft Dynamics CRM on-premise.

El problema es, no se puede conectar con la base de datos de Microsoft Dynamics 365 Online directamentey como resultado, empiezas a preguntarte si:

  • Tendrá que crear, desde cero, todos los procesos utilizando el SDK de Dynamics CRM de Microsoft;
  • Tendrá que crear, desde cero, todos los procesos utilizando la API Web;
  • Tendrás que aprender C# para poder hacer todo esto;

Escenario 2

La empresa para la que trabajas tiene un sistema ERP hecho a medida con una base de datos SQL Server como back-end. Deciden utilizar Microsoft Dynamics 365 CRM como su propio sistema de gestión de relaciones con los clientes.

A continuación, les gustaría tener la capacidad de rellenar el CRM con los datos existentes de su sistema ERP de forma automatizada y mantener la coherencia de ambas partes.

Hacer este proceso manualmente es prácticamente imposible, ya que hay decenas de miles de registros que deben ser idénticos en ambos lados, incluyendo cuentas, contactos y productos.

Sin embargo, el equipo informático de la empresa no tiene mucha experiencia con los lenguajes y marcos de programación necesarioscomo C#, servicios REST o la API de CRM. Tienen experiencia con SQL, pero ¿puede ser útil? El gestor se pregunta si:

  • Tendrán que contratar a una empresa consultora para que les realice este servicio.
  • Dependerá de la citada consultora el mantenimiento y la incorporación de nuevas funcionalidades a medida que se amplíe su negocio.

Afortunadamente, la respuesta a todas estas hipotéticas preguntas es noY es de esperar que, a estas alturas, el uso del ejemplo anterior te esté sonando.

Con Connect Bridge, puede aprovechar sus habilidades actuales de forma eficiente Y mantener su software, bases de datos y procesos existentes.

Pero no tiene que confiar en nuestra palabra. Consulta el ejemplo paso a paso que aparece a continuación o, mejor aún, pide tu prueba gratuita y pruébalo tú mismo.

Rellenar las cuentas en línea de Dynamics 365 desde la tabla DimCustomer de la base de datos de Adventure Works

Preparación

  1. Crea los siguientes desencadenantes (triggers):

    --*****************************************************************************

    CREATE TRIGGER [dbo].[OnDimCustomerInsert] ON [dbo].[DimCustomer] AFTER INSERT

    AS

    BEGIN

           SET                               NOCOUNT ON

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @FirstName                VARCHAR(255)

           DECLARE @LastName                 VARCHAR(255)

           DECLARE @MiddleName               VARCHAR(255)

          

           SELECT @FirstName       = [FirstName],

                  @LastName        = [LastName],

                  @MiddleName      = [MiddleName]

           FROM INSERTED;

           SELECT @SQL = FORMATMESSAGE(INSERTAR EN LA CUENTA (Nombre) VALORES(''%s''); SELECCIONAR IDENTIDAD DE ALCANCE();',

           @FirstName + '-' + '-' + @LastName)

          

           CREATE TABLE #AccountId(ID VARCHAR(255))

           INSERT #AccountId

           EXEC(@SQL) AT D365_CRM

     

           SELECT @AccountId = ID from #AccountId

           UPDATE DimCustomer SET CustomerAlternateKey = @AccountId where FirstName = @FirstName y MiddleName = @MiddleName y LastName = @LastName

     

           PRINT @FirstName + ' ' + @MiddleName + ' ' + @LastName;

    END

    --*****************************************************************************

    CREATE TRIGGER [dbo].[OnDimCustomerUpdate] ON [dbo].[DimCustomer] AFTER UPDATE

    AS

    BEGIN

           SET                               NOCOUNT ON

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @FirstName                VARCHAR(255)

           DECLARE @LastName                 VARCHAR(255)

           DECLARE @MiddleName               VARCHAR(255)

          

           SELECT @AccountId       = [CustomerAlternateKey],

                  @FirstName       = [FirstName],

                  @LastName        = [LastName],

                  @MiddleName      = [MiddleName]

           FROM INSERTED;

     

           SELECT @SQL = FORMATMESSAGE(UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s'', @FirstName + '-' + '-' + @LastName, @AccountId)

           EXEC(@SQL) AT D365_CRM;

           PRINT @FirstName + ' ' + @MiddleName + ' ' + @LastName;

     

    END

    2. Su ventana del Explorador de Objetos SSMS debería contener ahora dos nuevos disparadores y tener el siguiente aspecto:
    Imagen
    3 -Abra su instancia Dynamics 365 Online y navegue hasta las Cuentas. En el siguiente paso insertaremos 3 nuevos registros para 'ABC Technology', 'Billy Charity' y 'Tom Cat'. En este momento, todavía no están en Cuentas.
    Imagen

    Probando

     1 - En SSMS abra una nueva ventana de consulta y pegue lo siguiente:

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (FirstName, MiddleName, LastName, CustomerAlternateKey) values (Tecnología ABC, '' ,"GMB, "CT0001);

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (FirstName, MiddleName, LastName, CustomerAlternateKey) values ('Billy Charity', '' ,"SA, "CT0002);

    INSERT INTO [AdventureWorksDW].[dbo].[DimCustomer] (FirstName, MiddleName, LastName, CustomerAlternateKey) values ('Tom Cat', '' ,"ORG, "CT0003);

     

    SELECT * FROM DimCustomer WHERE FirstName = Tecnología ABC;

    SELECT * FROM DimCustomer WHERE FirstName = 'Billy Charity';

    SELECT * FROM DimCustomer WHERE FirstName = 'Tom Cat';

    2 - Ejecute los scripts pulsando F5 o el botón Ejecutar en SSMS.
    SSMS Ejecutar AdventureWorks
    Debería tener ahora 3 registros adicionales insertados en la Tabla de DimCustomer .
    Imagen
    3 - Vuelva a navegar por sus cuentas Dynamics 365 y actualice. ¡Bingo!
    Imagen

    Se han añadido 3 nuevas cuentas a Dynamics 365 sin tocar Dynamics 365. Genial, ¿verdad?

    Pero espera un segundo, en la tabla DimCustomer, el campo CustomerAlternateKey tiene un número extraño. No son los valores que hemos insertado en primer lugar. En su lugar, tenemos el ID único de la cuenta generado en Dynamics 365. ¿Cómo es posible?

    Si se observa detenidamente el trigger OnDimCustomerInsert, se observará que SELECT SCOPE_IDENTITY(); es el responsable de devolver el ID de la cuenta que se utilizará para actualizar la tabla DimCustomer. Eso será crucial para realizar las actualizaciones de las cuentas existentes en Dynamics 365 cuando se modifique un registro en la tabla DimCustomer.

    Para probar nuestro punto, actualiza los registros creados ejecutando en SSMS el siguiente código:

    UPDATE [AdventureWorksDW].[dbo].[DimCustomer] SET LastName = "LTD WHERE CustomerAlternateKey = 'account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b)';

    NOTA: SUSTITUYA account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) CON LOS VALORES GENERADOS EN SU ENTORNO.

    Después de ejecutar las actualizaciones para las 3 cuentas, este es el resultado en Dynamics 365.
    Imagen

    ¡Genial!

    En conclusión

    Estos son ejemplos sencillos, pero demuestran cómo funciona en la práctica. Es una solución escalable y potente que permite sin problemas:

    • Centralice todo lo que antes estaba conectado a su Dynamics on-prem.
    • Pase a la versión online de Dynamics y mantenga las integraciones existentes funcionando normalmente.

    Y, no menos importante:

    • No es necesario aprender ninguna tecnología o lenguaje de programación nuevo. Es tan fácil como puede ser.
    • Puedes mejorar el proceso modificando los activadores.

    También, si se ha desplazado inmediatamente hacia abajo para saber a qué otras soluciones Dynamics 365 puede conectarse fácilmente utilizando el Connect Bridge, ¡ésta es esa parte!

    Lo son:

    ¡Un placer!

    Si tiene algún comentario o sugerencia, escríbalo en el espacio de abajo y le responderemos lo antes posible.

    Por qué los clientes usan Connect Bridge

    Mira un video corto para averiguarlo:
    Imagen

    Enlaces de recursos

    Artículo actualizado por última vez el: 28 de marzo de 2022

    Ana Neto - Asesora técnica, autora

    Ana Neto
    technical asesor en Connecting Software

    Autor:

    Soy ingeniero de software desde 1997, con un amor más reciente por la escritura y la oratoria.  ¿Tiene alguna pregunta o comentario sobre esta publicación o sobre el Connect Bridge? ¡Me encantaría tener tu opinión!

     ana@connecting-software.com


    Colaboradores: Jefferson Kenji Takahashi, Diogo Gouveia

    Comentarios 4

    1. Parece interesante - ¿qué pasa con la aplicación de las reglas de negocio? por ejemplo, tenemos la necesidad de llevar las transacciones de nuestros POS (datos en tablas SQL) a Business Central - así que, ¿qué pasa con el caso de uso en el que la venta implica a un cliente y / o producto que no existe en D365?

    2. Post
      Autor

      Hola Paul,

      Si puedes obtener los datos que tienes de tu POS en las tablas SQL y sigue una estructura que puedas entender, entonces puedes usar Connect Bridge para llevar todo a la Central de Negocios. Si la venta involucra a un cliente y/o producto que no existe en D365, tienes que decidir qué hacer, por ejemplo podrías usar un cliente o producto genérico o podrías crear nuevos sobre la marcha.

      Nos pondremos en contacto a través del correo electrónico que nos indicó para explorar esta opción con usted.

      Ana Neto

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.