¿Ha pensado alguna vez en conectarse a Microsoft Dynamics desde su código Java? Sí, lo sé... preferiría mantenerse alejado de cualquier cosa de Microsoft... Pero, ¿y si pudiera obtener los datos de Microsoft Dynamics (o incluso a Microsoft Dynamics) sin ensuciarse las manos?
¿Cuáles son mis opciones?
La forma clásica de integrarse con cualquier tipo de software sería utilizar su API. Si desea utilizar la API de Microsoft Dynamics, tiene, de hecho, dos opciones. Ambas son REST APIs y si alguna vez necesita consultarlas, asegúrese de buscar "Microsoft Customer Engagement REST API". Microsoft utiliza ahora el término "Customer Engagement" para todo lo relacionado con Dynamics.
Volviendo a sus opciones, si está buscando el Microsoft Dynamics API, estas son:
- API web
- API de gestión en línea
El API de la web sería la elección natural del API para la mayoría de los casos. Implementa OData (Protocolo de Datos Abiertos) y soporta Dynamics 365 (tanto en línea como en las instalaciones), Dynamics CRM 2016 y Dynamics CRM Online. La versión de OData utilizada es la versión 4.0, y el uso de OData es una gran ventaja.
Si no ha oído hablar de OData, puede empezar aquí y luego ir más profundo aquí. Y si no está seguro de las ventajas de OData, sólo le diré que esaprobado como una norma internacional (ISO/IEC). Para usar esta API, probablemente usarías o bien SDL OData Frameworks o Apache Olingo, ya que estas son las bibliotecas Java que soportan OData V4.
La segunda opción, la API de gestión en línea, está pensada específicamente para tareas relacionadas con las instancias. Puede realizar varias tareas en las instancias online de su tenant Office 365, como crear, recuperar, eliminar, hacer copias de seguridad y restaurar una instancia. Se trata de una API de uso específico, no de algo que se utilizaría en un escenario de integración genérico.
Una alternativa a la clásica integración API con Web API y/o Online Management API sería probar una solución no-code / low-code. Sería posible utilizar PowerApps y crear una aplicación que se conectaría a Microsoft Dynamics. Sin embargo, este enfoque no tiene mucho sentido para un desarrollador... después de todo, tú PUEDES codificar; ¿por qué intentarías evitarlo?
Si optas por PowerApps, tendrás el gran inconveniente de estar atado a las plantillas definidas. Y también terminará con una aplicación que es totalmente inútil cuando está fuera de línea, y que realmente no manejará ninguna parte complicada como la seguridad. Creo que estas son limitaciones que sólo soportarías si no supieras programar.
La zona de peligro: ¿la integración con Microsoft Dynamics podría ir en mi contra?
Supongamos que optas por la integración clásica de API. Lo primero que tienes que tener en cuenta es que habrá mucho que estudiar. La documentación básica de la API se puede encontrar en https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/about?view=dynamics-ce-odata-9.
Si necesita trabajar con versiones anteriores de Dynamics (anteriores a la 9.x), deberá estudiar https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/mt607689(v=crm.8).
En resumen, hay un montón de documentación que necesitas para hacerte a la idea. No es súper difícil empezar, pero lo es más si estás trabajando en una aplicación de la vida real. Asegúrate de que tienes el tiempo para ello si este es el camino que eliges.
Pero el verdadero peligro viene de las actualizaciones. El ciclo de vida de los productos Dynamics es muy rápido. Si nos fijamos en los últimos 10 años, esto es lo que se obtiene (para más detalles eche un vistazo a (para más detalles eche un vistazo a https://docs.microsoft.com/en-gb/previous-versions/dynamics/ para las versiones más antiguas o https://community.dynamics.com/#dynamicsproductsdivid para los actuales):
Dinámica AX
- Dynamics 365 for Finance and Operations
- Microsoft Dynamics AX 2012
Dynamics CRM
- Dynamics 365 para Ventas
- Dynamics 365 para el Servicio de Atención al Cliente
- Dynamics 365 para el servicio externo
- Dynamics CRM 2016
- Dynamics CRM 2015
- Dynamics CRM 2013
- Dynamics CRM 2011
Dinámica NAV
- Dynamics 365 Business Central
- Dynamics NAV 2016
- Dynamics NAV 2015
- Dynamics NAV 2013 R2
- Dynamics NAV 2013
- Dynamics NAV 2009 R2
- Dynamics NAV 2009
Servicio de atención al cliente unificado
Management Reporter para Microsoft Dynamics ERP
Microsoft Dynamics Business Analyzer
Microsoft Dynamics Marketing
En resumen, en el pasado si estabas hablando con la API de Dynamics habrías tenido que considerar la API de Microsoft Dynamics CRM (2016, 2015, 2013, 2011, 4.0), la API de Microsoft Dynamics GP, la API de Microsoft Dynamics AX (2012/2009), ...
Sólo puedes imaginar lo que nos traerán los próximos 10 años... Ahora digamos que usted construye su integración Java con Dynamics hoy. ¿Cuántas horas de trabajo necesitará para mantener esa integración actualizada durante los próximos 10 años? Cada vez que se lance una nueva versión, tendrá que estudiar los cambios de la API y volver a su código para hacer los cambios necesarios.
Todas estas idas y venidas llevan mucho tiempo y son propensas a errores. Y, admitámoslo... ¡es sencillamente aburrido! No hay nada emocionante en hacer que una integración funcione y es aún menos emocionante mantenerla funcionando en el futuro.
La zona segura: ¿podría funcionar la integración con Microsoft Dynamics?
¿Hay una mejor manera de hacer esta integración de Microsoft Dynamics en Java entonces? La solución es conseguir una herramienta de integración entre usted (y su código Java) y la API. La herramienta que sugerimos es Connect Bridge.
Esta es una herramienta pagada, pero tiene un prueba gratuita disponible para que puedas ver si te funciona. Lo bueno de esta herramienta es que garantiza la compatibilidad con versiones anteriores y posteriores. Usted construyó su código Java integrándose con ella, y luego sus usuarios pueden actualizar (o incluso bajar de versión si alguna vez es el caso) y usted no tiene que preocuparse por ello. Microsoft también puede lanzar nuevas versiones de la API, reorganizar todas sus soluciones Dynamics o hacer lo que quiera... ¡Su solución seguirá haciendo lo que debe hacer sin ningún esfuerzo por su parte!
¿Cómo funciona esto? Connect Bridge básicamente traduce las sentencias SQL en llamadas a la API. Está escribiendo su código Java como si accediera a una base de datos relacional utilizando JDBC (también se admiten ODBC y servicios Web). Estás usando las sentencias SELECT, INSERT, UPDATE y DELETE. Está utilizando procedimientos almacenados. Pero todo eso es sólo una capa de abstracción.
No está accediendo a la base de datos de Dynamics (¡y eso es bueno!). Pero parece que sí. Connect Bridge viene con una herramienta de consulta donde puedes probar tus consultas (falsas), ver las tablas (falsas) con sus columnas (falsas) y encontrar un procedimiento almacenado (falso) conveniente. Como he dicho, parece exactamente como si estuvieras viendo una base de datos SQL, pero es sólo una abstracción. ¡Y después de que hayas terminado con las pruebas, sólo tienes que poner todo en tu código como si estuvieras usando JDBC para conectarte a una base de datos... et voilá! Una solución de trabajo que requerirá cero mantenimiento. Todo el esfuerzo de mantenimiento corre por cuenta de Connect Bridge. Por eso es una herramienta de pago y por eso vale cada céntimo.
Es importante señalar que esto funciona para leer los datos de la Dinámica, pero también para poner datos en ella. Para poner los datos, se utilizan las declaraciones INSERTAR o ACTUALIZAR o uno de los procedimientos almacenados disponibles. Y aunque se verá aterrador la primera vez que lo hagas porque se siente como si realmente estuvieras tocando la base de datos de Dynamics, sólo tienes que recordar que siempre estás pasando por la API, así que estás en terreno seguro.
Conclusión
Hemos visto cómo el acceso a los datos de Microsoft Dynamics en Java se puede hacer fácilmente usando el Plataforma de integración Connect Bridge. La buena noticia es que esto también es posible con Microsoft Exchange y Microsoft SharePoint! De hecho, puedes conectarte a cualquier software del ecosistema de Microsoft, a Salesforce, y a muchos otros:
- SharePoint 2010, 2013, 2016, 2019, En línea
- Office 365
- Exchange Server 2003, 2007, 2010 SP1, 2013, 2016, 2019, Exchange Online
- Directorio Activo
- Bing
- Excel, Word, PowerPoint
- Equipos, Planificador
Sólo necesitas tener Connect Bridge, que es la plataforma de integración de base y elegir el conector para el software específico que quieras.
Si quieres explorar los conectores actualmente disponibles en Connect Bridge, el lugar para ir es https://www.connecting-software.com/connectors/.

Si quiere saber cuáles son los conectores más nuevos de esta amplia colección, consulte la página de Connect Bridges Dynamics 365 BC y Dynamics 365 FO .
Una interesante opción adicional que tienes en Connect Bridge es el sellado inteligente de documentos. Hay un complemento que utiliza la tecnología de cadenas de bloques para sellar documentos en Dynamics. Le da el más alto nivel de seguridad, garantizando que el documento no ha sido manipulado, pero el hecho de que utilice libros de contabilidad distribuidos de forma inteligente lo hace mucho más rentable. Y también puede funcionar con documentos que están almacenados en otro lugar, por ejemplo en SharePoint.
¡Esperamos que este artículo le haya sido útil! Aquí hay algunas publicaciones más que tenemos en nuestro blog discutiendo otras posibilidades de integración:

Comments 1
Un artículo muy bonito e informativo.