Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les événements entraînent l’automatisation de la logique métier et de l’intégration avec d’autres systèmes. Lorsque quelque chose d’intéressant se produit dans une application métier, un événement se produit et les données décrivant l’événement deviennent disponibles pour que les abonnés puissent y répondre. Microsoft Dataverse offre des fonctionnalités permettant de relayer les données d’événement aux abonnés à l’aide des applications et technologies suivantes :
- Flux Power Automate
- Azure Service Bus
- Azure Event Hub
- Webhooks
- Plug-ins Dataverse
Dataverse dispose d’un cadre d’événements robuste pour capturer les événements système dans Dataverse. Vous pouvez répondre aux événements au sein du système à l’aide de Dataverse Event Framework. Ce framework ne change pas. Pour plus d’informations, consultez l’infrastructure d’événements.
Les événements Dataverse Business offrent de nouvelles façons d’exposer des événements et de composer votre logique métier pour y répondre de manière asynchrone, comme le déclencheur Power Automate Dataverse lorsqu'une action est effectuée.
En voici quelques exemples :
Vous avez une logique que vous souhaitez appliquer lorsqu’une opération de partage est effectuée sur un enregistrement appartenant à l’utilisateur. La seule façon d’initier la logique à ce message
GrantAccessqui se produit lorsqu’un enregistrement est partagé est via l’infrastructure d’événements Dataverse, généralement via un plug-in. En utilisant des événements métier, vous pouvez cataloguer la table qui expose leGrantAccessmessage.Un développeur de plug-ins peut avoir une logique dans le code de plug-in synchrone qui répond à un certain ensemble de conditions. Le développeur transmet ces conditions aux variables partagées pour un autre plug-in asynchrone pour lancer une automatisation. En utilisant un événement métier, au lieu de passer ces détails via les variables partagées du pipeline d’événements, vous pouvez appeler une action personnalisée contenant les détails de l’événement dans les paramètres. Un plug-in asynchrone peut ensuite répondre à l’action personnalisée, ou vous pouvez choisir d’utiliser Power Automate à la place. Vous pouvez ajouter une autre logique pour répondre à cet événement. Ce modèle offre une plus grande flexibilité et une opportunité de simplifier la logique dans votre code de plug-in.
Catalogues et événements personnalisés
Les événements d'entreprise Dataverse combinent les concepts des événements Business de Dynamics Finance and Operations avec le Cadre d'événements Dataverse. Cette combinaison permet de découvrir des événements et de créer une automatisation lorsque ces événements se produisent.
Catalogue d’événements : avec autant d’événements disponibles dans le système, il peut être difficile de localiser celui qui convient. Un catalogue d’événements améliore la découverte d’événements en associant des événements à une solution et en organisant les événements en catégories.
Un catalogue inclut uniquement les événements sélectionnés et à valeur élevée qui sont pertinents pour la solution. Vous exposez un événement en l’ajoutant à un catalogue.
Événements personnalisés : vous pouvez créer des actions personnalisées en tant qu’événements personnalisés, car Dataverse les traite à l’aide de son infrastructure d’événements.
Ces événements peuvent représenter des modifications de données dans Dataverse ou non. Vous pouvez utiliser des API personnalisées sans logique synchrone qui existent uniquement pour avertir les écouteurs qu’un événement d’intérêt s’est produit. Vous émettez l’événement en appelant l’action personnalisée.
Catalogue d’événements
Pour exposer un événement professionnel, vous devez le cataloguer. Pour plus d’informations, consultez les tables Catalog et CatalogAssignment.
Un catalogue regroupe les événements métier en fonction de la solution contenant et des catégories définies pour cette solution. L’éditeur de solutions sélectionne les événements les plus pertinents pour leur solution.
Un catalogue est une structure hiérarchique où le niveau supérieur représente une solution. Le niveau suivant est une catégorie. Vous affectez des tables et des événements pertinents à une catégorie.
Par exemple, la structure suivante représente un catalogue pour une solution appelée Gestion des clients Contoso :
- Gestion des clients Contoso
- Tables
- Compte
- Contact
- Adhésion
- Événements du client
- Entré dans le magasin
- Aller sur le site web
- Produit acheté
- Retour produit
- Tables
Cet exemple utilise tables et événements clients comme catégories, mais vous pouvez utiliser n’importe quel regroupement de catégories qui est logique pour votre solution.
Si votre solution se compose de plusieurs solutions dépendantes, vous pouvez définir le catalogue racine dans la solution de base, puis ajouter des catégories et des événements attribués aux solutions dépendantes.
Événements de table
Lorsque vous affectez une table à une catégorie, vous incluez certaines opérations liées à la table. Vous ne pouvez pas sélectionner chaque opération individuellement. Si la table prend en charge les opérations Create, Update et Delete, ces événements sont inclus.
Vous incluez également des événements supplémentaires liés à d’autres opérations. Par exemple, si la table appartient à l’utilisateur, elle participe à des événements de sécurité. Le propriétaire de n’importe quel enregistrement de la table peut le partager, modifier les fonctionnalités de partage ou arrêter le partage de l’enregistrement. Les opérations liées au partage sont exposées comme événements GrantAccess, ModifyAccess, et RevokeAccess. Des événements supplémentaires peuvent également être inclus en fonction de la table. Si la table est une table virtuelle et que vous la configurez pour prendre en charge les événements de table virtuelle, les événements OnExternalCreated, OnExternalUpdated, et OnExternalDeleted sont inclus. Pour plus d’informations, consultez Activer les tables virtuelles pour prendre en charge les événements Dataverse.
Ajoutez uniquement les tables qui contiennent des données métier qui intéressent les abonnés. N’essayez pas d’inclure chaque table.
Vous pouvez inclure la même table dans plusieurs catalogues. Par exemple, si votre solution dépend des données client dans les tables Compte Dataverse ou Contact, incluez-les. D’autres catalogues peuvent inclure des tables de votre solution.
Événements personnalisés
Utilisez l’API personnalisée Dataverse pour créer des événements personnalisés. Chaque API personnalisée crée un message Dataverse et fournit le point de terminaison de service web pour appeler l’API personnalisée. Pour plus d’informations, consultez Créer et utiliser des API personnalisées.
Les événements commerciaux personnalisés ne peuvent envoyer des notifications que lorsqu’un événement est terminé. L’infrastructure d’événements Dataverse fournit des fonctionnalités permettant d’inclure une logique synchrone qui peut annuler une opération ou modifier la sortie afin que vous puissiez étendre le comportement du système. La plupart des messages exposés par les événements métier peuvent être étendus en utilisant une logique synchrone dans le cadre d'événements Dataverse, mais les notifications des événements métier ne se produisent que lorsque ces opérations s'achèvent avec succès.
Par exemple, vous pouvez avoir une API personnalisée qui encapsule un ensemble d’opérations qui représentent un processus métier, comme Reassigner, qui modifie la propriété d’un enregistrement à un autre en fonction de certains critères. Vous pouvez également escalader l'état de priorité d'un enregistrement et créer des tâches associées supplémentaires. Lorsque vous utilisez une API personnalisée de cette façon, vous définissez de nouveaux événements susceptibles d’intéresser les abonnés. Si ces opérations se terminent avec succès, une logique asynchrone peut être déclenchée sur eux.
Vous pouvez également créer une action personnalisée uniquement pour permettre aux abonnés d’y répondre.
Les événements externes décrivent un cas spécifique dans lequel les événements proviennent de l'extérieur de Dataverse, mais vous pouvez également créer des API personnalisées en tant qu’événements à utiliser dans Dataverse en utilisant les mêmes paramètres. Si votre action personnalisée est destinée uniquement aux abonnés, nous recommandons que le nom de votre action personnalisée commence par On, tel que OnCustomerPurchase ou alors OnVendorPaymentPosted.
L’API personnalisée peut être utilisée à de nombreuses fins différentes, toutes ne sont pas liées à des opérations qui représentent des événements intéressants pour la logique métier. C’est pourquoi les événements d’entreprise doivent être catalogués. Le propriétaire de la solution qui contient l’API personnalisée doit uniquement cataloguer ces API personnalisées qui représentent des événements à valeur élevée. N’essayez pas de cataloguer toutes les actions personnalisées que vous incluez dans votre solution.
Principes de conception
Lorsque vous envisagez d’utiliser des API personnalisées pour cataloguer des événements métier dans votre solution, utilisez les principes de conception suivants.
Intention claire : comprenez clairement l’intention derrière la création d’un événement d’entreprise. En d’autres termes, connaissez la raison de la création de l’événement professionnel et de la façon dont l’abonné l’utilise.
Spécifique : Rendre l’événement spécifique afin qu’un abonné n’ait pas besoin de filtrer s’il doit y répondre ou non. Ne créez pas d’événements métier génériques auxquels les abonnés peuvent ne pas toujours répondre.
Léger : incluez uniquement les données nécessaires pour décrire l’événement. Si l’abonné requiert des données supplémentaires, les informations contenues dans l’événement doivent fournir le contexte pour leur permettre de les récupérer si nécessaire.
Non pour le transfert de données : si votre intention est de transférer des données vers un destinataire et, en effet, de réaliser un scénario d’exportation de données, n’utilisez pas d’événements métier. L’utilisation d’événements métier pour les scénarios de transfert de données est une mauvaise utilisation des événements métier.
Actions de processus personnalisées
La notion de Action personnalisée comprend à la fois l’API personnalisée et les actions de processus personnalisé. Les deux types d’actions personnalisées créent une NOUVELLE API, mais ils diffèrent de la façon dont ils le créent. Pour les événements métier personnalisés, utilisez l’API personnalisée.
Vous pouvez également cataloguer des actions de processus personnalisées en tant qu’événements métier. Cette approche offre une compatibilité descendante si votre solution utilise déjà des actions de processus personnalisées pour encapsuler une logique métier qui représente un événement métier. Vous n’êtes pas obligé de migrer cette action personnalisée pour utiliser l’API personnalisée.
Cependant, les actions de processus personnalisées présentent les limitations suivantes :
- Comme n’importe quel flux de travail, vous pouvez les désactiver dans l’interface utilisateur. Vous ne savez peut-être pas quand une personne désactive votre action de processus personnalisée tant qu’elle cesse soudainement de fonctionner.
- Jusqu’à récemment, il n’existe aucun moyen d’empêcher l’inscription des étapes de plug-in synchrones sur les actions de processus personnalisées. Cette limitation signifie que tout le monde peut inscrire des étapes synchrones qui modifient le comportement de l’action de processus personnalisé ou même l’annuler. Il existe maintenant une propriété gérée IsCustomProcessingStepAllowedForOtherPublishers qui permet à une action de processus personnalisée de bloquer cette étape. Si vous allez mettre à jour votre action de processus personnalisé pour définir cette propriété, envisagez de la convertir pour utiliser l’API personnalisée à la place.
Pour plus d’informations sur la façon dont ils diffèrent, consultez Comparer l’action de processus personnalisé et l’API personnalisée.
Si votre action de processus personnalisée ne contient aucune logique dans le concepteur de flux de travail et s’appuie uniquement sur les plug-ins pour effectuer des opérations, vous pouvez probablement migrer l’action de processus personnalisée pour qu’elle soit une API personnalisée pour atténuer ces problèmes.
La communauté Power Platform a déjà créé des outils pour faciliter cette opération. Voir le Plugin XrmToolBox Convertisseur d’action personnalisée en API personnalisée.
Note
Microsoft ne prend pas en charge les outils créés par la communauté. Si vous avez des questions ou des problèmes avec les outils de la communauté, contactez l’éditeur de l’outil.
Événements externes
Les événements personnalisés peuvent représenter des événements qui se produisent dans des systèmes externes. Les événements qui se produisent dans les systèmes externes sont déjà terminés.
Les API personnalisées créées pour les événements externes doivent s’aligner sur ces principes :
- Ne spécifiez aucun type de plug-in pour l’opération principale.
- N’autorisez pas l’enregistrement de toute étape synchrone.
- Définissez la propriété Type d’étape de traitement personnalisée autorisée de l’API personnalisée sur Asynchrone uniquement. Ce paramètre empêche l’application de toutes les étapes synchrones pour cette API.
- N’incluez aucune propriété de réponse, seuls les paramètres de requête.
- Sans logique synchrone, il n’existe aucun moyen de définir les propriétés de réponse.
Note
Ces paramètres ne sont pas uniquement destinés aux événements qui se produisent en dehors de Dataverse. Vous pouvez également utiliser l’API personnalisée avec ces paramètres pour représenter les événements qui se produisent dans Dataverse.
Exemples
Comparons deux exemples d’événements externes :
Scénario A : LorsDeL'AchatDuClient
Vous disposez d’une application point de vente et un achat client est un événement important que vous souhaitez immortaliser. Peut-être souhaitez-vous envoyer au client un e-mail qui les remercie de leur achat, et vous souhaitez stocker des informations sur le montant total dépensé par le client dans Dataverse. Vous pouvez définir une API personnalisée OnCustomerPurchase dans Dataverse. Votre application de point de vente peut envoyer des informations sur cet événement à Dataverse. Dans Dataverse, vous souhaitez mettre à jour un enregistrement avec le total. Ensuite, vous souhaitez utiliser Power Automate pour envoyer un e-mail qui les remercie pour leur achat.
Il peut sembler plus efficace d’implémenter la logique pour calculer le total et mettre à jour l’enregistrement dans une opération principale de l’API personnalisée. Mais l’introduction de la logique synchrone de cette manière introduit la possibilité que la logique échoue et renvoie une erreur à l’application de point de vente qui l’appelle. Étant donné que l’événement s’est déjà produit, il n’est pas nécessaire d’effectuer une logique synchrone qui peut entraîner l’échec de l’appel Dataverse. Au lieu de cela, dépendre de Power Automate pour inclure toute la logique ou ajouter une autre étape de plug-in asynchrone sur l’événement OnCustomerPurchase afin de mettre à jour l’enregistrement dans Dataverse.
Scénario B : OnVendorPaymentPosted
Vous disposez d’une application ERP qui a un OnVendorPaymentPosted événement et vous souhaitez simplement simplifier la centralisation de votre logique d’automatisation. Vous pouvez créer une API personnalisée représentant cet événement externe et configurer l’application ERP pour l’appeler l’API Dataverse. Lorsque vous cataloguez cette API personnalisée en tant qu’événement, vous pouvez utiliser le connecteur Dataverse Power Automate pour utiliser cet événement comme déclencheur.
Cet exemple n’attend rien à faire dans Dataverse sauf permettre à la logique asynchrone d’être enregistrée pour l’événement.
Appel de l’API personnalisée à partir d’applications externes
L’exigence clé pour utiliser l’API personnalisée pour envoyer des événements commerciaux est que votre application doit avoir la capacité de faire des requêtes HTTP autorisées à Dataverse. Pour l’autorisation, les demandes provenant d’autres applications utilisent généralement un compte d’utilisateur d’application spécial que vous créez dans l’environnement Dataverse. Les utilisateurs Dataverse sous licence et authentifiés peuvent également utiliser des applications pour envoyer ces demandes.
En supprimant toute la logique synchrone de l’API personnalisée, la probabilité qu’une erreur entraîne l’échec de l’opération est extrêmement faible, mais pas impossible. Votre application appelante doit fournir un moyen de traiter les erreurs temporaires si le service Dataverse ne répond pas, il existe des problèmes de connectivité réseau ou des erreurs de limite de protection du service sont retournées.
Pour activer les appels autorisés à Dataverse à partir de votre application, vous devez configurer un utilisateur d’application pour l’environnement Dataverse. Pour plus d’informations, consultez Créer des applications web à l’aide de l’authentification serveur à serveur (S2S).
Utilisez les événements commerciaux pour déclencher l’automatisation
À mesure que les événements métier deviennent un modèle commun, plusieurs façons d’activer l’automatisation émergent.
La première expérience où les événements métier sont exposés se trouve dans le connecteur Power Automate Dataverse, à l’aide du déclencheur Lorsqu’une action est effectuée.
Dans cette expérience, les événements Créer, Mettre à jour et Supprimer n’apparaissent pas pour les événements de table. Ces événements sont déjà disponibles à l’aide du déclencheur Quand une ligne est ajoutée, modifiée ou supprimée .
Voir aussi
Tables Catalogue et CatalogAssignment
Activer les tables virtuelles pour prendre en charge des événements Dataverse