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;
Don’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.
Check 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.