Compartir a través de


eventos empresariales de Microsoft Dataverse

Los eventos impulsan la automatización de la lógica de negocios y la integración con otros sistemas. Cuando sucede algo interesante en una aplicación empresarial, se produce un evento y los datos que describen el evento están disponibles para que los suscriptores respondan. Microsoft Dataverse proporciona funcionalidades para retransmitir datos de eventos a los suscriptores mediante las siguientes aplicaciones y tecnologías:

  • Flujos de Power Automate
  • Azure Service Bus
  • centro de eventos de Azure
  • Webhooks
  • Plugins de Dataverse

Dataverse tiene un marco de eventos robusto para capturar eventos del sistema dentro de Dataverse. Puede responder a eventos dentro del sistema mediante El marco de eventos de Dataverse. Este marco no cambia. Para más información, consulte Marco de eventos.

Los eventos empresariales de Dataverse proporcionan nuevas formas de exponer eventos y componer la lógica de negocios para responder a ellos de manera asincrónica, tales como el desencadenador de Power Automate Dataverse Cuando se realiza una acción.

Estos son algunos ejemplos:

  • Tiene una lógica que desea aplicar cuando se realiza una operación de compartición en un registro que es propiedad de un usuario. La única forma de iniciar la lógica en este mensaje de que ocurre cuando se comparte un registro es a través del marco de trabajo de eventos de Dataverse, normalmente a través de un complemento. Mediante el uso de eventos empresariales, puede catalogar la tabla que expone el mensaje.

  • Un desarrollador de complementos puede tener alguna lógica en código de complemento sincrónico que responda a un determinado conjunto de condiciones. El desarrollador pasa estas condiciones a variables compartidas para que otro complemento asincrónico inicie cierta automatización. Mediante el uso de un evento empresarial, en lugar de pasar esos detalles a través de las variables compartidas de canalización de eventos, puede llamar a una acción personalizada que contenga los detalles del evento en los parámetros. Un complemento asincrónico puede responder a la acción personalizada o puede optar por usar Power Automate en su lugar. Puede agregar otra lógica para responder a ese evento. Este patrón ofrece una mayor flexibilidad y la oportunidad de simplificar la lógica en su código de complemento.

Catálogos y eventos personalizados

Los eventos empresariales de Dataverse combinan conceptos de eventos de Dynamics Finance and Operations Business con Dataverse Event Framework. Esta combinación proporciona una nueva manera de detectar eventos y crear automatización cuando se producen estos eventos.

  • Catálogo de eventos: con tantos eventos disponibles en el sistema, puede ser difícil localizar el correcto. Un catálogo de eventos mejora el descubrimiento de eventos al asociar eventos con una solución y organizar eventos en categorías.

    Un catálogo solo incluye eventos seleccionados de alto valor que son relevantes para la solución. Exponga un evento agregándolo a un catálogo.

  • Eventos personalizados: puede crear acciones personalizadas como eventos personalizados porque Dataverse los procesa mediante su marco de eventos.

    Estos eventos pueden representar cambios de datos en Dataverse o no. Puede usar APIs personalizadas sin ninguna lógica sincrónica que solo existe para notificar a los escuchadores que se produjo un evento de interés. Emite el evento llamando a la acción personalizada.

Catálogo de eventos

Para exponer un evento empresarial, debe catalogarlo. Para obtener más información, consulte las tablas Catalog y CatalogAssignment.

Un catálogo agrupa los eventos empresariales por la solución contenedora y las categorías definidas para esa solución. El editor de soluciones selecciona qué eventos son más relevantes para su solución.

Un catálogo es una estructura jerárquica donde el nivel superior representa una solución. El siguiente nivel es una categoría. Asigne tablas y eventos pertinentes a una categoría.

Por ejemplo, la estructura siguiente representa un catálogo para una solución denominada Administración de clientes de Contoso:

  • Administración de clientes de Contoso
    • Tablas
      • Cuenta
      • Contacto
      • Pertenencia
    • Eventos de clientes
      • Tienda donde se ha entrado
      • Visitar sitio web
      • Comprar producto
      • Devolver producto

En este ejemplo se usan tablas y eventos de cliente como categorías, pero puede usar cualquier agrupación de categorías que tenga sentido para la solución.

Si la solución consta de varias soluciones dependientes, puede definir el catálogo raíz en la solución base, agregar categorías adicionales y eventos asignados a las soluciones dependientes.

Eventos de tabla

Al asignar una tabla a una categoría, se incluyen determinadas operaciones enlazadas a la tabla. No puede seleccionar cada operación individualmente. Si la tabla admite operaciones Create, Update y Delete, estos eventos se incluyen.

También se incluyen eventos adicionales relacionados con otras operaciones. Por ejemplo, si la tabla es propiedad del usuario, participa en eventos de seguridad. El propietario de cualquier registro de la tabla puede compartirlo, cambiar las funcionalidades de uso compartido o dejar de compartir el registro. Las operaciones relacionadas con el intercambio se exponen como eventos , y . También se pueden incluir eventos adicionales en función de la tabla. Si la tabla es una Tabla Virtual y la configuras para admitir eventos, se incluyen los eventos , y . Para obtener más información, consulte Habilitación de tablas virtuales para admitir eventos de Dataverse.

Agregue solo las tablas que contienen datos empresariales que interesan a los suscriptores. No intente incluir todas las tablas.

Puede incluir la misma tabla en varios catálogos. Por ejemplo, si su solución depende de los datos de clientes en las tablas de Cuenta o Contacto de Dataverse, inclúyalas. Otros catálogos pueden incluir tablas de su solución.

Eventos personalizados

Use la API personalizada de Dataverse para crear eventos personalizados. Cada API personalizada crea un nuevo mensaje de Dataverse y proporciona el punto de conexión del servicio web para llamar a la API personalizada. Para más información, consulte Creación y uso de API personalizadas.

Los eventos comerciales personalizados solo pueden enviar notificaciones cuando se completa un evento. El marco de eventos de Dataverse proporciona funcionalidades para incluir lógica sincrónica que puede cancelar una operación o cambiar la salida para que pueda ampliar el comportamiento del sistema. Muchos de los mismos mensajes que exponen los eventos empresariales se pueden extender mediante la lógica sincrónica en el marco de eventos de Dataverse, pero las notificaciones de eventos empresariales solo se producen cuando estas operaciones se completan correctamente.

Por ejemplo, puede tener una API personalizada que encapsula un conjunto de operaciones que representan un proceso de negocio, como Reasignar, que cambia la propiedad de un registro a otro en función de determinados criterios. O Escalar, que eleva el estado de prioridad de un registro y crea tareas asociadas adicionales. Al usar una API personalizada de esta manera, va a definir nuevos eventos que podrían interesar a los suscriptores. Si estas operaciones se completan con éxito, la lógica asincrónica se puede activar en ellos.

También puede crear una acción personalizada simplemente para permitir que los suscriptores respondan a ella. Eventos externos describe un caso específico en el que los eventos se originan fuera de Dataverse, pero puede crear una API personalizada como eventos para utilizarlos dentro de Dataverse usando la misma configuración. Si su acción personalizada está destinada solo a que los suscriptores respondan, le recomendamos que el nombre de su acción personalizada comience con , como u .

La API personalizada se puede utilizar para muchos propósitos diferentes, no todos están relacionados con operaciones que representan eventos interesantes para la lógica empresarial. Por eso es necesario catalogar los eventos empresariales. El propietario de la solución que contiene la API personalizada solo debe catalogar las API personalizadas que representan eventos de alto valor. No intente catalogar todas las acciones personalizadas que incluya en la solución.

Principios de diseño

Cuando considere API personalizadas para catalogar como eventos comerciales en su solución, utilice los siguientes principios de diseño.

  • Intención clara: comprenda claramente la intención detrás de la creación de un evento empresarial. En otras palabras, conozca el motivo para crear el evento empresarial y cómo lo usa el suscriptor.

  • Específico: haga que el evento sea específico para que un suscriptor no necesite filtrar si deben responder a él o no. No cree eventos empresariales genéricos a los que los suscriptores no respondan siempre.

  • Ligero: incluya solo los datos necesarios para describir el evento. Si el suscriptor requiere datos adicionales, la información del evento debe proporcionar el contexto para permitirles recuperarlos si es necesario.

  • No para transferir datos: si su intención es transferir datos a un destinatario y, en efecto, realizar un escenario de exportación de datos, no use eventos empresariales. El uso de eventos empresariales para escenarios de transferencia de datos es un uso incorrecto de los eventos empresariales.

Acciones de proceso personalizadas

El concepto de Acción personalizada incluye tanto la API personalizada como acciones de procesos personalizados. Ambos tipos de acciones personalizadas crean una NUEVA API, pero difieren en cómo lo crean. Para eventos empresariales personalizados, use la API personalizada.

También puede catalogar acciones de proceso personalizadas como eventos empresariales. Este enfoque proporciona compatibilidad con versiones anteriores si la solución ya usa acciones de proceso personalizadas para encapsular alguna lógica de negocios que represente un evento empresarial. No es necesario migrar esta acción personalizada para usar la API personalizada.

Sin embargo, las acciones de procesos personalizados tienen las siguientes limitaciones:

  • Al igual que cualquier flujo de trabajo, puede deshabilitarlos en la interfaz de usuario. Es posible que no te des cuenta de cuándo alguien deshabilita la acción del proceso personalizado hasta que de repente deja de funcionar.
  • Hasta hace poco, no había ninguna manera de evitar que los pasos del complemento sincrónicos se registraran en acciones de proceso personalizadas. Esta limitación significa que cualquier persona puede registrar pasos sincrónicos que cambien el comportamiento de la acción de proceso personalizado o incluso cancelarlo. Ahora hay una propiedad administrada IsCustomProcessingStepAllowedForOtherPublishers que permite que una acción de proceso personalizada bloquee este paso. Si va a actualizar la acción del proceso personalizado para establecer esta propiedad, considere la posibilidad de convertirla para usar la API personalizada en su lugar.

Para obtener más información sobre cómo difieren, consulte Comparación de la acción de proceso personalizado y la API personalizada.

Si la acción del proceso personalizado no contiene ninguna lógica dentro del diseñador de flujos de trabajo y solo se basa en complementos para realizar operaciones, es probable que pueda migrar la acción de proceso personalizado para que sea una API personalizada para mitigar estos problemas.

La comunidad de Power Platform ya ha creado herramientas para ayudar con esto. Vea el complemento de XrmToolBox Conversor de acción personalizada a API personalizada.

Nota

Microsoft no admite herramientas creadas por la comunidad. Si tiene preguntas o problemas con las herramientas de la comunidad, póngase en contacto con el publicador de la herramienta.

Eventos externos

Los eventos personalizados pueden representar eventos que ocurren en sistemas externos. Los eventos que ocurren en sistemas externos ya se han completado.

Las API personalizadas creadas para eventos externos deben ajustarse a estos principios:

  • No especifique ningún tipo de complemento para la operación principal.
  • No permita ningún registro de pasos sincrónicos.
    • Establezca la propiedad Tipo de paso de procesamiento personalizado permitido de la API personalizada en Async Only. Esta configuración impide que se apliquen los pasos sincrónicos para esta API.
  • No incluya ninguna propiedad de respuesta, solo parámetros de solicitud.
    • Sin lógica sincrónica, no hay forma de establecer propiedades de respuesta.

Nota

Esta configuración no solo es para eventos que se producen fuera de Dataverse. Puede usar custom API con esta configuración para representar también eventos que se producen en Dataverse.

Ejemplos

Vamos a comparar dos ejemplos de eventos externos:

Escenario A: EnLaCompraDelCliente

Tiene una aplicación de punto de venta y la compra de un cliente es un evento importante que desea capturar. Quizás quiera enviar al cliente un correo electrónico que le agradece su compra y desea almacenar información sobre la cantidad total que el cliente ha invertido en Dataverse. Puede definir una API personalizada en Dataverse. Su aplicación de punto de venta puede enviar información sobre este evento a Dataverse. En Dataverse, desea actualizar un registro con el total. A continuación, quiere usar Power Automate para enviar un correo electrónico que les agradece su compra.

Puede parecer más eficaz implementar la lógica para calcular el total y actualizar el registro en una operación principal de la API personalizada. Pero la introducción de la lógica síncrona de esta manera introduce la posibilidad de que la lógica falle y devuelva un error a la aplicación de punto de venta que la llama. Dado que el evento ya se ha producido, no es necesario realizar ninguna lógica sincrónica que pueda provocar un error en la llamada a Dataverse. En su lugar, confíe en Power Automate para incluir toda la lógica o incluya otro paso de complemento asincrónico en el evento OnCustomerPurchase para actualizar el registro en Dataverse.

Escenario B: OnVendorPaymentPosted

Tiene una aplicación ERP que tiene un evento y simplemente desea simplificar la forma en que centraliza su lógica de automatización. Puede crear una api personalizada que represente este evento externo y configurar la aplicación ERP para llamar a esta API de Dataverse. Al catalogar esta API personalizada como un evento, puede usar el conector de Power Automate dataverse para usar este evento como desencadenador.

Este ejemplo espera que no se haga nada en Dataverse excepto permitir que se registre la lógica asíncrona para el evento.

Invocar API personalizada desde aplicaciones externas

El requisito clave para utilizar una API personalizada para enviar eventos comerciales es que su aplicación debe tener la capacidad de realizar solicitudes HTTP autorizadas a Dataverse. Para la autorización, las solicitudes que se originan en otras aplicaciones normalmente utilizarán una cuenta de usuario de la aplicación especial que crea en el entorno de Dataverse. Los usuarios con licencia de Dataverse autenticados también pueden utilizar aplicaciones para enviar estas solicitudes.

Al eliminar toda la lógica síncrona de la API personalizada, la probabilidad de que un error provoque un error en la operación es extremadamente baja, pero no imposible. Su aplicación de llamada debe proporcionar una forma de lidiar con errores transitorios en caso de que el servicio de Dataverse no responda, hay problemas de conectividad de red o se devuelven errores de límite de protección del servicio.

Para habilitar las llamadas autorizadas a Dataverse desde la aplicación, debe configurar un usuario de aplicación para el entorno de Dataverse. Para obtener más información, consulte Compilación de aplicaciones web mediante la autenticación de servidor a servidor (S2S).

Utilizar eventos de negocio para desencadenar la automatización

A medida que los eventos empresariales se convierten en un patrón común, surgen varias maneras de habilitar la automatización.

La primera experiencia en la que se exponen los eventos empresariales se encuentra en el conector de Dataverse de Power Automate mediante el desencadenador When an action is performed.

Cuando se realiza una acción, se produce un desencadenador.

Dentro de esta experiencia, los eventos Create, Update y Delete no aparecen para los eventos de tabla. Estos eventos ya están disponibles mediante el desencadenador Cuando se agrega, modifica o elimina una fila .

Vea también

Catálogo y tablas de asignación de catálogo
Habilitar las tablas virtuales para admitir eventos de Dataverse