Hoy te traemos las segunda parte de nuestro post: «Integrando Business Central con Dataverse: Un primer paso hacia la luz» .
Maneras de integrar Business Central SaaS con Dataverse
Hoy en día podemos integrar, de forma directa, Business Central con Dataverse de dos maneras diferentes:
Sincronización:
La sincronización de datos entre Business Central y Dataverse se basa en el emparejamiento de registros entre tablas existentes en ambas plataformas e indicando los campos que se desean sincroniza entre ambas
De manera nativa se sincronizan una serie de tablas estándar (Customer, Vendor, Contact y Currency), pero también, existe la posibilidad de sincronizar tablas personalizadas:
La sincronización entre Business Central SaaS y Dataverse se puede activar fácilmente desde la configuración asistida de Business Central :
Una vez realizados todos los pasos, la sincronización entre tablas estándar ya está activa y se pueden definir una serie de detalles que afectan al proceso:
- Campos para sincronizar
- Sentido de la sincronización
- Definir la sincronización como manual o programada.
Un poco más de detalle sobre la sincronización estándar,( en el siguiente enlace.)
La sincronización de tablas personalizadas es algo mas complicada, hay que sacar el pico y la pala, e invertir un rato en desarrollo. A alto nivel, los pasos a seguir son:
- Crear la tabla personalizada en ambas plataformas.
- Usar el AL proxy generator (disponible al instalar la extensión de AL en Vs Code) para crear una codeunit en el proyecto de extensión de Business Central. La codeunit hará referencia a los eventos de integración que nos permitirán, entre otras cosas, seleccionar la tabla para su sincronización con Dataverse.
Los pasos detallados para la sincronización de tablas personalizadas se muestran aquí.
Tablas Virtuales de Business Central en Dataverse
Con la funcionalidad de tablas virtuales de Business Central en Dataverse dispondremos de una fuente de datos que nos permitirá realizar operaciones CRUD desde Dataverse contra Business Central
Las características principales de esta funcionalidad son:
- Solo está disponible para Business Central On Line
- Los datos de las tablas virtuales no residen en Dataverse, siguen estando en Business Central, y, por lo tanto, no se lleva a cabo ninguna operación de sincronización.
- Las APIS expuestas en Business Central, tanto estándar, como personalizadas, pueden ser consumidas en Dataverse cuando las exponemos como tablas virtuales.
- Las tablas virtuales pueden ser usadas dentro de soluciones de Dataverse.
Para poder comenzar a usar esta funcionalidad en nuestro tenant, hay que instalar la aplicación de tablas virtuales desde el AppSource:
Al instalar la aplicación, lo que realmente estamos haciendo es desplegar una solución sobre el entorno de Dataverse que hayamos seleccionado, que nos va a permitir, a través de unos sencillos pasos de configuración el acceso a los datos de Business Central que tengamos publicados como API.
En la siguiente arquitectura se detalla el diseño de esta solución a alto nivel:
Las tablas virtuales funcional realmente bien, y es una manera rápida de tener disponibles los datos de Business Central dentro de Dataverse teniendo la posibilidad de integrarlos en soluciones, pero hay que tener en cuenta que tienen una serie de limitaciones importantes frente a las tablas nativas de Dataverse, como por ejemplo no poder disparar flows de Power Automate, no soportan Business Process Flows o no poder usarlas en Portals .(Mas detalles aquí.)
En próximas entradas, veremos un caso practico de uso, detallando los pasos de configuración.
Sincronización vs Tablas Virtuales
Cuando hablamos de sincronización, realmente tenemos tablas nativas en Dataverse en las cuales replicamos datos de Business Central, con lo cual disponemos de todas sus ventajas. De esta manera la sincronización es interesante, y puede justificar el esfuerzo de desarrollo si se trata de tablas personalizadas, cuando:
- Queremos usar datos de Business Central en Power App Portals.
- Cuando se desee integrar Business Central con otras soluciones de Dynamics 365 como For Sales o Customer Engagement.
- Cuando sea necesario integrar los datos de Business Central dentro de una aplicación model driven sin ningún tipo de limitación funcional.
- En escenarios de análisis de datos en los que queramos llevar los datos de Business Central a Azure Data Lake: teniendo en cuenta que Dataverse se sincroniza con Azure Data Lake, una vía para poder disponer de los datos de Business Central seria sincronizándolos previamente con Dataverse.
Para el resto de los casos, el uso de tablas virtuales es más que aconsejable y el límite es la imaginación: Piensa en una Canvas Power App, con datos de Business Central integrada en tu Teams, suena bien ¿no? Pues es relativamente fácil hacerlo con tablas virtuales y unos conocimientos mínimos de Power Apps.
Resumen
Hay una frase que se lleva tiempo repitiendo con frecuencia dentro de la comunidad Microsoft a modo de mantra:
“Power Platform is the extensibility model for Microsoft 365 and Dynamics 365”.
Por lo tanto, disponer de una integración entre Business Central y Dataverse es una vía que nos va a permitir crear fácilmente aplicaciones entre todo el stack de aplicaciones de Microsoft, del cual Business Central forma parte.
Así que toca sacar la cabeza fuera de la cueva de NAVISION y buscar luz en el exterior.