Sviluppare la ricerca per i casi d'uso più comuni
Obiettivi di apprendimento
Al completamento di questa unità, sarai in grado di:
- Descrivere come eseguire ricerche all'interno di un singolo oggetto.
- Spiegare come eseguire ricerche all'interno di più oggetti.
- Descrivere come eseguire ricerche all'interno di un oggetto personalizzato.
Al lavoro in Cloud Kicks
Mettiamo che tu sia il nuovo sviluppatore all-star della straordinaria azienda Cloud Kicks, un'azienda produttrice di scarpe da ginnastica ultracomode, eleganti ed ecologiche molto popolari sia tra i runner professionali che tra gli sportivi occasionali.
Hai il compito di creare una Knowledge Base online dedicata ai clienti e un sito web interno sui prodotti destinato ai dipendenti Cloud Kicks. Tutti i dati provengono dall'organizzazione Salesforce Cloud Kicks. Si direbbe un incarico che richiede una soluzione di ricerca personalizzata, non è vero? Partendo da questo scenario, analizziamo alcuni casi d'uso comuni per le soluzioni di ricerca personalizzate. Spiegheremo i motivi per cui utilizzare determinati casi d'uso e forniremo alcuni esempi.
Ricerca all'interno di un singolo oggetto
Cloud Kicks è una startup in forte crescita e il reparto marketing sta lavorando sodo per far conoscere l'azienda. L'azienda ha avviato diverse campagne che vengono monitorate tramite Salesforce. I reparti marketing e vendite hanno richiesto un modo per effettuare ricerche solo sulle campagne del sito web interno sui prodotti a cui stanno lavorando. Le ricerche su singolo oggetto sono le più adatte quando gli utenti necessitano di un modo rapido per cercare in un tipo di record e non vogliono perdersi a setacciare tra più record che non li riguardano.
Per effettuare una ricerca all'interno di un singolo oggetto utilizzando SOSL, è sufficiente specificare l'oggetto nella richiesta. Niente di più complicato.
FIND {term} RETURNING ObjectTypeName
Nell'esempio riportato, term
indica ciò che viene inserito dall'utente. ObjectTypeName limita i risultati della ricerca all'sObject specificato. Quindi, se l'utente vuole trovare la campagna email del marzo 2016, la richiesta si presenta come segue:
FIND {march 2016 email} RETURNING Campaign
Nella prossima unità parleremo di tutte le cose interessanti che si possono fare con la clausola RETURNING e di come perfezionare la ricerca per ottenere risultati ottimali.
Ricerca all'interno di più oggetti
Cloud Kicks ama la sua clientela. Desidera creare un negozio unico che consenta agli utenti di porre domande e condividere informazioni sul suo sito web. Sono inclusi diversi tipi di informazione: video, articoli, domande e PDF. Agli utenti però non interessa il tipo di contenuto presentato. A loro interessa solo ottenere le informazioni di cui hanno bisogno… e in fretta. È questa la carta vincente della ricerca su più oggetti: consente di effettuare ricerche su più oggetti contemporaneamente perché all'utente non interessa il tipo di record. O magari l'utente vuole vedere diversi tipi di oggetto tra i risultati.
Fortunatamente, aggiungere un altro oggetto è semplicissimo in SOSL. È sufficiente aggiungere un elenco separato da virgole.
FIND {term} RETURNING ObjectTypeName1, ObjectTypeName2, ObjectTypeNameYouGetTheIdea
Tornando al nostro scenario, un cliente Cloud Kicks si chiede se le scarpe siano realizzate con materiali riciclati. La ricerca nella Knowledge Base online va impostata in modo che i risultati restituiscano più oggetti che corrispondano ai termini usati.
FIND {recycled materials} RETURNING Product2, ContentVersion, FeedItem
Ricorda che gli oggetti che non specifichi nella clausola RETURNING non compariranno nei risultati.
Ricerca all'interno di oggetti personalizzati
Salesforce mette a disposizione dei clienti numerosi oggetti standard. Tuttavia Cloud Kicks si occupa di scarpe personalizzate, quindi è logico che necessiti anche di oggetti personalizzati. Di particolare interesse per te è il nuovo oggetto personalizzato, Merchandise (Merce). Questo oggetto contiene informazioni sullo stile, l'ID, il colore, i materiali, il nome e il prezzo su tutta l'offerta Cloud Kicks. All'interno di Cloud Kicks sono molti coloro che hanno bisogno di accedere a queste informazioni, ad esempio l'assistenza, le vendite e le spedizioni.
Per il sito web interno sui prodotti, che stai costruendo, aggiungi una casella di ricerca che effettui ricerche solo sull'oggetto personalizzato Merchandise (Merce). Non esiste un metodo speciale per specificare gli oggetti personalizzati in una ricerca SOSL. Inserisci il nome dell'sObject come se fosse un qualsiasi altro oggetto standard e aggiungi il suffisso __c.
FIND {pink hi\-top} RETURNING Merchandise__c
SOQL
Abbiamo parlato di SOSL, ma cosa dire di SOQL? Ebbene, si usa SOQL per le ricerche di singoli oggetti, quando si conoscono i campi da ricercare, quando il termine di ricerca è una corrispondenza esatta per il campo (non ci sono corrispondenze parziali o fuori ordine), quando servono i dati di campi numerici, date o caselle di controllo e quando si cerca un numero limitato di risultati. Per un elenco completo dei casi in cui è opportuno utilizzare SOQL, consulta l'unità precedente.
Esaminando precedenti casi d'uso comuni di questo modulo, forse hai notato alcuni contrassegni per l'utilizzo di SOQL. Ad esempio:
- Ricerca su un singolo oggetto – SOQL funziona quando si conosce il campo in cui risiedono i dati. Poiché non abbiamo specificato il campo per l'email del marzo 2016, una ricerca SOSL è preferibile a una SOQL. In generale, se la query non specifica un campo da ricercare, viene utilizzata la ricerca SOSL.
- Ricerca su più oggetti – Poiché è possibile solo il recupero di dati da più oggetti correlati tra loro, la ricerca su più oggetti in SOQL è limitata. Nel nostro scenario, gli oggetti non erano correlati, pertanto è stata usata la ricerca SOSL.
- Ricerca su oggetti personalizzati – Come nel caso della ricerca su un singolo oggetto, è possibile effettuare ricerche su più oggetti personalizzati in SOQL. Tuttavia, non abbiamo specificato in quale campo risiedono i dati relativi al nostro termine di ricerca, pink hi-top. Inoltre, SOQL effettua ricerche sul database, non sull'indice. Quindi, supponiamo che il record includa effettivamente pink sneaker hi-top. SOQL non sarebbe in grado di restituire i risultati corretti.