01
Jul
PRIDE MONTH ALERT : FLAT 20% OFF On Our Best-Selling Courses Use - PRIDE20
Batch class in Salesforce is used to run jobs of large scale (something like thousands or millions of records) that might exceed normal processing limits. As you can process records asynchronously in batches using Batch Apex (hence the name, “Batch Apex”) to stay within platform limits. So, when you have a lot of records to process like data archiving, or cleansing, Batch Apex is your best solution.
This blog is written with the intent to make you learn:
Then we will discuss the syntax for the Batch Apex class in detail so that you can learn practical concepts too. But first, let’s understand what is Batch Apex Class.
As the name suggests, the batch word is used when you want to process a bulk amount of data effectively without any error that you need to apply some logic certainly. The Batch Apex class can be used conveniently here to perform a variety of tasks in real-time like data cleaning, data archiving, data analytics to maintain the quality. In simple words, Batch Apex classes are designed specially to process voluminous data or records together and it has maximum governor limits than the synchronous code.
Area |
Normal Apex |
Batch Apex |
SOQL Queries |
100 records per cycle |
200 records per cycle |
Records retrieval by SOQL Queries |
50,000 |
50,000,000 |
Heap Size |
6MB |
12MB |
Batch Apex is an essential requirement when you wanted to execute bulk records, if you are using regular apex classes then the chances of errors are higher and it may hit the governor limits too. A maximum of 200 records can be passed to every batch here. The concept has plenty of awesome advantages that you should check before moving ahead –
Before you write the Batch Apex code, you should focus on these governor limits for effective dealing with classes.
Here are the advantages of Batch Apex and Batch Apex in Salesforce along with why Batch Apex should be used against normal apex:
By now you understand what is Batch Apex, its advantages, and when to use Batch Apex. Now let us quickly understand how to write Batch Apex class and apex best practices.
To write a Batch Apex class, you should first implement the “Database.Batchable” interface in Salesforce and include the execution of these three methods.
This method is used to collect objects or records that need to be passed to an interface method for processing. This method is called at the beginning when the Batch Apex starts to execute. In most cases, the “QueryLocator” method is used to play with the simple SOQL query and to generate the scope of objects within a batch job. In case, you wanted to do something crazy then call the API records before they are passed for execution. Further, if you wanted to set the governor limits for the total number of records retrieved by the SOQL queries then you can query up to 50 million records together. With the help of an iterable object, the governor limit for a total number of records is retrieved by SOQL queries through enforcement.
Read: How can Learning Salesforce Developer Skills Lead you to your Dream Job?
This method will perform the actual processing for each batch or chunk where data needs to be passed with the help of a method. The default size defined for each batch is 200 records maximum. If the size of the recordset is larger, break it down into manageable pieces first before you execute them. If the size is not defined well then records will not be executed in the same order as they were received by the start method.
This method is responsible to perform post-processing operations like email sending or more once all batches are executed successfully. Here is the basic syntax of a Batch Apex class how are they written in the Salesforce.
How to use state in Batch Apex class?
A Batch Apex class is usually stateless and execution of each job in the batch is considered a discrete transaction. For example, if some batch class contains more than 1000 records then based on the default size concept total of five transactions will be performed here with a recordset of 200 each. Here you need to specify the Database.
The stateful method in the class definition is to maintain the state across all transactions. With the help of this method, the member variables could always retain their values between multiple transactions. You must be thinking about why it is necessary but maintaining a state is beneficial to summarize records as they are processed. For example, when we are updating contact records in our batch then you wanted to keep track of the total records affected so that the same can be included for the notification email list.
Now you know how to write a batch class with the help of three methods and define the state for the database. Don’t forget to practice a few examples to get a better idea of the concept. Keep in mind that APEX development and testing go hand to hand. Every time you add some records, call the Batch Apex class and check if contacts are updated properly or not as per the specified requirements. Test class for Batch Apex
Read: Visualforce Tags Salesforce - A Must Learn Guide in 2020
Learn Salesforce in the Easiest Way
As discussed earlier, there are always certain things you should keep in mind when using the Batch Apex class. To make sure that batch jobs are executing faster, you should minimize the callout times for web services and tune the queries used with your Batch Apex code. The longer the Salesforce batch size would be, the more likely other job queues will be delayed when too many jobs are added together. Here are the best practices to follow by Salesforce Developers:
These are some of the best practices of Apex, and how to use Batch Apex.
This blog covers every aspect of the Batch Apex. What is meant by the Batch Apex, ist best practices, how to use, advantages, and why to use Batch Apex against normal apex. Now, you can use it successfully in your next project, and don’t forget to define governor limits well otherwise it may be annoying at the end. Today, Batch Apex class usage is growing tremendously and Salesforce developers are also excited about its benefits, and learning its core will take you a long way ahead.
If you have any questions related to Batch Apex, Salesforce certification, Salesforce career path write in the comment box below and we will guide you through.
Through market research and a deep understanding of products and services, Jyotika has been translating complex product information into simple, polished, and engaging content for Janbask Training.
AWS
DevOps
Data Science
Hadoop
Salesforce
QA
Business Analyst
MS SQL Server
Python
Artificial Intelligence
Machine Learning
Tableau
Search Posts
Trending Posts
Related Posts
How To Start Your Career In Salesforce?
690.6k
How to Prepare For Salesforce App Builder Certification?
283.7k
Salesforce Marketing Cloud: A Powerful Marketing Platform
971.2k
How to Handle Governor Limits In Salesforce?
738.9k
What is Salesforce? Explore Intriguing World of Salesforce For Business & Career Growth
127.8k
Receive Latest Materials and Offers on Salesforce Course
Interviews