Déboguer les plug-ins

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

  1. Créer un projet de bibliothèque de classes .NET Framework dans Visual Studio
  2. Ajouter le package Microsoft.CrmSdk.CoreAssemblies NuGet 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 en gras ci-dessus et prend en charge les didacticiels suivants :

Testez votre assembly

Le moyen le plus simple de tester votre assembly consiste simplement à 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 de 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 un nombre des variations possibles.

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

Utiliser le suivi

Comme décrit dans le Service de traçage, vous pouvez écrire des messages sur la Table PluginTraceLog dans le code de votre plug-in en utilisant le 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.

Notes

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"
    }]
}

Conseil

Cela fonctionne mieux si vous installez un plug-in de navigateur qui formate le JSON renvoyé. Ou bien, vous souhaitez peut-être utiliser un client API tel que Postman ou Insomnia, ou vous souhaitez peut-être 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.

Notes

Si votre code personnalisé s’exécute dans la transaction de base de données et si une exception provoque une restauration des transactions, toutes les modifications apportées aux données de table par votre code seront 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 de téléchargement. et dans la boîte de dialogue Sélectionner le profil dans CRM, précisez l′élément de 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

Notes

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é).