Intégration d’Azure avec Customer Engagement

Vous pouvez connecter Dynamics 365 for Customer Engagement à la plateforme Azure en couplant le pipeline d’exécution d’événement Customer Engagement au Azure Service Bus. Une fois configurée, cette connexion permet aux données traitées dans le cadre de l’opération Customer Engagement actuelle d’être publiées sur le bus de services. Les solutions Azure Service Bus qui sont « compatibles Customer Engagement » peuvent écouter et lire les données Dynamics 365 Customer Engagement (on-premises) du bus des services.

Cette connexion entre Dynamics 365 Customer Engagement (on-premises) et la plateforme Azure fournit un canal sécurisé et fiable pour la communication des données d’exécution Customer Engagement aux applications métier externes basées sur le cloud.

Éléments clés de la connexion

Les éléments clés implémentant la connexion entre Dynamics 365 Customer Engagement (on-premises) et le Azure Service Bus sont décrits ci-dessous. Un schéma dans la section suivante illustre ces éléments en opération.

Contexte de données
Le contexte de données contient les données commerciales traitées dans le cadre de l’opération Customer Engagement actuelle. Ce traitement a été initialisé lorsqu’une demande d’effectuer une certaine opération a été effectuée par un utilisateur, un workflow, ou une application, sur la plateforme Dynamics 365 Customer Engagement (on-premises). Le contexte de données est transmis à toutes les activités plug-ins ou de workflow personnalisé enregistrées avec le pipeline d’événements à exécuter sur la combinaison de demande et d’entité spécifique en cours de traitement. Le contexte de données est de type IPluginExecutionContext lorsque celui-ci est transmis au pipeline d’exécution d’événement et RemoteExecutionContext lorsqu’il est publié sur le bus des services.

Le contexte de données contenu dans le message qui est publié sur Azure Service Bus peut être mis au format XML ou JSON outre le format binaire .NET par défaut. Cela permet l’interopérabilité entre plateformes où les clients hébergés azurés non .NET peuvent lire les données Customer Engagement du bus des services. Cette fonction a été introduite dans CRM Online 2016 Update 1 et CRM 2016 Service Pack 1 (on-premises)..

Wichtig

Lorsque la taille de la charge HTTP entière dépasse 192 Ko, les propriétés suivantes sont supprimées :

Certaines opérations ne comprennent pas ces propriétés.

  • Si la taille de la charge est inférieure à 192 Ko une fois les informations supplémentaires supprimées, une propriété MessageMaxSizeExceeded supplémentaire est ajouté au BrokeredMessage adressé par le système. Cela indique que certaines données ont été tronquées.
  • Si la taille de la charge dépasse 192 Ko une fois les informations supplémentaires supprimées, une erreur se produit et le message n’est pas envoyé.

Pour plus d'informations sur les technologies décrites ci-dessus, voir : Comprendre le contexte d’exécution, Pipeline d’exécution des événements et Écrire une application d’écoute pour une solution Microsoft Azure.

Plug-ins
Les plug-ins sont l’une des deux méthodes utilisées pour initier la publication du message contenant le contexte de données vers Azure Service Bus, l’autre méthode étant une activité de workflow personnalisée. Il existe deux types de plug-ins inscrits asynchrones pris en charge par la fonctionnalité de connexion Dynamics 365 Customer Engagement (on-premises)-Azure : prêt à l’emploi et personnalisé. Dans les deux cas, il est préférable d’enregistrer le plug-in pour une exécution asynchrone pour de meilleures performances du système.

Un plug-in OOB compatible Azure est fourni avec Customer Engagement et peut être enregistré via l’outil Plug-in Registration dans le téléchargement SDK. Ce plug-in s’exécute en toute confiance avec la plateforme Dynamics 365 Customer Engagement (on-premises). Vous devez enregistrer une étape plug-in dans le pipeline d’exécution d’événement qui identifie la combinaison de message et d’entité qui déclenche le plug-in pour exécuter et effectuer une notification de publication. Une fois exécuté, le plug-in avertit le service asynchrone, via un service de notification de point de terminaison de service (IServiceEndpointNotificationService), pour publier le contexte actuel de données de requête sur Azure Service Bus.

Vous pouvez également créer votre propre plug-in personnalisé, compatible Azure. Le plug-in personnalisé s’exécute en mode de confiance partielle dans le bac à sable. Un plug-in personnalisé peut lancer la publication du contexte de données sur le bus de services via le service de notification de point de terminaison de service. Ajouter du code pour invoquer ce service rend le plug-in « compatible Azure». Pour plus d’informations sur les plug-ins en général, voir Écrire un plug-in. Pour plus d’informations sur les plug-ins compatibles Azure, voir Écrire un plug-in compatible Azure personnalisé.

Activités de workflow personnalisées
À l’instar des plug-ins, des activités de workflow personnalisées peuvent être écrites pour initier la publication du contexte actuel de données de messages de demande sur Azure Service Bus à l’aide du service de notification de point de terminaison de service (IServiceEndpointNotificationService). Pour plus d'informations : Exemple : activité de workflow personnalisée compatible Azure.

Service asynchrone
Une fois averti par le service de notification du point de terminaison de service, le service asynchrone gère la publication du contexte de données du message de demande actuellement traité par le pipeline d’exécution d’événements sur Azure Service Bus. Chaque publication est effectuée par une tâche système du service asynchrone. Un utilisateur peut afficher le statut de chaque tâche système à l’aide de la vue Tâches système de l’application web Dynamics 365 Customer Engagement (on-premises).

Pour plus d'informations sur le service asynchrone, voir Service asynchrone dans Dynamics 365 Customer Engagement (on-premises).

Bus de services Microsoft Azure
Le bus de services transmet par relais le contexte de données de message de demande entre les applications d’écouteur de solution Dynamics 365 Customer Engagement (on-premises) et Azure Service Bus. Le bus des services assure également la sécurité des données de sorte que seules les applications autorisées peuvent accéder aux données Dynamics 365 Customer Engagement (on-premises) publiées. L’autorisation de Dynamics 365 Customer Engagement (on-premises) de publier le contexte de données vers le bus des services et pour les applications d’écouteur de le lire est gérée par Azure Shared Access Signatures (SAS).

Pour plus d'informations sur Service Bus, voir Service Bus. Pour plus d'informations sur l’autorisation de Service Bus, voir Authentification et autorisation de Service Bus.

Solution Microsoft Azure
Pour que la connexion Customer Engagement-Azure fonctionne, il doit y avoir au moins une solution dans un compte de solution Azure Service Bus, où la solution contient un ou plusieurs points de terminaison de service. Pour un contrat du point de terminaison de relais, une application d’écouteur compatible Customer Engagement doit écouter activement sur le point de terminaison la demande Customer Engagement sur le bus des services. Pour un contrat de point de terminaison de file d’attente, il n’est pas nécessaire qu’un écouteur écoute activement. Un écouteur est rendu compatible Customer Engagement en l’associant à l’assembly Microsoft.Xrm.Sdk de sorte que le type RemoteExecutionContext soit défini. Pour plus d'informations : Écrire une application d’écoute pour une solution Microsoft Azure

Dynamics 365 Customer Engagement (on-premises) prend en charge l’envoi de données d’événement à une solution Azure Event Hubs. Cette fonction a été introduite dans CRM Online 2016 Update 1 et CRM 2016 Service Pack 1 (on-premises).. Pour plus d'informations sur les hubs d’événements, voir Utiliser les données d’événement Dynamics 365 Customer Engagement (on-premises) dans votre solution Azure Event Hub

Scénario Dynamics 365 Customer Engagement (on-premises) vers Service Bus

Identifions maintenant un scénario qui implémente les composants de connexion mentionnés précédemment. Comme conditions préalables, l’SAS a été configuré pour identifier Dynamics 365 Customer Engagement (on-premises) comme l’émetteur pris en charge et la solution du Azure Service Bus a été configurée avec des règles visant à permettre à Dynamics 365 Customer Engagement (on-premises) de publier sur le point de terminaison sur lequel l’écouteur écoute.

Le diagramme suivant illustre les éléments physiques qui composent le scénario.

Scénario Dynamics 365 Customer Engagement (on-premises) vers Service Bus.

La séquence des événements identifiés dans ce diagramme est la suivante :

  1. Une application d’écouteur est inscrite sur un point de terminaison de solution du Azure Service Bus et commence à écouter activement le contexte d’exécution distant Dynamics 365 Customer Engagement (on-premises) sur le bus des services.

  2. Un utilisateur effectue une opération dans Dynamics 365 Customer Engagement (on-premises) qui déclenche l’exécution du plug-in prêt à l’emploi inscrit ou d’un plug-in compatible Azure personnalisé. Le plug-in lance une publication, via une tâche système de service asynchrone, du contexte de données de demande actuel sur le bus des services.

  3. Les revendications publiées par Dynamics 365 Customer Engagement (on-premises) sont authentifiées. Le bus des services transmet par relais le contexte d’exécution distant à l’écouteur. L’écouteur traite les informations de contexte et effectue une tâche professionnelle avec ces informations. Le bus des services notifie le bus des services asynchrone d’une publication réussie et attribue à la tâche système le statut Terminé.

Création d’un contrat entre Dynamics 365 Customer Engagement (on-premises) et une solution Azure

Pour chaque point de terminaison de solution, vous configurez un contrat qui définit la gestion de ces messages de contexte d’exécution distant sur le bus de services et la sécurité qui doit être utilisée sur ce point de terminaison. Les messages du bus des services sont reçus sur un point de terminaison via l’un des contrats pris en charge répertoriés ici.

File d’attente
Un contrat de file d’attente fournit une file d’attente de messages du cloud. Avec un contrat de file d’attente, l’écouteur n’est pas obligé d’écouter activement les messages sur le point de terminaison. Pour les files d’attente, il existe une lecture destructive et une lecture non destructive. Une lecture destructive lit un message disponible dans la file d’attente et le message est supprimé. Une lecture non destructive ne supprime pas de message dans une file d’attente.

Le type de file d’attente pris en charge par Dynamics 365 Customer Engagement (on-premises) est appelé une file d’attente persistante. Les files d’attente persistantes ont une disponibilité des messages longue mais limitée, qui peut être spécifiée dans le code.

Contrat unidirectionnel
Un contrat unidirectionnel nécessite un écouteur actif. S’il n’y a aucun écouteur actif sur un point de terminaison, la publication vers le bus de services échoue. Dynamics 365 Customer Engagement (on-premises) réessaie d’effectuer la publication à des intervalles de temps augmentant exponentiellement jusqu’à ce que la tâche système asynchrone qui publie la demande soit abandonnée et que son statut passe à « Échec ».

Contrat bidirectionnel
Un contrat bidirectionnel est similaire à un contrat unidirectionnel à ceci près qu’une valeur de chaîne peut être retournée de l’écouteur à l’activité de workflow ou de plug-in personnalisée à l’origine de la publication.

REST
Le contrat REST est similaire au contrat bidirectionnel sur un point de terminaison REST.

Sujet
Similaire à une file d’attente sauf qu’un ou plusieurs écouteurs peuvent s’abonner pour recevoir des messages du sujet.

Hub d’événements
Ce type de contrat s’applique aux solutions de concentrateur d’événements Azure.

Wichtig

Pour utiliser ces contrats, vous devez créer vos applications d’écoute avec la version 1.7 ou ultérieure du AzureKit de développement logiciel (SDK).

L’identification du type de sécurité utilisé par un contrat fait partie de la configuration du contrat. Un contrat peut utiliser la sécurité de transport, qui utilise Transport Layer Security (TLS) ou Secure Sockets Layer (SSL) (https).

L’authentification basée sur les revendications est utilisée pour l’accès sécurisé au bus de services. La revendication utilisée pour l’authentification auprès de Service Bus est générée dans Dynamics 365 Customer Engagement (on-premises) et signée par le certificat AppFabricIssuer spécifié dans la base de données de configuration Dynamics 365 Customer Engagement (on-premises).

Gestion des erreurs d’exécution

Si une erreur s’est produite après une tentative d’accès d’une publication au bus de services, vérifiez le statut de la tâche système associée dans l’application web Dynamics 365 Customer Engagement (on-premises) pour obtenir plus d’informations sur l’erreur. Si le bus des services est arrêté ou qu’un écouteur/point de terminaison est indisponible, le message actuel en cours de traitement dans Dynamics 365 Customer Engagement (on-premises) n’est pas publié sur le bus. Le service asynchrone continuera de tenter de publier le message de manière exponentielle en essayant de publier d’abord fréquemment puis à intervalles de plus en plus longs. En cas d’erreur Dynamics 365 Customer Engagement (on-premises) interne, aucune publication de message n’est tentée. En cas d’erreur de bus des services externe ou d’erreur réseau, la tâche système associée sera mise en attente.

Voir aussi

Extensions Azure pour Dynamics 365 Customer Engagement (on-premises)
Configuration de l’intégration Azure avec Dynamics 365 Customer Engagement (on-premises)
Plug-ins pour étendre Dynamics 365 Customer Engagement (on-premises)
Présentation du service asynchrone
Entités de tâche système (asyncoperation)

Hinweis

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).