Integración de datos salientes

Completado

La integración de datos salientes toma datos de Microsoft Dataverse y los pone a disposición de otros sistemas.

Publicación de eventos de Dataverse

Dataverse proporciona un modelo de eventos para la integración con otros sistemas. Dataverse admite la activación de código personalizado y acciones externas cuando se detectan eventos en la plataforma. Este modelo de eventos se conoce como marco de trabajo de eventos. El marco de trabajo de eventos le brinda la capacidad de registrar código personalizado para que se ejecute en respuesta a eventos específicos. Normalmente, el marco de trabajo de eventos se utilizaría para activar código de complemento personalizado, pero también puede utilizarse para las integraciones con otros sistemas.

Para utilizar el marco de trabajo de eventos para su solución, asegúrese de familiarizarse con los siguientes conceptos:

  • Los eventos que están disponibles
  • Cómo se procesa el evento
  • Qué tipo de datos están disponibles cuando se produce el evento
  • Qué restricciones de tiempo y recursos son aplicables
  • Cómo supervisar el rendimiento

Además, puede especificar las diversas fases:

  • Validación previa: para la operación inicial, esta fase se producirá antes de la operación del sistema principal. Esta fase brinda una oportunidad para incluir lógica para cancelar la operación antes de la transacción de la base de datos. Esta fase tiene lugar antes de las comprobaciones de seguridad que se realizan para comprobar que el usuario que hace la llamada o que ha iniciado sesión tiene el permiso adecuado para realizar la operación prevista.
  • Antes de la operación: se produce antes de la operación del sistema principal y dentro de la transacción de la base de datos. Si desea cambiar valores de una tabla incluida en el mensaje, debe hacerlo en esta fase.
  • Operación principal: solo para uso interno, excepto para proveedores de datos de API personalizadas y de tablas virtuales personalizadas.
  • Después de la operación: se produce después de la operación del sistema principal y dentro de la transacción de la base de datos. Utilice esta fase para modificar propiedades del mensaje antes de que se devuelva al autor de la llamada.

Nota

La integración suele utilizar la fase Después de la operación y el modo de ejecución asincrónico.

El marco de trabajo de eventos puede desencadenar:

  • Complementos
  • Flujos de trabajo clásicos
  • Flujos de nube de Power Automate
  • Mensajes a Azure Service Bus y Azure Event Hubs
  • Webhooks

Comparación entre evento y lote

Los arquitectos de soluciones deben categorizar los datos que se requieren en Dataverse. Una categoría clave se basa en eventos o lotes. El siguiente diagrama compara estos dos enfoques.

Diagrama de los enfoques de integración salientes

Patrón de inserción

El procesamiento basado en eventos está asociado con el patrón de inserción. Un evento en Dataverse ejecuta un proceso que se conecta al sistema externo y actualiza los datos en ese sistema. Al vincular directamente a otro sistema, los arquitectos de soluciones deben asegurarse de no crear problemas de rendimiento para ambos sistemas y de no crear un sistema demasiado acoplado.

Importante

Si utiliza complementos, el arquitecto de soluciones debe ser consciente el límite de tiempo de dos minutos para el procesamiento de complementos.

Patrón de extracción

El patrón de extracción utiliza eventos externos del otro sistema o un desencadenador programado para recuperar un conjunto de datos de Dataverse y procesar el que se devuelve.

Nota

El desencadenador Periodicidad de Power Automate se utiliza a menudo en el patrón de extracción.

Seguimiento de cambios

La característica Change Tracking de Dataverse proporciona una manera de mantener los datos sincronizados de manera eficiente detectando qué datos han cambiado desde la última vez que se sincronizaron. Sin Change Tracking, es difícil crear un mecanismo fiable y eficaz para determinar qué filas han cambiado en Dataverse.

Cuando se recuperan datos con Change Tracking, Dataverse devuelve un conjunto de cambios delta.

Nota

Change Tracking debe estar habilitado en la tabla.

Integración de Azure

La plataforma Dataverse admite la integración saliente con Azure. Dataverse puede enviar mensajes a los servicios de Azure mediante el marco de trabajo de eventos, tal como se muestra en el siguiente diagrama.

Diagrama de integraciones con Azure.

Service Bus

Un servicio con el que Dataverse puede integrarse es Microsoft Azure Service Bus.

Puede usar Azure Service Bus para desacoplar aplicaciones y servicios entre sí, lo que aporta las siguientes ventajas:

  • Trabajo de equilibrio de carga entre trabajadores competidores
  • El enrutamiento y la transferencia de datos son más seguros y controlados a través de los límites de las aplicaciones y los servicios.
  • Coordinación de trabajos transaccionales que requieran un alto grado de fiabilidad.

Azure Service Bus puede proporcionar un canal de comunicación más seguro y confiable entre los datos de tiempo de ejecución de Dataverse y las aplicaciones externas de línea de negocio (LOB) basadas en la nube o locales, como se muestra en el diagrama siguiente.

Diagrama de integración con Azure Service Bus.

Como se muestra en la imagen anterior, se ha creado un recurso de Azure Service Bus en Azure. Se ha desarrollado un proceso de escucha que espera a que los mensajes se publiquen en Azure Service Bus. En Dataverse, el punto de conexión de Azure Service Bus se ha registrado utilizando la herramienta Registro de complementos y se ha definido un paso que publica el contexto del complemento en Service Bus como un mensaje cuando se produce un evento, por ejemplo la creación de una fila en Dataverse.

El proceso de escucha automáticamente podrá leer el mensaje, extraer los detalles del evento del contexto (la tabla, el id. de la fila, el usuario que desencadenó el evento, la lista de cambios de datos, etc.) y realizar el procesamiento adecuado de estos datos.

El proceso de escucha puede ser:

  • Un programa C# que se ejecuta en un sistema local que sondea el Service Bus en busca de nuevos mensajes.
  • Una aplicación en Microsoft Azure Logic Apps que se desencadena automáticamente cuando se publica un nuevo mensaje.
  • Una función de Microsoft Azure Functions que se desencadena automáticamente cuando se publica un nuevo mensaje.

La integración con Azure Service Bus es útil cuando existe la posibilidad de que el otro sistema no esté disponible o tenga una capacidad limitada para procesar grandes volúmenes de mensajes porque los mensajes se pueden poner en cola, lo que permite al sistema receptor procesar los mensajes tan rápido como pueden.

Puede publicar un mensaje en Service Bus de dos formas:

  • Sin código: cree un paso para el evento en Dataverse para el punto de conexión de Azure Service Bus. El contexto de implementación de los complementos se publica en Service Bus.
  • Código: cree y registre un complemento en Dataverse que llame al punto de conexión de Azure Service Bus. El mensaje que se publica en el Service Bus se puede personalizar.

Azure Service Bus se puede usar para:

  • Crear aplicaciones en la nube fiables y elásticas con mensajería.
  • Proteger su aplicación de picos temporales.
  • Distribuir mensajes a múltiples sistemas operativos independientes.
  • Desacoplar sus aplicaciones entre sí.
  • Crear mensajes ordenados que se deriven a varios lectores.

Relay

Microsoft Azure Relay es un servicio que anteriormente formaba parte de Azure Service Bus pero que se ha separado como un servicio propio.

El servicio Azure Relay facilita la estrecha integración entre sistemas, al ayudarle a exponer en la nube pública de manera más segura los servicios que residen dentro de una red empresarial corporativa. Puede exponer los servicios sin abrir una conexión de firewall y sin requerir cambios intrusivos en una infraestructura de red corporativa.

Azure Relay admite los siguientes escenarios entre servicios locales y aplicaciones que se ejecutan en la nube o en otro entorno local:

  • Comunicación tradicional unidireccional, de solicitud/respuesta y entre pares
  • Distribución de eventos en el ámbito de Internet para habilitar escenarios de publicación/suscripción
  • Comunicación de socket bidireccional y sin búfer a través de los límites de la red

Importante

Azure Relay permite conectar dos sistemas sin necesidad de una conexión directa. Azure Relay sigue un patrón de solicitud/respuesta para que el sistema de llamada pueda recibir una respuesta, como un dato o un mensaje de éxito del otro sistema.

Event Hubs

Microsoft Azure Event Hubs es una plataforma de transmisión de macrodatos y un servicio de ingesta de eventos. Puede recibir y procesar millones de eventos cada segundo. Los datos que se envían a un centro de eventos se pueden transformar y almacenar mediante un proveedor de análisis en tiempo real o adaptadores de almacenamiento/procesamiento por lotes.

Algunos otros sistemas pueden suscribirse a eventos procesados por Event Hubs. Además, Event Hubs puede filtrar eventos mediante grupos de consumidores de modo que los sistemas solo reciban los eventos que sean relevantes para ellos a su propio ritmo.

Diagrama de Azure Event Hubs

Nota

Los temas de Azure Service Bus proporcionan un método similar para que los sistemas se suscriban a mensajes filtrados.

Plantéese utilizar Azure Event Hubs si necesita varios suscriptores.

Un ejemplo de uso de Event Hubs es la publicación de eventos para transmitir análisis que, a su vez, llenen un conjunto de datos de Microsoft Power BI para su visualización.

Webhooks y Azure Functions

Dataverse admite la llamada de un webhook con el marco de trabajo de eventos. Los webhooks se registran con la herramienta de registro de complementos y se pueden desencadenar mediante un evento específico en un paso.

Webhooks es un patrón HTTP ligero para conectar las API web y los servicios con un modelo de publicación/suscripción. Los remitentes de webhook notifican a los receptores los eventos realizando solicitudes a los puntos de conexión del receptor con información sobre los eventos. Los webhooks son simplemente un patrón que se puede aplicar utilizando una amplia gama de tecnologías. No es necesario utilizar marcos, plataformas o lenguajes de programación específicos.

Los webhooks permiten a los desarrolladores integrar datos de Dataverse con su propio código personalizado que se hospeda en servicios externos. Con el modelo de WebHooks, puede proteger su punto de conexión mediante un encabezado de autenticación o claves de parámetros de cadena de consulta. Este enfoque es más sencillo que el modelo de autenticación SAS utilizado por la integración de Azure Service Bus.

Azure Functions brinda una forma excelente de ofrecer una solución mediante webhooks.

Al decidir entre el modelo de WebHooks y la integración de Azure Service Bus, debe tener en cuenta los siguientes factores:

  • Azure Service Bus funciona para el procesamiento a gran escala y proporciona un mecanismo de cola completo si Dataverse inserta muchos eventos.
  • Los webhooks solo pueden escalar hasta el punto en el que su servicio web hospedado pueda manejar los mensajes.
  • Los webhooks permiten pasos sincrónicos y asincrónicos. Azure Service Bus solo permite pasos asincrónicos.
  • Los webhooks envían solicitudes POST con carga JSON y pueden consumirse mediante cualquier lenguaje de programación o aplicación web hospedada en cualquier lugar.
  • El modelo de WebHooks y Azure Service Bus se puede invocar desde un complemento o una actividad de flujo de trabajo personalizada.

Integración de procesos: Power Automate frente a Azure Logic Apps

Los flujos de nube de Power Automate se basan en Azure Logic Apps y, en general, ambos pueden cumplir los mismos requisitos. Sin embargo, ambos difieren en algunos aspectos. Como arquitecto de soluciones, plantéese cuándo utilizar flujos de nube de Power Automate o Logic Apps:

Power Automate incluye las siguientes características:

  • El conector de Dataverse tiene más capacidad
  • Está empaquetado como parte de una solución
  • Realiza RPA con flujos de escritorio
  • Utiliza el conector Aprobaciones
  • Incluye un conector Enviar notificaciones
  • Tiene un límite para la cantidad de ejecuciones de flujo cada mes

Logic Apps incluye las siguientes características:

  • Realiza Integración empresarial, incluido EDI
  • Tiene un rendimiento mayor
  • Se puede supervisar más fácilmente mediante herramientas de Azure
  • Tiene un mejor control de errores
  • No se puede empaquetar en soluciones
  • Tiene un modelo de precio fijo o basado en el consumo a través de una suscripción a Azure