Skip to main content
ƚnase a nosotros en TDX, San Francisco o en Salesforce+ del 5 al 6 de marzo en la conferencia de desarrolladores para la era del agente de la IA. Regƭstrese ahora.

Inspeccionar objetos en puntos de comprobaciĆ³n

Objetivos de aprendizaje

DespuƩs de completar esta unidad, podrƔ:
  • Configurar puntos de comprobaciĆ³n en el cĆ³digo Apex.
  • Analizar los objetos de la memoria con Checkpoint Inspector.
Nota

Nota

ĀæEs su idioma de aprendizaje espaƱol (LATAM)? Comience el reto en un Trailhead Playground en espaƱol (LATAM) y copie y pegue los valores en espaƱol (LATAM). Si no aprueba el reto en su organizaciĆ³n en espaƱol (LATAM), recomendamos que (1) cambie la configuraciĆ³n local a Estados Unidos, (2) cambie el idioma a inglĆ©s (segĆŗn estas instrucciones) y, luego, (3) haga clic en el botĆ³n ā€œCheck Challengeā€ (Comprobar el reto) nuevamente.

Consulte la insignia Trailhead en su idioma para obtener mĆ”s informaciĆ³n sobre cĆ³mo aprovechar la experiencia de Trailhead en otros idiomas.

Establecer puntos de comprobaciĆ³n en el cĆ³digo Apex

En el momento en el que su astronave empiece a emitir sonidos de error del sistema, debe ir directamente a los registros para identificar el problema y la ubicaciĆ³n en la que se ha producido.

De forma similar, cuando el cĆ³digo Apex genera errores, observa problemas de desempeƱo o no obtiene los resultados deseados, el primer paso es identificar el problema mediante el registro de depuraciĆ³n. Revisar todo el registro lĆ­nea por lĆ­nea es una tarea tediosa. Ā”Por eso los puntos de comprobaciĆ³n son tan Ćŗtiles! Los puntos de comprobaciĆ³n muestran instantĆ”neas de lo que ocurre en el cĆ³digo Apex en determinados puntos durante la ejecuciĆ³n.

Puede configurar hasta cinco puntos de comprobaciĆ³n en su cĆ³digo Apex. Los puntos de comprobaciĆ³n no estĆ”n disponibles para el marcado de Visualforce.

Vamos a establecer un punto de comprobaciĆ³n en la clase EmailMissionSpecialist que creamos anteriormente.
  1. Seleccione File (Archivo) | Open (Abrir) y abra la clase EmailMissionSpecialist.
  2. Seleccione Debug (Depurar) | Change Log Levels (Cambiar niveles de registro).
  3. En la selecciĆ³n General Trace Settings for You (ConfiguraciĆ³n de seguimiento general para usted), haga clic en Add/Change (Agregar/Cambiar).
  4. Establezca el nivel de registro de ApexCode en FINEST (MĆ”xima precisiĆ³n).
    Nota: Para establecer puntos de comprobaciĆ³n, necesita el permiso de usuario Ver todos los datos. Para generar resultados empleando puntos de comprobaciĆ³n, ejecute el cĆ³digo empleando la ejecuciĆ³n anĆ³nima o establezca un indicador de rastreo DEVELOPER_LOG sobre sĆ­ mismo. El indicador de rastreo debe tener un nivel de registro para Apex de INFO o superior.
  5. Para guardar los cambios, haga clic en Done (Listo).
  6. Para salir del cuadro de diƔlogo Change Log Levels (Cambiar niveles de registro), haga clic en Done (Listo).

Cuando su cĆ³digo se muestra en el editor de cĆ³digo fuente, puede ver los nĆŗmeros de las lĆ­neas en la parte izquierda. Haga clic en el nĆŗmero de lĆ­nea para inspectResults(results);. Se muestra un punto rojo (1), lo que indica que se ha creado un punto de comprobaciĆ³n.

Establecer un punto de comprobaciĆ³n

Ahora, puede ejecutar su cĆ³digo y analizarlo en la ficha Checkpoints (Puntos de comprobaciĆ³n).

Ficha Checkpoints (Puntos de comprobaciĆ³n)

Puede ver exactamente dĆ³nde se produce un error de ejecuciĆ³n de su cĆ³digo y cuĆ”les son los valores de los objetos en ese punto mediante la ficha Checkpoints (Puntos de comprobaciĆ³n). Vamos a ejecutar el siguiente cĆ³digo para ver el punto de comprobaciĆ³n en acciĆ³n.

Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecuciĆ³n anĆ³nima). Ingrese el siguiente cĆ³digo y ejecĆŗtelo. AsegĆŗrese de sustituir Enter your email address por su direcciĆ³n de email.

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

DespuĆ©s de ejecutar el cĆ³digo Apex correctamente, abra el registro de depuraciĆ³n y haga clic en la ficha Checkpoints (Puntos de comprobaciĆ³n) para ver los resultados.

Ficha Checkpoints (Puntos de comprobaciĆ³n)
  • En la tabla Checkpoints (Puntos de comprobaciĆ³n) se muestran el espacio de nombres, la clase y el nĆŗmero de lĆ­nea de cada punto de comprobaciĆ³n. AdemĆ”s, se muestran la fecha y la hora de creaciĆ³n de cada punto de comprobaciĆ³n.
  • En la tabla Checkpoint Locations (Ubicaciones de puntos de comprobaciĆ³n) se muestran el nombre de archivo, el nĆŗmero de lĆ­nea y las iteraciones capturadas por el punto de comprobaciĆ³n seleccionado.

Haga doble clic en un punto de comprobaciĆ³n en la tabla Checkpoints (Puntos de comprobaciĆ³n) para ver los resultados capturados en Checkpoint Inspector. Ā”Ahora empieza la diversiĆ³n!

Checkpoint Inspector

Checkpoint Inspector incluye dos fichas: Heap (Pila) y Symbols (SĆ­mbolos).
  • Heap (Pila). Se muestran todos los objetos incluidos en la memoria en la lĆ­nea de cĆ³digo en la que se ejecuta el punto de comprobaciĆ³n.
  • Symbols (SĆ­mbolos). Se muestran todos los sĆ­mbolos en la memoria en una vista de Ć”rbol.

Ficha Heap (Pila)

La ficha Heap (Pila) incluye una serie de paneles muy Ćŗtiles para la depuraciĆ³n, como el panel Types (Tipos). En este panel se muestra para cuĆ”ntos objetos se han creado instancias y la memoria que consumen en bytes. Veamos los detalles capturados por el punto de comprobaciĆ³n que ha establecido.
  1. Debajo de Types (Tipos), haga clic en Messaging.SingleEmailMessage.
  2. Debajo de Instances (Instancias), haga clic en cualquier instancia de este tipo de objeto.
  3. Debajo de State (Estado), puede ver los campos del objeto y sus valores.
Ficha Heap (Pila) en Checkpoint Inspector

Ficha Symbols (SĆ­mbolos)

La ficha Symbols (SĆ­mbolos) permite revisar de forma rĆ”pida y fĆ”cil los estados de varios objetos en cualquier punto de comprobaciĆ³n. Los sĆ­mbolos son nombres Ćŗnicos que hacen referencia a objetos especĆ­ficos. En esta ficha se muestran todos los sĆ­mbolos en la memoria en una vista de Ć”rbol.

Ficha Symbols (SĆ­mbolos) en Checkpoint Inspector
Como comandante, no solo necesita confirmar que los sistemas funcionan correctamente. AdemĆ”s, es necesario hacer un seguimiento de los errores. Veamos cĆ³mo Checkpoint Inspector le ayuda a comprender mejor el cĆ³digo.
  1. Para borrar los resultados del punto de comprobaciĆ³n de la ficha, seleccione Debug (Depurar) | Clear (Borrar) | Checkpoint Results Panel (Panel de resultados de punto de comprobaciĆ³n).
  2. Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecuciĆ³n anĆ³nima).
  3. Vuelva a ejecutar la clase EmailMissionSpecialist, pero esta vez con una direcciĆ³n de email no vĆ”lida, como 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. DespuĆ©s de ejecutar el cĆ³digo, haga clic en la ficha Checkpoints (Puntos de comprobaciĆ³n).

La ficha Checkpoints (Puntos de comprobaciĆ³n) no muestra ningĆŗn resultado porque la ejecuciĆ³n del cĆ³digo no ha llegado al nĆŗmero de lĆ­nea en la que ha establecido el punto de comprobaciĆ³n.

Resultados de la ficha Checkpoints (Puntos de comprobaciĆ³n)
Vamos a agregar un punto de comprobaciĆ³n en una parte anterior del cĆ³digo para poder capturar la informaciĆ³n del nuevo punto de comprobaciĆ³n antes de que el cĆ³digo detecte el error testingemail.
  1. Seleccione File (Archivo) | Open (Abrir) y abra la clase EmailMissionSpecialist.
  2. Haga clic en el nĆŗmero de lĆ­nea en la parte izquierda para String[] toAddresses = new String[] {address}.
  3. Seleccione Debug (Depurar) | Clear (Borrar ) | Checkpoint Results Panel (Panel de resultados de punto de comprobaciĆ³n).
  4. Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecuciĆ³n anĆ³nima).
  5. Vuelva a ejecutar la clase EmailMissionSpecialist con una direcciĆ³n de email no vĆ”lida, como 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. Haga clic en la ficha Checkpoints (Puntos de comprobaciĆ³n).

VerĆ” una entrada nueva en la ficha Checkpoints (Puntos de comprobaciĆ³n). A continuaciĆ³n, puede analizar los objetos de la memoria con Checkpoint Inspector.

Resultados de la ficha Checkpoints (Puntos de comprobaciĆ³n)

Reto prƔctico

+500 puntos

Prepararse

CompletarĆ” esta/este unidad en su propia organizaciĆ³n de prĆ”cticas. Haga clic en Iniciar para empezar a trabajar, o haga clic en el nombre de su organizaciĆ³n para seleccionar una diferente.

Su reto

Establecer puntos de comprobaciĆ³n para buscar errores en el cĆ³digo

Establezca un punto de comprobaciĆ³n en la clase EmailMissionSpecialist. Luego, ejecute la clase y analice los objetos registrados en el punto de comprobaciĆ³n.

Trabajo previo
AsegĆŗrese de que la lĆ­nea 12 de su clase EmailMissionSpecialist Apex contenga este cĆ³digo:
Messaging.SendEmailResult[] results = Messaging.sendEmail(

Si no es asĆ­, reemplace el contenido de EmailMissionSpecialist.apxc con el cĆ³digo de clase EmailMissionSpecialist proporcionado en Unidad 2: Navegar y modificar el cĆ³digo fuente.

  • En la clase EmailMissionSpecialist, establezca un punto de comprobaciĆ³n en la lĆ­nea 12.
  • Con su propia direcciĆ³n de email, ejecute la clase EmailMissionSpecialist en la ventana Execute Anonymous window
  • Observe los resultados del punto de comprobaciĆ³n y los valores de los objetos en la memoria (no lo comprobaremos de nuestra parte).
Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantarƭa saber mƔs sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

MĆ”s informaciĆ³n Continuar a Compartir comentarios