Salesforce Winter ’21 Release Notes (Developer Perspective)

Update Resources with the PATCH HTTP Method in Apex Callouts

To make partial or full updates to a resource in an HTTP web service, specify the PATCH method in the HttpRequest class. Previously, only the PUT method was supported for full updates.

https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/rn_apex_callouts_patch.htm?edition=&impact=

Use the Safe Navigation Operator to Avoid Null Pointer Exceptions

Use the safe navigation operator (?.) to replace explicit, sequential checks for null references. This new operator short-circuits expressions that attempt to operate on a null value and returns null instead of throwing a NullPointerException.

Where: This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions.

How: If the left-hand-side of the chain expression evaluates to null, the right-hand-side is not evaluated. Use the safe navigation operator (?.) in method, variable, and property chaining. The part of the expression that is not evaluated can include variable references, method references, or array expressions.

https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/rn_apex_SafeNavigationOperator.htm?edition=&impact=

Instead of checking System.isFuture() || System.isQueueable(), detect Apex Runtime Context with RequestId and Quiddity

//Get info about the current request
Request reqInfo = Request.getCurrent();

//Universally unique identifier for this request
//Same as requestId in splunk or REQUEST_ID in event monitoring
String currentRequestId = reqInfo.getRequestId();

//enum representing how Apex is running. e.g. BULK_API vs LIGHTNING
//Use this with a switch statement,
//instead of checking System.isFuture() || System.isQueueable() || ...
Quiddity currentType = reqInfo.getQuiddity();

Improve Apex Testing with New SObject Error Methods

If the SObject.addError() method has been called on an SObject instance, the SObject.hasErrors() method returns true. The SObject.getErrors() method returns a list of Database.Error objects that contain the errors. encountered.https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/rn_apex_trackErrors.htm?edition=&impact=

A new REST resource for Composite requests is now generally available

Then composite resources let you batch up multiple calls in a single call. By using this you can simplify your code, reduce network overhead, and improve your app’s performance.

composite graphs ensure that the steps in a given set of operations are either all completed or all terminated. It’s no longer necessary to check for a mix of successful and unsuccessful results. The Composite Graph resource payload increases the subrequest limit to 500 per payload, up from 25 per Standard Composite payload. A single API call can now do much more.

https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/using_composite_resources.htm

Transform Data with a Few Clicks (Pilot)

Data in your Salesforce org is stored across different objects. Use Data Processing Engine to bring all the data in one place and transform it based on your requirements. Start by creating an instance of Data Processing Engine. Then select data sources, define the various configurations, and choose whether you want to use the transformed data to create records or update existing records.

https://releasenotes.docs.salesforce.com/en-us/winter21/release-notes/rn_data_processing_engine_create.htm?edition=&impact=

1,085 thoughts on “Salesforce Winter ’21 Release Notes (Developer Perspective)”

  1. An impressive share! I’ve just forwarded this onto a coworker who has been doing a little
    research on this. And he actually bought me dinner because
    I found it for him… lol. So allow me to reword this….

    Thanks for the meal!! But yeah, thanks for spending the
    time to talk about this subject here on your web site.

  2. Hey I know this is off topic but I was wondering if you
    knew of any widgets I could add to my blog that automatically tweet my newest
    twitter updates. I’ve been looking for a plug-in like this for quite some time and was
    hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy reading your blog and I look forward
    to your new updates.

  3. Thanks for your marvelous posting! I truly enjoyed reading it, you will be
    a great author.I will always bookmark your blog and will eventually come back
    very soon. I want to encourage one to continue your great work, have a nice
    morning!

  4. Hello Dear, are you actually visiting this web page regularly, if so after that you will absolutely
    take fastidious know-how.

  5. Hello there, just became aware of your blog through Google, and found that it is truly informative.
    I’m gonna watch out for brussels. I’ll appreciate if you
    continue this in future. Many people will be benefited from your writing.
    Cheers!

  6. Hello! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?

  7. I’m not sure where you are getting your info, but good topic.
    I needs to spend some time learning much more or understanding more.
    Thanks for excellent info I was looking for this information for my mission.

  8. Thanks for your marvelous posting! I genuinely enjoyed reading it, you’re a great
    author.I will remember to bookmark your blog and may come back later on.
    I want to encourage yourself to continue your great writing, have a nice morning!

  9. Sweet blog! I found it while surfing around on Yahoo News.
    Do you have any suggestions on how to get listed in Yahoo News?

    I’ve been trying for a while but I never seem to get there!
    Many thanks

  10. Hello there I am so happy I found your blog, I really found you
    by mistake, while I was researching on Bing for something else, Anyhow
    I am here now and would just like to say many thanks for a incredible
    post and a all round entertaining blog (I also love the
    theme/design), I don’t have time to go through it all at the minute but I have bookmarked it and also included your RSS feeds, so when I have time I will be back to
    read much more, Please do keep up the awesome work.

  11. Very nice post. I just stumbled upon your weblog and wished to say that I’ve truly enjoyed browsing your blog
    posts. After all I’ll be subscribing to your rss feed and I hope
    you write again very soon!

  12. Valuable info. Fortunate me I discovered your site by chance, and I am stunned why this twist
    of fate did not happened earlier! I bookmarked it.

  13. Whats up very nice site!! Man .. Excellent .. Superb .. I’ll bookmark your website and take the feeds also?
    I’m happy to search out a lot of helpful info here in the publish, we need develop more strategies in this regard, thanks for sharing.
    . . . . .

  14. Thank you for the good writeup. It in fact was a leisure account it.

    Look complex to more introduced agreeable from you!

    By the way, how could we keep in touch?

Comments are closed.