Skip to main content

Eseguire le query SOQL e SOSL

Obiettivi di apprendimento

Al completamento di questa unità, sarai in grado di:
  • Eseguire una query SOQL usando l'editor di query o il codice Apex.
  • Eseguire una ricerca SOSL usando l'editor di query o il codice Apex.
Nota

Nota

Stai seguendo la formazione in italiano? In questo badge, la convalida delle sfide pratiche di Trailhead funziona in inglese. Le traduzioni sono fornite tra parentesi come riferimento. Nel tuo Trailhead Playground, accertati di (1) selezionare Stati Uniti per le impostazioni internazionali, (2) impostare la lingua su Inglese e (3) copiare e incollare soltanto i valori in lingua inglese. Segui le istruzioni qui.

Visita il badge Trailhead nella tua lingua per informazioni dettagliate su come usufruire dell'esperienza Trailhead in altre lingue.

Che cos'è una query SOQL?

SOQL sta per Salesforce Object Query Language. Può essere utilizzato per leggere le informazioni memorizzate nel database di un'organizzazione. Dal punto di vista sintattico, SOQL è simile a SQL (Structured Query Language).

Le query SOQL possono essere scritte ed eseguite nel codice Apex o nell'editor di query della Developer Console.

Eseguire una query SOQL

Prima di iniziare a scrivere e ad eseguire query, cerchiamo alcuni dati necessari nell'organizzazione Salesforce. Aggiungiamo i dati di contatto di tre tecnici di controllo inviati dall'unità di controllo della missione per tenere l'astronave alla larga dall'asteroide 2014 QO441.
  1. Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Copia, incolla ed esegui il seguente codice. Questo codice aggiunge i dettagli di contatto dei tre tecnici di controllo all'oggetto Contatto nel database.
    // Add first contact and related details
    Contact contact1 = new Contact(
       Firstname='Quentin',
       Lastname='Foam',
       Phone='(415)555-1212',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Solar Arrays',
       Email='qfoam@trailhead.com');
    insert contact1;
    // Add second contact and related details
    Contact contact2 = new Contact(
       Firstname='Vega',
       Lastname='North',
       Phone='(416)556-1312',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Propulsion',
       Email='vnorth@trailhead.com');
    insert contact2;
    // Add third contact and related details
    Contact contact3 = new Contact(
       Firstname='Palma',
       Lastname='Sunrise',
       Phone='(554)623-1212',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Radiators',
       Email='psunrise@trailhead.com');
    insert contact3;
    Ora possiamo usare l'editor di query per scrivere ed eseguire una query SOQL, in modo da trovare questi tecnici di controllo. Le query SOQL cercano i dati in oggetti specifici. È possibile aggiungere una condizione opzionale nella clausola WHERE (dove) per restringere la ricerca.
  3. Immetti la query seguente nella scheda dell'editor di query.
    SELECT Name, Phone, Email, Title FROM Contact
                                     WHERE (Department = 'Specialty Crisis Management')
  4. Fai clic su Execute (Esegui).

I risultati mostrano i dettagli dei referenti che lavorano nel dipartimento speciale di gestione delle crisi.

Risultati delle query SOQL

È possibile utilizzare un'altra query SOQL per trovare i referenti in altri dipartimenti o per vedere se qualcun altro ha creato record per più tecnici di controllo. Per rieseguire una query, fai clic su Refresh Grid (Aggiorna griglia) nel riquadro dei risultati delle query.

Le query SOQL eseguite usando il codice Apex vengono chiamate query SOQL inline. Scopriamo come utilizzare la Developer Console per cercare i referenti che lavorano nel dipartimento speciale di gestione delle crisi usando una query SOQL inline.

Questa volta, proviamo anche a ordinare i risultati in ordine alfabetico.
  1. Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Inserisci il codice seguente.
    Contact[] theseContacts = [SELECT Name, Phone, Email, Description FROM Contact
                               WHERE (Department='Specialty Crisis Management')
                               ORDER BY Name];
    // Log a count of how many contacts were found
    System.debug(theseContacts.size() + ' contact(s) returned.');
    // Log all values in the array of contacts
    System.debug(theseContacts);
  3. Dopo aver eseguito il codice, apri il registro.
  4. Per visualizzare solo i messaggi USER_DEBUG, seleziona Debug Only (Solo debug). I risultati mostrano il numero di account restituiti e i dati di contatto in ordine alfabetico.

Per analizzare più approfonditamente le query SOQL, controlla il modulo Principi fondamentali e database di Apex.

SOSL (Salesforce Object Search Language) è un linguaggio che esegue ricerche di testo nei record. A differenza di SOQL, SOSL può interrogare più tipi di oggetti contemporaneamente. SOSL può anche utilizzare una corrispondenza di parole per abbinare i campi, mentre SOQL richiede una frase precisa.

Una ricerca SOSL per i record dei referenti eseguita usando la parola "Crisi" esamina tutti i campi dei referenti e restituisce qualsiasi record contenente quella parola. Ma se si tenta lo stessa operazione in una query SOQL, è necessario specificare i campi e una parola o una frase completa da cercare. È anche possibile usare LIKE o caratteri jolly per restringere le ricerche SOQL o SOSL.

  1. Nella scheda dell'editor di query, inserisci la seguente query SOSL. Tieni presente che la query include solo il nome parziale del dipartimento speciale di gestione delle crisi.
    FIND {Crisis} IN ALL FIELDS RETURNING Contact(FirstName, LastName, Phone, Email, Title)
  2. Esegui la query, quindi osserva i risultati nel riquadro Search Results (Risultati di ricerca). Risultati di ricerca SOSL
Come nel caso delle query SOQL, è possibile eseguire ricerche SOSL all'interno del codice Apex.
  1. Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
  2. Esegui il codice seguente.
    List<List<sObject>> searchList = [FIND 'Crisis' IN ALL FIELDS 
                                      RETURNING Contact(FirstName, LastName,
                                      Phone, Email, Description)];
    Contact[] searchContacts = (Contact[])searchList[0];
    System.debug('Found the following contacts:');
    for (Contact c : searchContacts) {
       System.debug(c.LastName + ', ' + c.FirstName);
    }
  3. Apri il registro e seleziona l'opzione Debug Only (Solo debug).

Il registro di esecuzione elenca i nomi dei tecnici di controllo.

Per scoprire di più sul funzionamento delle ricerche SOSL, controlla il modulo Principi fondamentali e database di Apex.

Mentre ti cimentavi con SOQL e SOSL, i tecnici di controllo di cui stavi cercando i record hanno deviato l'astronave fuori dalla traiettoria dell'asteroide. Guidare un'astronave non sembra poi così difficile: basta avere una buona console e imparare a delegare.

Ora che hai evitato una collisione con l'asteroide 2014 QO441, decidi di atterrare alla stazione spaziale Nettuno per una meritata pausa. Conoscendo le varie funzioni e caratteristiche della Developer Console, puoi portare a termine con successo molte missioni della tua organizzazione.

Continua a imparare gratuitamente!
Registra un account per continuare.
Cosa troverai?
  • Ottieni consigli personalizzati per i tuoi obiettivi di carriera
  • Metti in pratica le tue competenze con sfide pratiche e quiz
  • Monitora e condividi i tuoi progressi con i datori di lavoro
  • Accedi a risorse di tutoraggio e opportunità di carriera