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. Having read this I believed it was rather informative.

    I appreciate you finding the time and effort to put this article
    together. I once again find myself spending a lot of
    time both reading and leaving comments. But so what, it was still worthwhile!

  2. Unquestionably believe that which you said.

    Your favorite reason seemed to be on the internet the easiest thing to be
    aware of. I say to you, I definitely get irked while people think about worries that they plainly do
    not know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people could take
    a signal. Will likely be back to get more. Thanks

  3. Hello would you mind letting me know which webhost you’re
    using? I’ve loaded your blog in 3 different web browsers and I
    must say this blog loads a lot faster then most. Can you suggest a
    good web hosting provider at a honest price? Kudos, I appreciate it!

  4. Hi everyone, it’s my first visit at this website, and
    post is truly fruitful designed for me, keep up posting these types of articles or reviews.

  5. Valuable information. Lucky me I found your web site by chance, and I’m
    shocked why this accident did not happened earlier! I bookmarked
    it.

  6. When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get three emails with
    the same comment. Is there any way you can remove me from that service?

    Thanks a lot!

  7. Hello there, just became aware of your blog through Google, and found that it’s really informative.
    I am gonna watch out for brussels. I’ll appreciate
    if you continue this in future. A lot of people
    will be benefited from your writing. Cheers!

  8. I’ve been exploring for a little bit for any high quality
    articles or blog posts on this sort of house . Exploring in Yahoo I eventually stumbled upon this site.
    Reading this info So i’m glad to convey that I have a very good uncanny feeling I came upon exactly what I
    needed. I such a lot surely will make sure to don?t
    overlook this web site and provides it a glance regularly.

  9. magnificent publish, very informative. I ponder why
    the other experts of this sector don’t notice this.
    You must proceed your writing. I’m sure, you have a huge readers’
    base already!

Comments are closed.