Eseguire le query SOQL e SOSL
Obiettivi di apprendimento
- 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.
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
- Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
- 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. - Immetti la query seguente nella scheda dell'editor di query.
SELECT Name, Phone, Email, Title FROM Contact WHERE (Department = 'Specialty Crisis Management')
- Fai clic su Execute (Esegui).
I risultati mostrano i dettagli dei referenti che lavorano nel dipartimento speciale di gestione delle crisi.
È 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.
- Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
- 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);
- Dopo aver eseguito il codice, apri il registro.
- 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.
Che cos'è una ricerca SOSL?
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.
Eseguire una ricerca SOSL
- 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)
- Esegui la query, quindi osserva i risultati nel riquadro Search Results (Risultati di ricerca).
- Seleziona Debug | Open Execute Anonymous Window (Apri finestra di esecuzione anonima).
- 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); }
- 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.