SALESFORCE SPRING ’21 - DEVELOPMENT HIGHLIGHTS
Hi all!
Before we get started, please allow me to ask you this: What’s a better way to kick off this year than reading the Spring ’21 release highlights? I, myself, couldn’t find an answer for that, as the 64th major release is just around the corner (Yes, Salesforce addiction is real! I’m just telling it like it is! ??). Through this post, I’ll recap the new or changed features around the “development” area. With that being said, let’s get started!
Lightning Components
→ You can now have more control over the lightning-map base component ??? (Both Aura & LWC). By adding custom svg markers, defining a shaded circle/rectangle/polygon around a location, controlling the zoom and dragging behaviours or even completely disable map controls.
→ Aura components in the ui namespace are being deprecated. Support for those is going to end on May 1, 2021. (Let’s have a moment of silence for all those components ??)
→ You can now create a custom property editor that automatically access stored values in your flow. You can use the automaticOutputVariables interface method to provide data about the stored values in a flow. (Before, a custom property editor accessed only values which admins manually assigned to flow variables)
→ You can now use a Lightning web component as a quick action. (Pilot)
Lightning Design System
→ The Lightning Design System Styling Hooks ????? (Beta since Winter ‘21) are now supported by more component blueprints. Check the all new additions here.
Apex
→ A lead can now be converted not only to a Business Account but also to a Person Account, and simultaneously. This can be done using new methods on the LeadConvert class: getRelatedPersonAccountId(), setRelatedPersonAccountId(personAccountId), getRelatedPersonAccountRecord() and setRelatedPersonAccountRecord(personAccountRecord).
→ The invocable methods that perform callouts can now be flagged with the callout attribute. This can be done through: @InvocableMethod(callout=true, label=”My Action Label”).
→ 3MB of free Platform Cache capacity can now be available to AppExchange-certified and security-reviewed managed packages (Yeey! And you know what they say: “If it’s free, then it’s for me! ??”). As a developer, allocate this capacity to a partition and add it to your managed package. Once installed in a subscriber org, the capacity is automatically allocated. (GA)
→ To configure an Invocable Action in the Flow Builder, as a developer you can now create a Custom Property Editor for the admin to do so. (Before, the developer who built the action had no control over the configuration UI). (GA)
→ BatchApexErrorEvent triggers can now be included in your managed package.
→ Transaction Finalizers (Beta)
→ Use new static methods to access Custom Metadata in your code: getAll(), getInstance(recordId), getInstance(qualifiedApiName)
Packaging
→ You can now specify which target release when creating your package version. This is done by specifying either “preview” or “previous” as the “release” version. For more details about the “how to” part, check this.
→ When using the org-dependent unlocked packages, metadata validation occurs during package installation, instead of during package version creation. (GA)
→ Some metadata components can be removed from second-generation managed packages. Check the full list here. (Pilot)
→ New fields in SOAP & Tooling API objects now allow you to monitor the packaging operations: Start time, end time and duration of the push upgrade in SOAP API. Duration of package creation in Tooling API.
→ You can now require multi-factor authentication for logins to the subscriber orgs ?????♀?.
→ If you have some metadata which is only required for Apex test runs during the package version creation, but shouldn’t be part of your package, you can specify its path in the sfdx-project.json file. It won’t be included nor the package nor in the installation in subscriber orgs. (GA)
Scratch Orgs
→ More features can be added to your scratch org definition file. Such as: EinsteinSearch, MyTrailhead, OrderManagement, PublicSector, WorkPerform and more.
Sandboxes
→ You can now target records to mask by setting up record filtering rules on specific fields. It also supports a total of eight languages now.
→ Source Tracking in Sandboxes is now GA! In addition to listing changes made locally, you can automatically metadata changes, list changes made by others, push/pull changed source & most importantly identify and resolve conflicts prior to pushing pulling. (Yes, I know what you’re thinking my fellow developers, I’M ALSO EXCITED TO USE THIS FEATURE! ??)
Change Data Capture, aka CDC
→ Enriching Change Event Messages with extra fields is GA. With this, you can even include unchanged fields in change events now. Check the details and examples here.
→ Record changes notification can now be received for VideoCall and VideoCallRecording objects.
Platform Events
→ The default running user and batch size of a platform event Apex trigger can now be overridden. This can be done through the PlatformEventSubscriberConfig in the Metadata API or the Tooling API. (By default, the trigger runs as the Automated Process system user and with a batch size of 2000)
And.. that’s a wrap! For more highlights around other areas, check this great recap made by Mustapha EL HASSAK.
21x certified| Enterprise Salesforce Architect
3 年I am unable to query PlatformEventSubscriberConfig from the dev console. It says it's not supported. Please can you share some light? Thanks