Debug logs in salesforce

Come fare un debug in Salesforce?

Nella vita di un Developer (e non solo!) dover fare un debugging è uno degli aspetti che più spesso ricorrono.

Per debuggare in Salesforce esistono due modi:

  1. Eseguire delle operazioni o eseguire script con la Developer Console aperta.
  2. Creare quello che in gergo viene chiamato “Trace Flag”: eseguire le operazioni necessarie nella organizzazione e poi aprire o scaricare i file di debug e analizzarli.

Vediamoli entrambi in dettaglio.

Debuggare con la Developer Console

  1. Dalla pagina principale della tua organizzazione apri la Developer Console cliccando sulla rotellina in alto a destra

2. Puoi effettuare le operazioni necessarie all’interno della organizzazione per generare i debugs, per poi trovarli nella sezione “Logs” in basso a sinistra nella Developer Console.

Debuggare attraverso i Debug Logs

Per poter utilizzare i debug logs, dobbiamo prima creare la “Trace Flag” e poi effettuare le diverse operazioni.Per creare una “Trace Flag” procedi così:

1. Dalla pagina principale della tua organizzazione, clicca sulla rotellina e poi su “Setup”

2. Nella barra di ricerca laterale cerca “Debug Logs”

3. Clicca sul link “Debug Logs” e poi su “New”

4. Quando crei un nuovo debug, ti viene chiesto di specificare:

  • L’utente da mettere sotto debug (si può scegliere anche la classe Apex)
  • Data di inizio e data di fine del debug (tenendo presente che un debug log può avere una durata massimo di 24 ore)
  • Il debug level, ovvero quali informazioni volete tracciare (le infor di debugs, tutte ecc.).

Quando hai inserito tutte le informazioni necessarie, clicca su “Save”.

Una volta salvato, dopo avere effettuato le operazioni necessarie, il debug log apparirà nella pagina principale dei logs.

A questo punto dovrai aprire quello che ti interessa e cercare le informazioni necessarie.

Alcuni suggerimenti per debuggare in modo efficace in Salesforce

Il miglior modo che ci sentiamo di suggerirti per analizzare in modo rapido ed efficace i debug di Salesforce è il seguente:

  • Non utilizzare i debug della Developer Console perchè a volte sono molto lenti; crea invece i debug logs, avendo cura di limitare al massimo le informazioni necessarie da analizzare.
  • Una volta generati tutti i log, non li analizzare dalla dashboard della tua Organizzazione, ma fai il download di tutti i file e mettili in una cartella.
  • Apri la cartella in Visual Studio. Questo ti consentirà di cercare le parole chiave all’interno di tutti i file, senza doverli aprire uno alla volta come dovresti fare volendo analizzare i debug nella Org.
  • Se stai cercando degli errori, la prima parola che dovresti cercare è “exception”, sperando che l’errore abbia generato un’eccezione.
  • Se non ottieni eccezioni evidenti, inserisci delle stampe all’interno del codice e cerca di ricostruire passo passo tutto il flusso che il codice segue.

Se vuoi verificare il comportamento di strumenti point and click, cerca nomi di variabili che hai dichiarato, il nome del processo o altro.
Purtroppo per gli strumenti point & click non è possibile inserire delle stampe, quindi con il tempo imparerai a leggere meglio i debug logs generati automaticamente da Salesforce all’interno di questi file.

Eliminare debug logs in salesforce

I debug logs di Salesfoce generano molti files. Ogni tanto è necessario eliminare i file obsoleti per evitare di incorrere nei limiti di spazio dedicato a questi file.

Come farlo? Esistono diversi modi per eliminare i debug logs in Salesforce:

  1. Dalla “Developer Console”, effettuando una query sugli ApexLog e poi eliminandoli.

Purtroppo non si può utilizzare un normale script di query e delete nella Developer Console,anche se c’è chi ha utilizzato le API di Salesforce creando uno script (di cui trovate il dettaglio qui).

  1. Se il tuo progetto è un progetto SFDX, potrai utilizzare la Salesfroce CLI per eliminarli, come spiegato in questo articolo.

Il primo metodo risulta poco efficace, perché spesso la Developer Console è lenta, specialmente se gran parte dello staff tecnico utilizza la stessa utenza.

Il secondo metodo, quello SFDX, è sicuramente molto comodo, ma attualmente sono molto pochi i progetti creati con SFDX.

Il metodo più veloce, e adatto ad entrambi i casi, è il seguente:

1. Effettuare la query sugli ApexLog ed esportare il risultato in CSV.

2. Quando la query ha terminato, scaricare il file cliccando sulla freccia blu come indicato nell’immagine.

3. Una volta ottenuto il file CSV, sempre da Workbench, cliccare su “Data” e poi “Delete”.

4. Nella schermata successiva cliccare su “From File” e caricare il CSV precedentemente scaricato

  • Cliccare su “Next” e aspettare che l’eliminazione dei files finisca.

Best practices sull’utilizzo dei logs in Salesforce

I debug logs di Salesforce forniscono in dettaglio quello che succede all’interno della organizzazione. Il loro principale limite però è che bisogna attivarli (o lavorare con la Developer Console aperta) altrimenti non si avrà nessuna traccia di quello che è accaduto.

Purtroppo a volte non sempre è possibile replicare l’errore per generare i debug logs.

Come fare?

Il modo migliore per avere dei log è quello di creare degli oggetti custom e inserire un record per ogni evento di interesse, creare un record all’interno di questa tabella.

Ogni organizzazione e progetto sviluppato in Salesforce ha bisogno di tracciare diverse informazioni in diversi flussi, ma esistono alcuni tipi di logs che sono utili praticamente a tutti i progetti:

  • Integration Logs. Ogni volta che si effettuano delle chiamate a sistemi esterni (o sistemi esterni chiamano le API di Salesforce), è opportuno creare un “Integration log” che contenga almeno le seguenti informazioni: 
    • Corpo della richiesta
    • Corpo della risposta
    • Sistema che si è chiamato
    • Nome della classe e del metodo ecc.
  • Error Logs. Ovvero tracciare ogni volta che errori più o meno inaspettati avvengono all’interno della nostra organizzazione. Per esempio, si potrebbe inserire un record in questo oggetto ogni volta che utilizziamo il blocco Try/Catch e il flusso entra nel ramo Catch.
    Ovviamente non tutti gli errori possono essere previsti, ma questo è un buon modo per trovare facilmente e velocemente i punti poco stabili del nostro sistema.

.

Siamo arrivati alla fine di questa guida su come fare debugging su Salesforce, speriamo ti sia stata utile!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *