Salesforce Spring 20 Release Notes: Quick Summary

New Year is coming and Salesforce has just announced the Salesforce Spring 20 Release Notes. With every release salesforce is adding more and more feature to its platform. As a developer I am excited about new feature and trying my hands on that. Today we will cover few points which I like most in Salesforce Spring 20 Release Notes.

Salesforce Spring 20 Release Notes

1.Lightning Experience Transition: Critical Update and Configuration Converter:

From 7 January 2020 Salesforce will enable Lightning Experience in all orgs that don’t already have it enabled. This process will take 72 hours and after that all orgs will be lightning enabled. So start preparing for the change. You can also use Lightning Migration Assistent tool for this.

2. Einstein Voice Assistant (Beta):

Einstein Voice is available in orgs and we can use it to make process faster. We can create records and perform other task using voice command.
Find Einstein Voice Skills in Setup. Then create a voice skill set with skills tailored to a user profile’s most common tasks. After you create a skill set, your users will see the available skills when they open Einstein Voice Assistant in the Salesforce app. To use a skill, the user can tap it. While using a skill, the user can speak or type their responses.

3. Clone Objects Along with Their Related Records:

Salesforce is now giving us a new option where we can clone Parent record with related child records as well. When we click Clone with Related, all of the original object’s related records are also added to the cloned object.

Clone Objects Along with Their Related Records

4. Navigate to a Record’s Create Page with Default Field Values:

We can now Navigate to record create page using default field values.
To construct a custom button or link that launches a new record with prepopulated field values, use this sample formula:

/lightning/o/Account/new?defaultFieldValues=
    Name={!URLENCODE(Account.Name)},
    OwnerId={!Account.OwnerId},
    AccountNumber={!Account.AccountNumber},
    NumberOfEmployees=35000,
    CustomCheckbox__c={!IF(Account.SomeCheckbox__c, true, false)}

We can use the new lightning/pageReferenceUtils module or lightning:pageReferenceUtils Aura component to build navigation links in our components that prepopulate a record’s create page with default field values.
This component provides utilities for encoding and decoding default field values. Pass this string into the new pageReference.state.defaultFieldValues attribute on standard__objectPage page reference types. Using this component alongside the existing `lightning:navigation` component, we can launch a record’s create page with prepopulated field values.

5. The @track Decorator Is No Longer Required for Lightning Web Components:

In Lightning Web Components now all fields are reactive. Now if any fields’s value has changed and that field is used in template or getter the component will rerender.
But we have still one use case where we need the @track Decorator. To tell the framework to observe changes to the object’s properties, eg: if we have one object which have two properties and one of the properties values has changed then without @track component won’t rerender. You can find more detail here.

6. Communicate Across Salesforce UI Technologies with the Lightning Message Service API (Beta):

We can now use Lightning Message Service API to communicate between Visualforce Lightning or Lightning Web Components. We can now build Lightning web components that can communicate with existing Visualforce pages or Aura components.
You can find more detail here.

7. Attach Actions to Asynchronous Apex Jobs Using Transaction Finalizers (Pilot):

Currently, there is no direct way for us to specify actions to be taken when asynchronous jobs succeed or fail. We can only poll the status of asyncapexjob using a SOQL query, and re-enqueue the job if it fails. With transaction finalizers, we can attach a post-action sequence to an asynchronous job and take relevant actions based on the job execution result.
You can read about it here.

8. Use Generic sObject Data Types in Invocable Methods and Invocable Variables:

We can now use Generic sObject as Data Type when passing Data in @InvocableMethod variables annotated with @InvocableVariable now support the generic sObject and List<sObject> data types.

9. No Maximum Daily Cap for API Calls:

Salesforce has now removed the maximum daily cap of 1,000,000 API requests. This change applies to the Enterprise Edition and to the Professional Edition with API access enabled.

10. Secure Your Sandbox Data with Salesforce Data Mask:

Salesforce Data Mask is a powerful new data security resource for Salesforce admins and developers. Instead of manually securing data and access for sandbox orgs, admins can use Data Mask to automatically mask the data in a sandbox. Data Mask is a managed package that we need to install in a production org. We can then run the masking process from any sandbox created from the production org.

11. Clone a Sandbox with a Version Different from Production:

We can now clone a sandbox that’s on a different major Salesforce release version than your production org. Previously, a sandbox that was on a different version from the production org due to a release transition couldn’t be cloned. The clone link in the UI was disabled.

12. Einstein Prediction Builder:

We can now use Einstein Prediction Builder to build up to 10 predictions and enable 1 of them at no additional cost.

13. Empty the Recycle Bin in One Step:

We can now empty the recycle bin in Lightning Experience with a single click. Previously we need to switch to classic to perform this action.

Empty the Recycle Bin in One Step

14. Enable Field- and Object-Level Permissions Checking Using WITH SECURITY_ENFORCED in SOQL Queries:

SOQL queries using WITH SECURITY_ENFORCED is now generally available. The WITH SECURITY_ENFORCED clause is available only in Apex.
Traversing a polymorphic field’s relationship is not supported in queries using WITH SECURITY_ENFORCED. For example, you cannot use WITH SECURITY_ENFORCED in this query, which returns the Id and Owner names for User and Calendar entities: SELECT Id, What.Name FROM Event WHERE What.Type IN (’User’,’Calendar’).

You can find more details here.

15. Enforce Field- and Object-Level Security in Apex (Generally Available)

The Security.stripInaccessible method for field- and object-level data protection is now generally available. Use the stripInaccessible method to strip fields that the current user can’t access from query and subquery results. Use the method to remove inaccessible fields from sObjects before a DML operation to avoid exceptions. Also, use the stripInaccessible method to sanitize sObjects that have been deserialized from an untrusted source.

So these are the few points from the Salesforce Spring 20 Release Notes which I have shared with you. As I am also reading the Salesforce Spring 20 Release Note so if I found any other important points I will add them as well. You can signup for pre relase org here.
Which point you like most from the latest release, let me know in comments. Happy Programming 🙂

Advertisements

One thought on “Salesforce Spring 20 Release Notes: Quick Summary

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.