Salesforce Summer ’24 Release Notes are here. With every release Salesforce keep adding new feature in its bucket. With Einstein Co-pilot, code builder we can expect many new exciting feature in this release.
Salesforce Summer ’24 Release Notes Points Related to Salesforce Admin
Create and Verify Your Default No-Reply Organization-Wide Email Address to Send Email (Release Update)
To comply with increased email security standards, orgs are required to create and verify a Default No-reply address in Organization-Wide Email Address settings. This will improve the org email address setup.
Add the New Setup Domain
Ensure that Setup pages in Lightning Experience load content correctly when browsers block third-party cookies. If users have general access to the internet, no action is required. If company controls users’ or servers’ access to the internet through firewalls or allow lists, then IT department must add *.salesforce-setup.com to the company’s list of allowed domains. Salesforce Setup pages are now hosted on that domain.
Improve Search for Users with Search Manager (Generally Available)
Improve search efficiency and relevance by customizing search for users in Search Manager. Create configurations for search channels, filter search for users with rules, and configure objects to always search.
Ensure Security in Search with Search Manager
Apply field-level security to custom fields that contain sensitive information in Search Manager. All standard fields are protected by default. We can select up to 100 custom fields per object. If an object has more than 100 custom fields, the search engine matches results based on information in the unprotected additional fields. To prevent unwanted results, we can either protect fields or remove unprotected fields from the search index.
Get a Summary of a User’s Permissions and Access
With the User Access Summary we can see this information directly from the user’s detail page, saving time, clicks, and effort. There’s no need to run queries or look through each profile, permission set, public group, or queue when troubleshooting or managing access. This will save our time when we debug user permission related issues.
Automate and Migrate User Access with User Access Policies (Generally Available)
Automate users’ assignments to permission sets, package licenses, public groups, and other access features based on criteria that we set. We can create policies that automatically grant or remove access whenever users are created or updated. Or, easily migrate large sets of users to a new access setup in a single operation. User access policies, now generally available, include some enhancements since the Spring ’24 release. We can now create 200 active policies. We can also set the execution order of active policies.
Fix Formula Syntax Errors with Einstein for Formulas
Einstein for Formulas now helps fix syntax errors in a formula. It also provide an explanation for a formula used in Formula fields, default field values, and record validation rules. We can create a formula or use an existing Salesforce formula in the Formula Editor and get an explanation generated. For any syntax errors in the formula, use the fixed formula suggested by Einstein.
Salesforce Summer ’24 Release Notes Points Related to Salesforce Developer
Navigate to a URL-Addressable Lightning Web Component
component available via a URL using the lightning__UrlAddressable
target. To create a URL addressable component, we no longer have to embed our Lightning web component in an Aura component. To generate a URL for Lightning web component and make it available via a URL, include the lightning__UrlAddressable
target in component’s .js-meta.xml configuration file. Set the <isExposed>
tag to true
. The <apiVersion>
tag has no impact on this feature and can be set to an earlier or later version.
<!-- myComponent.js-meta.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>59.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__UrlAddressable</target>
</targets>
</LightningComponentBundle>
// navToComponentWithState.js
import { LightningElement } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';
export default class NavToComponentWithState extends NavigationMixin(LightningElement) {
navigateToComponent() {
this[NavigationMixin.Navigate]({
// Pass in pageReference
type: 'standard__component',
attributes: {
componentName: 'c__myComponent',
},
state: {
c__propertyValue: '2000',
},
});
}
}
// myComponent.js
import { LightningElement, wire, api } from 'lwc';
import { CurrentPageReference } from 'lightning/navigation';
export default class MyComponent extends LightningElement {
@wire(CurrentPageReference)
currentPageRef;
@api propertyValue;
get propertyValue() {
return this.currentPageRef.state.c__propertyValue;
}
}
Use Cursors for Expanded SOQL Query Result Support (Beta)
With Apex cursors, we can break up the processing of a SOQL query result into pieces that can be processed within the bounds of a single transaction. Cursors provide the ability to work with large query result sets, while not actually returning the entire result set. We can traverse a query result in parts, with the flexibility to navigate forward and back in the result set.
Apex cursors are stateless and generate results from the offset that is specified in the cursor.fetch(integer position, integer count)
method. We must track the offsets or positions of the results within your particular processing scenario.
A cursor is created when a SOQL query is executed on a Database.getCursor()
or Database.getCursorWithBinds()
call. When a Cursor.fetch(integer position, integer count)
method is invoked with an offset position and the count of records to fetch, the corresponding rows are returned from the cursor. The maximum number of rows per cursor is 50 million, regardless of the operation being synchronous or asynchronous. To get the number of cursor rows returned from the SOQL query, use Cursor.getNumRecords()
.
Apex cursors throw these new System exceptions: System.FatalCursorException
and System.TransientCursorException
. Transactions that fail with System.TransientCursorException
can be retried.
public class QueryChunkingQueuable implements Queueable {
private Database.Cursor locator;
private integer position;
public QueryChunkingQueuable() {
locator = Database.getCursor
('SELECT Id FROM Contact WHERE LastActivityDate = LAST_N_DAYS:400');
position = 0;
}
public void execute(QueueableContext ctx) {
List<Contact> scope = locator.fetch(position, 200);
position += scope.size();
// do something, like archive or delete the scope list records
if(position < locator.getNumRecords() ) {
// process the next chunk
System.enqueueJob(this);
}
}
}
Evaluate Dynamic Formulas in Apex (Beta)
Dynamic formulas in Apex now support Sobjects. Use the new Formula.builder()
method to create an instance of the FormulaBuilder
to configure the formula. Get a list of the field names as referenced in a formula using the getReferencedFields()
method. Formula evaluation in Apex is bound by the character limit.
Update API Calls to Use Your My Domain Login URL
An instanced URL contains your Salesforce instance. For example, https://ap2.salesforce.com
contains the instance ap2. If due to some reason org instance URL change, it breaks the existing integration. My Domain login URLs always use the correct instance. So it resolve this issue.
Einstein for Developers (Beta)
The Einstein for Developers is an AI-powered developer tool that’s available as an easy-to-install Visual Studio Code extension built using CodeGen, the secure, custom AI model from Salesforce. Einstein for Developers is enabled in all Salesforce orgs.
So these are the some points which I like most in Salesforce Summer ’24 Release Notes. As always we will cover Salesforce Flow in a separate post. You can signup for pre-release org here. So which point you liked the most in Spring 24 release, let me know in comments. Happy Programming 🙂