Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

Inspecter des objets aux points de contrôle

Objectifs de formation

Une fois cette unité terminée, vous pourrez :
  • Définir des points de contrôle dans votre code Apex.
  • Analyser les objets présents dans la mémoire à l’aide de l’Inspecteur de points de contrôle.
Remarque

Remarque

Vous souhaitez apprendre en français ? Commencez le défi dans un Trailhead Playground en français et utilisez les traductions fournies entre crochets pour naviguer. Copiez et collez uniquement les valeurs en anglais, car les validations de défi reposent sur les données en anglais. Si vous ne réussissez pas le défi dans votre organisation en français, nous vous recommandons (1) de définir le paramètre régional sur les États-Unis, (2) de définir la langue sur l’anglais en suivant les instructions ici, puis (3) de cliquer à nouveau sur le bouton « Vérifier le défi ».

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

Définir des points de contrôle dans votre code Apex

Dès que votre vaisseau commence à émettre des erreurs système, vous devez vous ruer sur les journaux pour comprendre les défaillances et les localiser.

De même, quand votre code Apex génère des erreurs, présente des problèmes de performances ou ne produit pas les résultats attendus, la première étape consiste à identifier le problème à l’aide du journal de débogage. Rien de plus fastidieux que d’éplucher un journal complet ligne par ligne. C’est là que les points de contrôle entrent en jeu. Les points de contrôle fournissent des instantanés de ce qui se passe dans votre code Apex à des points particuliers de son exécution.

Vous pouvez définir cinq points de contrôle dans votre code Apex. Les points de contrôle ne sont pas disponibles dans le balisage Visualforce.

Définissons un point de contrôle dans la classe EmailMissionSpecialist que nous avons créée plus tôt.
  1. Sélectionnez File (Fichier) | Open (Ouvrir) et ouvrez la classe EmailMissionSpecialist.
  2. Sélectionnez Debug (Débogage) | Change Log Levels (Modifier les niveaux de consignation).
  3. Dans la section General Trace Settings for You (Vos paramètres de suivi généraux), cliquez sur Add/Change (Ajouter/Modifier).
  4. Choisissez FINEST comme niveau de consignation pour ApexCode.
    Remarque : Pour définir des points de contrôle, vous aurez besoin de la permission utilisateur Voir toutes les données. Pour générer des résultats en utilisant des points de contrôle, exécutez du code avec l’exécution anonyme, ou définissez un marqueur de suivi DEVELOPER_LOG sur vous-même. Le marqueur de suivi doit avoir un niveau de consignation pour Apex de INFO ou plus.
  5. Pour enregistrer vos modifications, cliquez sur Done (Terminé).
  6. Pour quitter la boîte de dialogue de modification des niveaux de consignation, cliquez sur Done (Terminé).

Quand votre code s'affiche dans l’éditeur de code source, les numéros de ligne s'affichent sur le côté gauche. Cliquez sur le numéro de la ligne inspectResults(results);. Le point rouge (1) qui apparaît indique qu’un point de contrôle a été créé.

Définir un point de contrôle

Vous pouvez maintenant exécuter votre code et l’analyser à l’aide de l’onglet Checkpoints (Points de contrôle).

Onglet Checkpoints (Points de contrôle)

Sous l’onglet Checkpoints (Points de contrôle), vous pouvez voir à quel moment exactement l’exécution de votre code déraille et quelles sont les valeurs des objets à ce point. Exécutons ce code pour voir le point de contrôle en action.

Sélectionnez Debug (Débogage) | Open Execute Anonymous Window (Ouvrir la fenêtre d’exécution anonyme). Saisissez le code suivant, collez-le et exécutez-le. N’oubliez pas de remplacer Enter your email address par votre adresse e-mail.

EmailMissionSpecialist em = new EmailMissionSpecialist();
em.sendMail('Enter your email address', 'Flight Path Change', 
   'Mission Control 123: Your flight path has been changed to avoid collision '
   + 'with asteroid 2014 QO441.');

Après avoir bien exécuté le code Apex, ouvrez le journal de débogage et cliquez sur l’onglet Checkpoints (Points de contrôle) pour voir les résultats.

Onglet Checkpoints (Points de contrôle)
  • Le tableau Checkpoints (Points de contrôle) affiche l’espace de nommage, la classe et le numéro de ligne de chaque point de contrôle. Il fournit également la date et l’heure de création de chaque point de contrôle.
  • Le tableau Checkpoint Locations affiche le nom de fichier, le numéro de ligne et les itérations captées par le point de contrôle sélectionné.

Double-cliquez sur un point de contrôle du tableau Checkpoints (Points de contrôle) pour afficher les résultats enregistrés dans l’inspecteur de points de contrôle. C’est là que la fête commence.

Inspecteur de points de contrôle

L’inspecteur de points de contrôle comprend deux onglets : Heap (Mémoire) et Symbols (Symboles).
  • Heap (Mémoire) : affiche tous les objets présents dans la mémoire au niveau de la ligne de code où le point de contrôle a été exécuté.
  • Symbols (Symboles) : affiche tous les symboles présents dans la mémoire sous forme d’arborescence.

Onglet Heap (Mémoire)

L’onglet Heap (Mémoire) abrite des panneaux très pratiques pour le débogage, comme le panneau Types. Ce panneau indique le nombre d’objets qui ont été instanciés et la mémoire qu’ils ont consommée en octets. Examinons les informations captées par le point de contrôle que vous avez défini.
  1. Sous Types, cliquez sur Messaging.SingleEmailMessage.
  2. Sous Instances, cliquez sur une instance quelconque de ce type d'objet.
  3. Sous State (État), vous trouverez les champs de l'objet ainsi que leurs valeurs.
L’onglet Heap (Mémoire) dans l’inspecteur de points de contrôle

Onglet Symbols (Symboles)

L’onglet Symbols (Symboles) est un moyen simple et rapide de connaître l'état de divers objets à un point de contrôle donné. Les symboles sont des noms uniques qui font référence à des objets spécifiques. L’onglet affiche tous les symboles présents dans la mémoire sous forme d’arborescence.

L’onglet Symbols (Symboles) dans l’inspecteur de points de contrôle
En tant que commandant, vous ne pouvez pas vous contenter de vérifier que les systèmes fonctionnent correctement : vous devez également pourchasser les erreurs. Voyons comment l’inspecteur de points de contrôle peut vous aider à mieux comprendre votre code.
  1. Pour effacer les résultats d’un point de contrôle de l’onglet, sélectionnez Debug (Débogage) | Clear (Effacer) | Checkpoint Results Panel (Panneau des résultats des points de contrôle).
  2. Sélectionnez Debug (Débogage) | Open Execute Anonymous Window (Ouvrir la fenêtre d’exécution anonyme).
  3. Exécutez à nouveau la classe EmailMissionSpecialist, mais fournissez-lui cette fois une adresse e-mail non valide comme testingemail.
    EmailMissionSpecialist em = new EmailMissionSpecialist();
    em.sendMail('testingemail', 'Flight Path Change', 
       'Mission Control 123: Your flight path has been changed to avoid collision '
       + 'with asteroid 2014 QO441.');
  4. Une fois que vous avez exécuté le code, cliquez sur l’onglet Checkpoints (Points de contrôle).

L’onglet Checkpoints (Points de contrôle) n'affiche aucun résultat parce que l’exécution de votre code n’a pas atteint le numéro de ligne auquel votre point de contrôle est défini.

Résultats de l’onglet Checkpoints (Points de contrôle)
Ajoutons un point de contrôle plus tôt dans le code afin de capturer des informations avant que notre code n’atteigne l’erreur testingemailerror.
  1. Sélectionnez File (Fichier) | Open (Ouvrir) et ouvrez la classe EmailMissionSpecialist.
  2. Cliquez sur le numéro de ligne devant String[] toAddresses = new String[] {address}.
  3. Sélectionnez Debug (Débogage) | Clear (Effacer) | Checkpoint Results Panel (Panneau des résultats des points de contrôle).
  4. Sélectionnez Debug (Débogage) | Open Execute Anonymous Window (Ouvrir la fenêtre d’exécution anonyme).
  5. Exécutez à nouveau la classe EmailMissionSpecialist en fournissant une adresse e-mail non valide comme testingemail.
    EmailMissionSpecialist em = new EmailMissionSpecialist();
    em.sendMail('testingemail', 'Flight Path Change', 
       'Mission Control 123: Your flight path has been changed to avoid collision '
       + 'with asteroid 2014 QO441.');
  6. Cliquez sur l’onglet Checkpoints (Points de contrôle).

Une nouvelle entrée est visible sous l’onglet Checkpoints (Points de contrôle). Vous pouvez désormais analyser les objets présents dans la mémoire à l’aide de l’Inspecteur de points de contrôle.

Résultats de l’onglet Checkpoints (Points de contrôle)
Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires