Skip to main content

Prüfen von Objekten an Prüfpunkten

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Einrichten von Prüfpunkten in Ihrem Apex-Code
  • Analysieren der Objekte im Speicher mithilfe des Checkpoint Inspector
Hinweis

Hinweis

Lernen Sie auf Deutsch? Beginnen Sie die Aufgabe in einem Trailhead Playground in der Sprache Deutsch und verwenden Sie für die Navigation die in Klammern angegebenen Übersetzungen. Kopieren und fügen Sie nur die Angaben in Englisch ein, da zur Überprüfung der Aufgabe Daten in Englisch benötigt werden. Wenn Sie die Aufgabe in Ihrer deutschen Organisation nicht bestehen, empfehlen wir Ihnen folgende Vorgehensweise: (1) Stellen Sie das Gebietsschema auf USA um, (2) legen Sie Englisch als Sprache fest (Anweisungen dazu finden Sie hier) und (3) klicken Sie erneut auf die Schaltfläche "Check Challenge" (Aufgabe überprüfen).

Weitere Details dazu, wie Sie die übersetzte Trailhead-Umgebung optimal nutzen können, finden Sie unter dem Badge "Trailhead in Ihrer Sprache".

Festlegen von Prüfpunkten in Ihrem Apex-Code

In der Sekunde, in der Ihr Raumschiff Systemfehler meldet, müssen Sie sofort in den Protokollen nachsehen, um festzustellen, welcher Fehler wo auftrat.

Gleichermaßen gilt, wenn Ihr Apex-Code Fehler verursacht, Performance-Probleme hat oder nicht die gewünschten Ergebnisse liefert, dann ist Ihr erster Schritt ebenfalls, das Problem anhand des Debug-Protokolls zu identifizieren. Es ist allerdings sehr mühselig, das gesamte Protokoll Zeile für Zeile durchzukämmen. Hier sind Prüfpunkte sehr praktisch. Prüfpunkte zeigen Ihnen Snapshots dessen, was an bestimmten Punkten während der Ausführung in Ihrem Apex-Code ablief.

Sie können bis zu fünf Prüfpunkte in Ihrem Apex-Code festlegen. Für Visualforce-Markup stehen Prüfpunkte nicht zur Verfügung.

Legen wir nun einen Prüfpunkt in der Klasse EmailMissionSpecialist fest, die wir vorher erstellt haben.
  1. Wählen Sie File (Datei) | Open (Öffnen) aus und öffnen Sie die Klasse EmailMissionSpecialist.
  2. Wählen Sie Debug (Debuggen) | Change Log Levels (Protokollebenen ändern) aus.
  3. Klicken Sie im Abschnitt "General Trace Settings for You (Allgemeine Einstellungen für die Ablaufverfolgung für Sie)" auf Add/Change (Hinzufügen/Ändern).
  4. Legen Sie die Protokollierungsebene ApexCode auf FINEST (FEINSTE) fest.
    Hinweis: Zum Festlegen von Prüfpunkten benötigen Sie die Berechtigung "View All Data (Alle Daten anzeigen)". Um Ergebnisse mithilfe von Prüfpunkten zu generieren, führen Sie Code mit "execute anonymous (Anonym ausführen)" aus oder legen Sie eine Verfolgungskennzeichnung des Typs DEVELOPER_LOG auf sich selbst fest. Für Apex muss die Verfolgungskennzeichnung die Protokollierungsebene INFO oder höher haben.
  5. Klicken Sie auf Done (Fertig), um Ihre Änderungen zu speichern.
  6. Klicken Sie erneut auf Done (Fertig), um das Dialogfeld "Change Log Levels (Protokollierungsebenen ändern)" zu verlassen.

Wenn Ihr Code im Quellcode-Editor angezeigt wird, können Sie auf der linken Seite Zeilenzahlen sehen. Klicken Sie auf die Zeilenzahl für inspectResults(results);. Daraufhin wird ein roter Punkt (1) angezeigt, der bedeutet, dass ein Prüfpunkt erstellt wurde.

Festlegen eines Prüfpunkts

Sie können Ihren Code jetzt ausführen und ihn mithilfe der Registerkarte "Checkpoints (Prüfpunkte)" analysieren.

Registerkarte "Checkpoints (Prüfpunkte)"

In der Registerkarte "Checkpoints (Prüfpunkte)" können Sie sich genau ansehen, wo die Ausführung des Codes schief ging und, welche Werte die Objekte an diesem Punkt hatten. Wir führen jetzt diesen Code aus, um den Prüfpunkt in Aktion zu erleben.

Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus. Geben Sie den folgenden Code ein und führen Sie ihn aus. Ersetzen Sie unbedingt "Enter your email address (Geben Sie Ihre E-Mail-Adresse)" durch Ihre E-Mail-Adresse.

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.');

Nach der erfolgreichen Ausführung des Apex-Codes öffnen Sie Ihr Debug-Protokoll und klicken auf die Registerkarte Checkpoints (Prüfpunkte), um sich die Ergebnisse anzusehen.

Registerkarte 'Checkpoints (Prüfpunkte)'
  • Die Tabelle "Checkpoints" enthält Namespace, Klasse und Zeilenzahl für jeden Prüfpunkt. Außerdem werden Datum und Uhrzeit der Erstellung der einzelnen Prüfpunkte angegeben.
  • In der Tabelle "Checkpoint Locations" werden der Dateiname, die Zeilenzahl und die vom ausgewählten Prüfpunkt erfassten Iterationen angezeigt.

Doppelklicken Sie in der Tabelle "Checkpoints" auf einen Prüfpunkt, um die erfassten Ergebnisse im Checkpoint Inspector anzuzeigen. So, und jetzt geht der Spaß so richtig los!

Checkpoint Inspector

Der Checkpoint Inspector enthält zwei Registerkarten: "Heap" und "Symbols (Symbole)".
  • Heap: Zeigt alle Objekte an, die bei der Codezeile im Speicher enthalten waren, in der Ihr Prüfpunkt ausgeführt wurde.
  • Symbols: Zeigt alle Symbole im Speicher als Baumstruktur an.

Registerkarte "Heap"

Die Registerkarte "Heap" enthält einige für das Debugging sehr nützliche Bereiche wie beispielsweise "Types (Typen)". Dieser Bereich zeigt, wie viele Objekte instanziiert waren, und gibt die belegte Speicherkapazität in Byte an. Sehen wir uns die Details an, die an dem von Ihnen gesetzten Prüfpunkt erfasst wurden.
  1. Klicken Sie unter "Types (Typen)" auf Messaging.SingleEmailMessage.
  2. Klicken Sie unter "Instances (Instanzen)" auf eine Instanz dieses Objektstyps.
  3. Sehen Sie sich unter "State (Status)" die Felder des Objekts und ihre Werte an.
Die Registerkarte 'Heap' im Checkpoint Inspector

Registerkarte "Symbols (Symbole)"

Die Registerkarte "Symbols (Symbole)" stellt eine schnelle und einfache Möglichkeit dar, die Zustände verschiedener Objekte an einem Prüfpunkt zu kontrollieren. Symbole sind eindeutige Bezeichnungen, die auf bestimmte Objekte verweisen. Die Registerkarte zeigt alle Symbole im Speicher als Baumstruktur an.

Die Registerkarte 'Symbols' im Checkpoint Inspector
Als Raumschiffkapitän müssen Sie nicht nur kontrollieren, ob alle Systeme ordnungsgemäß funktionieren, sondern auch Fehler aufspüren. Sehen wir uns an, wie Ihnen der Checkpoint Inspector helfen kann, den Code besser zu verstehen.
  1. Um die Prüfpunktergebnisse aus der Registerkarte zu entfernen, wählen Sie Debug (Debuggen) | Clear (Löschen) Checkpoint Results Panel (Bereich 'Prüfpunktergebnisse') aus.
  2. Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus.
  3. Führen Sie die Klasse EmailMissionSpecialist erneut aus und geben Sie dabei dieses Mal eine ungültige E-Mail-Adresse wie z. B. Test-E-Mail ein.
    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. Klicken Sie nach der Ausführung des Codes auf die Registerkarte Checkpoints (Prüfpunkte).

Die Registerkarte "Checkpoints (Prüfpunkte)" zeigt keine Ergebnisse, da die Ausführung des Codes die Zeile, in die Sie den Prüfpunkt gesetzt hatten, gar nicht erreichte.

Ergebnisse in der Registerkarte 'Checkpoints (Prüfpunkte)'
Fügen wir nun einen Prüfpunkt an einer früheren Stelle im Code ein, damit wir Informationen an diesem neuen Prüfpunkt erfassen, bevor unser Code den Fehler "testingemailerror" erreicht.
  1. Wählen Sie File (Datei) | Open (Öffnen) aus und öffnen Sie die Klasse EmailMissionSpecialist.
  2. Klicken Sie auf die Zeilenzahl link von String[] toAddresses = new String[] {address}.
  3. Wählen Sie Debug (Debuggen) | Clear (Löschen) Checkpoint Results Panel (Bereich 'Prüfpunktergebnisse') aus.
  4. Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus.
  5. Führen Sie die Klasse EmailMissionSpecialist erneut mit einer ungültigen E-Mail-Adresse wie "testingemail" aus.
    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. Klicken Sie auf die Registerkarte Checkpoints (Prüfpunkte).

Die Registerkarte "Checkpoints (Prüfpunkte)" enthält einen neuen Eintrag. Jetzt können Sie die Objekte im Speicher mithilfe des Checkpoint Inspector analysieren.

Ergebnisse in der Registerkarte 'Checkpoints (Prüfpunkte)'
Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"