SoporteIniciar sesión
Contáctenos
Conexiones OData con Microsoft Dynamics 365

Conexiones OData con Microsoft Dynamics 365

December 20, 2018 · Michael Bock · Integración Microsoft Dynamics

Nos alegra anunciar que ya damos soporte a OData V4 para la integración con Microsoft Dynamics 365 Business Central y Microsoft Dynamics 365 for Finance and Operations. También damos soporte a versiones anteriores de Microsoft Dynamics, por ejemplo Microsoft Dynamics NAV 2016 y 2017.

¿QUÉ ES ODATA?

OData (Open Data Protocol) es un estándar OASIS  que define las buenas prácticas para crear y consumir API RESTful. OData te permite centrarte en tu lógica de negocio mientras creas API RESTful, sin tener que preocuparte por cómo definir las cabeceras de petición y de respuesta, los códigos de estado, los métodos HTTP, las convenciones de URL, los tipos de medios, los formatos de carga, las opciones de consulta, etc. OData también te orienta sobre el seguimiento de cambios, la definición de funciones/acciones para procedimientos reutilizables y el envío de peticiones asíncronas o por lotes, etc. Además, OData ofrece la posibilidad de ampliarlo para cubrir cualquier necesidad específica de tus API RESTful.

Todo esto suena muy bien y cabría esperar que se pudiera acceder a distintos sistemas de la misma manera. En el plano técnico así es, pero por desgracia (o por suerte, según se mire) el estándar sigue dejando margen para implementar el soporte de formas distintas y también para omitir parte de él (como el seguimiento de cambios, por ejemplo). El filtrado también puede hacerse de varias maneras.

En Rapidi queremos que usar nuestros distintos conectores sea lo más sencillo posible. Para ello incorporamos todo el conocimiento y la funcionalidad que podemos en el conector, de modo que no tengas que preocuparte por detalles concretos, como cómo indicar la empresa que debe usarse en un sistema ERP determinado. Esto suele traducirse en conectores específicos para cada sistema ERP o CRM. Con OData ocurre lo mismo: tenemos conectores específicos para Microsoft Dynamics 365 Business Central (que cubre también Microsoft Dynamics NAV 2016/2017/2018) y para Microsoft Dynamics 365 for Finance and Operations (también conocido como Microsoft Dynamics AX). 

POR QUÉ USAR ODATA

Microsoft empezó a introducir el soporte de OData para el acceso por API a sus sistemas ERP hace algunos años, pero solo en los últimos años ese soporte se ha generalizado en los distintos sistemas ERP y admite, en general, tanto la lectura como la escritura de datos.

También hemos visto que las implementaciones de OData de Microsoft leen datos con bastante rapidez, lo que es una muy buena noticia, porque precisamente ese era uno de los principales inconvenientes de los Web Services (SOAP) disponibles tanto para Microsoft Dynamics NAV como para AX.

Además, las API de OData que ofrece Microsoft también aplican la lógica de negocio. Esto significa que cualquier validación o código que exista en el sistema se ejecuta igualmente al leer o escribir datos a través de la API de OData. Este era uno de los principales inconvenientes del acceso directo a la base de datos MS-SQL que hay debajo del sistema ERP. 

En general, usar OData para la integración con los sistemas Microsoft Dynamics 365 funciona muy bien y es también lo que recomienda Microsoft. Aun así, hay cosas que OData todavía no admite, como leer solo los cambios a partir de las marcas de tiempo de NAV (algo que únicamente puede hacerse directamente desde MS-SQL). Además, algunas operaciones de creación, como crear pedidos de venta en NAV, funcionan mejor con los Web Services (SOAP) de NAV.

Rapidi usará OData para integrar las versiones más recientes, como Microsoft Dynamics 365 Business Central y Microsoft Dynamics 365 for Finance and Operations, pero seguiremos usando también los Web Services SOAP para algunas operaciones concretas. Para versiones anteriores de Microsoft Dynamics NAV y Microsoft Dynamics AX y para sistemas on-premise también podemos usar OData, aunque seguiremos empleando los Web Services SOAP y nuestro conector directo a MS-SQL (para leer datos), ya que son integraciones estándar muy probadas.

Microsoft Dynamics 365 Business Central (NAV)

Nuestro conector OData para Microsoft Dynamics 365 NAV admite las siguientes versiones:

Admitimos tanto la lectura como la escritura (crear, actualizar y eliminar). Puedes filtrar datos concretos de la forma habitual en Rapidi, pero la sintaxis de los filtros depende de lo que admita Microsoft ODataV4 para NAV.
Por ejemplo, puedes usar operadores como eq (igual), lt (menor que), gt (mayor que), etc. Consulta esta página de documentación de Microsoft para más detalles.
Si en el campo Value, por ejemplo para Source Filter, indicas solo el valor (como 'hello'), Rapidi compondrá un filtro con el operador 'eq' (igual). Si tu filtro es más complejo, puedes indicar en la parte Value tanto los nombres de campo como el operador y los valores. Debes omitir el "filter=", ya que Rapidi lo añade automáticamente.

Los Web Services de OData en Microsoft Dynamics 365 Business Central se basan en Pages (lectura y escritura) o en Queries (solo lectura). Para poder usar un Web Service de OData, primero tienes que publicar ese Web Service en Microsoft Dynamics 365 Business Central (busca "Web Services", sigue el enlace y publica los Web Services que necesites). Después, para usar el Web Service ODataV4 en Rapidi, tienes que hacer un "Read Design" en la Connection correspondiente.

Algunos de nuestros clientes ya usan Microsoft Dynamics 365 Business Central y pronto publicaremos una nueva integración estándar para Microsoft Dynamics 365 Business Central y pronto te contaremos más. Permanece atento.

Más información sobre cómo configurar una Connection OData con Microsoft Dynamics 365 Business Central

Actualizar a Microsoft Dynamics 365 Business Central

Como Rapidi admite TODAS las versiones anteriores de Microsoft Dynamics NAV (incluso el antiguo NAV356 basado en texto), puedes usar Rapidi para transferir tus datos directamente a Microsoft Dynamics 365 Business Central cuando actualices desde una versión anterior de Microsoft Dynamics NAV. Es un proceso repetible y puedes hacerlo en un solo paso desde cualquier versión anterior de Microsoft Dynamics NAV en cuanto hayas configurado las transferencias. 

Microsoft Dynamics 365 for Finance and Operations (AX)

Nuestro conector OData para Microsoft Dynamics 365 AX admite las siguientes versiones:

Admitimos tanto la lectura como la escritura (crear, actualizar y eliminar). Puedes filtrar datos concretos de la forma habitual en Rapidi, pero la sintaxis de los filtros depende de lo que admita Microsoft ODataV4 para AX (por ejemplo, puedes usar operadores como eq (igual), lt (menor que), gt (mayor que), etc. Consulta esta página de documentación para más detalles.

Las entidades OData en Microsoft Dynamics 365 for Finance and Operations se basan en el concepto de vista actualizable (updatable view). Cuando la propiedad IsPublic de una vista actualizable está establecida en True, esa vista se expone como entidad OData de primer nivel. Normalmente ya hay bastantes endpoints de OData expuestos en Microsoft Dynamics 365 for Finance and Operations.

Rapidi añade automáticamente "cross-company=yes" a la URL y también un filtro "dataAreaId eq xxx" (donde xxx es la empresa indicada en la Connection). Así nos aseguramos de leer solo de una empresa concreta. Este comportamiento puede sobrescribirse indicando, por ejemplo, el filtro dataAreaId en la transferencia.

Más información sobre OData en Microsoft Dynamics 365 for Finance and Operations 

Más información sobre cómo configurar una Connection OData con Microsoft Dynamics 365 Finance and Operations.

Transferir solo los registros modificados con OData

La API de OData de Microsoft no admite actualmente el seguimiento de cambios en los datos del ERP. Por eso, para detectar y transferir solo los cambios al leer a través de la interfaz de OData, usamos nuestra Mirror Technology. Nuestra Mirror Technology está disponible tanto para instalaciones on-premise como alojadas (alojadas en Azure o en Dynamics 365). La Mirror Technology es muy fácil de usar: tú (o nosotros, si Rapidi aloja el mirror) solo tienes que crear una base de datos vacía para el mirror e indicar cómo conectarse a ella; todo lo demás funciona automáticamente. 

Seguir la pista de los enlaces (Key Cross-references)

Para seguir la relación entre los registros de tu ERP (Microsoft Dynamics 365) y los de tu sistema CRM, usamos nuestra Link Storage Technology. Esto nos permite guardar un enlace entre la clave principal usada en el sistema ERP (por ejemplo, el número de cliente) y el Account Id correspondiente en el sistema CRM. Ese enlace puede usarse después para actualizar esos registros (clientes/cuentas) entre los sistemas, pero también como tabla de consulta para otras transferencias (por ejemplo, para obtener el número de cliente de un account id concreto al crear un nuevo SalesOrder en el ERP). Más información sobre nuestra Link Storage Technology en esta entrada del blog.

Esperamos que te haya gustado este artículo. Como siempre, si tienes preguntas o comentarios, contáctanos.

Un saludo

Michael

Y...

¡Feliz Navidad y feliz año nuevo de parte del equipo de desarrollo!

 

 

Compruebe si encaja con su entorno

Díganos qué sistemas utiliza y le diremos con franqueza si Rapidi es la herramienta adecuada.