SOSL and Related Records in Apex

All You Need to Know About SOSL and Related Records in Apex

In this blog, we will discuss what are related records in Salesforce and what we understood by SOSL in apex

What are Related Records in Apex?

Inserting Related Records

Example :

Account acc = new Account(Name=’abc’, Phone = ‘123456’); 
insert acc; 
Contact con = new Contact(Account=acc.Id, FirstName = ‘abc’ , LastName = ‘xyz’, Phone = ‘12345’); 
Insert con;

Updating Related Records

Contact con = [SELECT Id, Name,Account.Phone FROM Contact WHERE Name = ‘abc’ AND AccountId!=Null AND Account.Name = ‘Account1’];  
Con.Phone=’111’; 
Con.Account.Phone=’2222’; 
update con; 
update con.Account;

dont miss out iconDon't forget to check out: Learn All About Salesforce Apex Programming

Now, let’s move to SOSL!

What is SOSL in Apex?

  • SOSL stands for Salesforce Object Search language. 
  • It is used to perform a text search in records. 
  • We can use SOSL to search fields across multiple sObjects records. 
  • SOQL is used to retrieve records for a single object whereas use SOSL to search fields across multiple objects. 

Syntax 

Find ‘SearchQuery’ [IN SearchGroup] [RETURNING ObjectsAndFields];

What is a SearchQuery?

  • Single Word: It should be enclosed in single quotes. 
  • Phrase: It is having multiple words and should be enclosed in double quotes. 

What is a SearchGroup?

SearchGroup is optional. 

  • The default is ALL FIELDS. 
  • You can choose from the following search groups: 
  • ALL FIELDS 
  • NAME FIELDS 
  • EMAIL FIELDS 
  • PHONE FIELDS 
  • SIDEBAR FIELDS 

ObjectsAndFields 

  • ObjectsAndFields is optional. 
  • It is the information to return in the search result – a list of one or more sObjects and within each sObject, list of one or more fields, with optional values to filter against. 
  • If not specified the search result contain the IDs of all objects found. 

dont miss out iconCheck out another amazing blog by Bhawana here: All You Need to Know About Database Class Methods to Perform DML Operations

Execute Anonymous Window 

List<List<sObject>> searchList = [FIND ‘Cloud’ IN ALL FIELDS RETURNING Account(Name),Contact(FirstName, Lastname, Email)];

Query Editor 

FIND {Cloud} IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName, Email)];

For example:

List<List<sObject>> searchList = [FIND ‘Abc’ IN ALL FIELDS RETURNING Account(Name), Contact(FirstName,LastName,Email)]; 
List<Account> accList = new List<Account>(); 
List<Contact> conList = new List<Contact>(); 
accList = (List<Account>) searchList[0]; 
conList = (List<Contact>) searchList[1]; 
for(Account acc : accList)
{ 
    System.debug(‘Name =>' + acc.Name); 
} 
for(Contact con : conList)
{ 
    System.debug(con.FirstName + ‘ ‘ + con.LastName); 
}

So, this is all about related records in apex and SOSL. I hope this information is helpful to you. 

Responses

Popular Salesforce Blogs