Partager via


Déboguer les plug-ins

Le processus d′écriture, d′enregistrement et de débogage d′un plug-in est le suivant :

  1. Créez un projet de bibliothèque de classes .NET Framework dans Visual Studio
  2. Ajoutez le package NuGet Microsoft.CrmSdk.CoreAssemblies au projet
  3. Implémentez l′interface IPlugin sur les classes qui seront enregistrées comme étapes.
  4. Ajoutez votre code à la méthode Execute requise par l′interface
    1. Obtenez des références aux services dont vous avez besoin
    2. Ajoutez votre logique métier
  5. Signez et générez l′assembly
  6. Testez l′assembly
    1. Enregistrez l′assembly dans un environnement de test
    2. Ajoutez votre assembly enregistré et les étapes à une solution non gérée
    3. Testez le comportement de l′assembly
    4. Vérifiez que les journaux de suivi prévus sont écrits
    5. Déboguez l′assembly si nécessaire

Le contenu de cette rubrique couvre les étapes précédentes en gras et prend en charge les didacticiels suivants :

Testez votre assembly

Le moyen le plus simple de tester votre assembly peut être d′exécuter manuellement l′opération à l′aide de l′application. Mais vous devez également savoir que les événements qui provoquent l’exécution des plug-ins peuvent être déclenchés de plusieurs manières, comme une table créée à partir d’un flux de travail ou à partir des services web.

Les informations du contexte d’exécution peuvent être différentes selon la manière dont l’action est effectuée. Lors de la rédaction de votre plug-in, veillez à avoir des pratiques de programmation défensives et ne supposez pas que chaque valeur que vous attendez soit toujours là.

Vous souhaitez peut-être écrire un programme qui automatise l′exécution des opérations déclenchant votre plug-in et incluant plusieurs variations possibles.

Si vous souhaitez utiliser un cadre d′automatisation de test, sachez que la communauté a créé certains outils pour les tests automatisés. Pour plus d′informations : Outils de test pour le développement côté serveur

Utiliser le suivi

Comme décrit dans Service de traçage, vous pouvez écrire des messages dans la Table PluginTraceLog au sein du code de votre plug-in en utilisant la méthode ITracingService .Trace.

Avant de pouvoir utiliser ce service, vous devez activer le suivi dans votre environnement Microsoft Dataverse. Le processus est décrit dans Afficher les journaux de suivi.

Nonte

La journalisation du suivi occupe de l′espace sur le stockage de l′organisation, surtout lorsque de nombreux suivis et exceptions sont générés. Vous devez activer la journalisation du suivi uniquement pour déboguer et résoudre les problèmes, et la désactiver une fois votre enquête terminée.

Lors du débogage, vous pouvez facilement interroger les journaux de suivi pour une classe de plug-in à l′aide de l′API Web dans votre navigateur. Si votre assembly est nommé BasicPlugin.FollowUpPlugin, vous pouvez utiliser cette requête dans votre champ d′adresse du navigateur :

GET <your org uri>/api/data/v9.0/plugintracelogs?$select=messageblock&$filter=startswith(typename,'BasicPlugin.FollowUpPlugin')

Les résultats de JSON sont renvoyés vers votre navigateur comme suit :

{
    "@odata.context": "<your org uri>/api/data/v9.0/$metadata#plugintracelogs(messageblock)",
    "value": [{
        "messageblock": "FollowupPlugin: Creating the task activity.",
        "plugintracelogid": "f0c221d1-7f84-4f89-acdb-bbf8f7ce9f6c"
    }]
}

Astuce

Cela fonctionne mieux si vous installez une extension de navigateur qui formate le JSON renvoyé. Ou bien, vous pouvez utiliser un client d′API comme Postman ou Insomnia, ou vous souhaitez utiliser VS Code avec PowerShell.

Vous préférez peut-être utiliser la Visionneuse de suivi de plug-ins XrmToolbox. Cet outil de la communauté n′est pas pris en charge par Microsoft. Si vous avez des questions relatives à cet outil, contactez l′éditeur.

Les messages de suivi sont également disponibles dans le fichier journal qui peut être téléchargé lorsqu′un plug-in synchrone ou l′assembly de workflow personnalisé génère une erreur qui entraîne une boîte de dialogue d′erreur pour l′utilisateur. L′utilisateur peut sélectionner le bouton Fichier journal de téléchargement pour afficher le journal contenant l′exception et le résultat de suivi.

Pour l′exécution des plug-ins inscrits asynchrones ou les assemblys de workflow personnalisées qui renvoient une exception, les informations de suivi sont affichées dans la zone Détails du formulaire Tâche système de l′application Web.

Nonte

Si votre code personnalisé s’exécute dans la transaction de base de données et si une exception provoque une restauration de la transaction, toutes les modifications apportées aux données de table par votre code sont annulées. Toutefois, les enregistrements de table PluginTraceLog perdurent après la restauration.

Utiliser le profileur de plug-ins

Le profileur de plug-ins est une solution que vous pouvez installer sur votre environnement, ce qui vous permet de capturer le contexte d′évolution d′un plug-in, puis d′utiliser les données pour lire à nouveau l′événement dans Visual Studio lors du débogage.

Des instructions sont disponibles pour installer et utiliser le profileur de plug-ins dans Didacticiel : Déboguer un plug-in. Consultez Installez-le profileur de plug-ins et Déboguer votre plug-in

Afficher les données de profil du plug-in

Après avoir installé le profileur de plug-ins et capturé certains profils, vous pouvez visualiser le contexte de l′événement et lire à nouveau les données utilisées lors du débogage. Le fait d′afficher ces données peut vous aider à comprendre les données du contexte d′exécution que votre plug-in peut utiliser.

Vous pouvez visualiser ces données à l′aide de l′outil Plug-in Registration en sélectionnant la commande Afficher le profil de plug-ins. Cela ouvre la boîte de dialogue Profil du plug-in

Ouvrez le profil de plug-in.

Sélectionnez l′icône icône de téléchargement. et, dans la boîte de dialogue Sélectionner le profil depuis CRM, spécifiez l′élément du journal à utiliser.

Sélectionnez le profil depuis CRM.

Puis sélectionnez Vue dans la boîte de dialogue Profil de plug-in.

Cela télécharge et ouvre un fichier XML avec les informations de profil. L′élément Context représente le contexte d′exécution transmis au plug-in.

exemple de données de profil.

Plus d’informations

Outils de test pour le développement côté serveur