Salesforce Winter ’23 Release Notes — The Funny Summary — Volume V

Oumaima ARBANI
7 min readSep 13, 2022

--

Penny: Oh GOSH, you’re about to jibber-jabber about jibber-jabber.
Brandy: Yes we are!

Development

Lightning components

  • If Harry Potter taught us anything, it’s that no one should live or hide in a closet. Your components no longer have to hide in the Shadow. They can now render in Light DOM, instead of Shadow DOM. This is still BETA. Curiosity is killing you huh? Check to see how
  • I am not crying, you’re crying. What can I say, better late than never! You can now create overlays, with the brand new modal component in LWC. I know, I know… here is a handkerchief 😿🥹🤧
  • I know you all hate errors folks, but I think this one is a must. Now invalid HTML syntax in LWC markup, results in an error. If you’re already wondering what’s an invalid HTML syntax, then check it out here
  • This one is a bit light, it’s just a ⚠️warning⚠️ instead of an error. If your LWC includes a <template> element with an invalid attribute, loading your component will result in a warning
  • After SPRING ’23, only design tokens labeled as GA(Global Access) are going to be supported in your LWC’s CSS. For more informations about the supported design tokens, check this link
  • Do you still have the handkerchief I gave you earlier? You might need it again for this one. Ladies and Gentlemen, after a lot of waiting, LWC now has ….🥁🥁🥁🥁 a data refresh API. The new lightning/refresh module and RefreshView API provide a standard way to refresh component data in LWC and Aura (Aura only supported the legacy force:refreshView, which doesn’t meet the requirements of modern web development). PILOT
  • The “Use Lightning Web Security for Lightning web components” setting is now enabled by default in new Salesforce orgs ⚡⚡️. Keep in mind this setting, makes your org use the LWS instead of Lightning Locker for Lightning web components
  • This section keeps getting better and better. The LWS now allows Lightning web components to access content in iframe elements

Visualforce

  • The SPRING ’22 scheduled enforcement for preventing consecutive API navigation calls in Visualforce Pages, was first postponed till SUMMER ’24, but now it has been postponed indefinitely and not enforced in its present form
  • Before I get into this one, let me just give you a quick reminder dear developers. The Visualforce Remoting API uses JavaScript to call methods in Apex controllers directly from Visualforce pages. So In order to prevent unauthorized serialization and deserialization across packaging namespaces, Salesforce validates the JsonAccess annotation of the Apex classes. This will be enforced on SPRING ’23
  • We hate Cross-site Scripting (XSS) attacks, so to prevent malicious code from executing XSS attacks <apex:inputField> label will be escaped. This will be enforced on SPRING ’23

Enough of Visualforce, let’s keep pushing… 🏎🏎

Apex

  • Fellow Developers, before we start, let me talk a liiiiiiiiiiittle bit about DataWeave. DataWeave is a programming language designed by MuleSoft for accessing and transforming data that travels through a Mule application. With that has been said, Mulesoft’s DataWeave library is now integrated into the Apex runtime. DEVELOPER PREVIEW
  • If you are one of our Salesforce release notes Summary & Highlights fans, you would know that Salesforce introduced the user mode feature in the SUMMER ’22 release with an initial set of overloaded System.Database methods that perform DML and query operations. Salesforce added new methods in this release (BETA), which are:
    - Database.getQueryLocator methods
    - Database DML methods (deleteAsync, deleteImmeidate, insertAsync, insertImmediate, updateAsync, and updateImmediate)
  • Fellas, it’s time to announce that the newSystem.Assert class has some interesting methods 🤓, and Salesforce is recommending using the new methods instead of the existing ones. New methods... But why? Here you go
  • So is it the triggers first or maybe the Validation rules first? Oh wait… I got it, it’s the flow first 😎… Okay, okay.. We don’t want to end up like Rachel’s English Trifle, so here is a diagram to represent the save order of execution
  • Previously a user can have up to 10 query cursors open at a time. Now Query cursors open concurrently per user are no longer restricted in number
  • To have a better understanding of your org’s limit for asynchronous Apex test executions, you can use the new DailyAsyncApexTests limit which returns the maximum number of Apex tests that can be queued in a 24-hour period and the remaining number of Apex tests available based on your current usage
  • Aaaaaaaaaand our SUMMER ’22 golden guest which was under the Developer preview, is now GAAAAAAAAAAAA . Yes I am talking about Invocable.Action class, which allows you to call invocable actions (Standard & custom) from Apex code. Previously, that was only possible using flows

API

  • But what if we have content, huh? You can avoid duplicate records and server-side operations, by using ✨Idempotent Record Writes ✨. By making a request idempotent, your records on the server remain in the same state even if an identical request is made once or multiple times. Fantásticos y mágicos. BETA
  • Let’s now talk about query results:
    - Open cursor query results limitations have been removed
    - Pagination beyond 10 result sets per user is now supported
    - Query results are available for 2 days, including results in nested queries
    - Thank you for your attention. Next please…
  • A global value set or global value set translation created in API version 56.0 or later automatically has the developer name suffix __gvs, and you refer to it using the suffix, and it doesn’t conflict with a standard entity of the same name.. this was just a small Christmas gift 🎁
  • Retirement announcement 📣 Legacy API Versions 21.0 Through 30.0 Are Being Retired. Is this the end of all the endings?

Packaging

Welcome to the Packaging section 🤩

  • You can transfer the ownership of an unlocked or second-generation managed package from one Dev Hub org to another. In order to do so, you’ll need to log a case with Salesforce Partner Support
  • Here at Salesforce, Product Engineers sometimes run Pilot programs. Sometimes they dark-launch features to see how they work in production before sharing them with you. Sometimes they make features available to select orgs for limited-time trials. And sometimes they want to track activation metrics for those features. We do this using feature parameters, now the default limit on feature parameters has increased from 25 to 200

Development Environments

  • Now, you can identify which sandboxes get upgraded early (Preview), and which sandboxes are scheduled to be upgraded with production orgs (Non-Preview) during major Salesforce releases
  • With DRS enabled, Developer and Developer Pro sandboxes hosted on Hyperforce can be cloned rápidamente

Platform Development Tools

I want to create a fully customised Salesforce Application, what should I do?
- Plan A: Salesforce Developer Console
- Plan B: Download VsCode, and Salesforce CLI

Okay, I am not going to do this the Ferrari way with their alphabetical plans, I choose Plan OMG everytime, just like Red Bull does 🏎🏎 All I want to say is that you can develop Salesforce Apps using the new web-based development environment, Code Builder. You don’t have to download anything in order to create your apps, this is still BETA but it’s worth checking

Change Data Capture

You can filter a stream of Change Events using filters in channel members, and specifying the fields and values to filter change events on. Fewer events delivered = Efficient use of your event delivery allocation. This is GA now

Platform Events

  • Filtering a stream of Platform Events is now GA. If you are wondering what does that means, it’s that you can create a channel with a filter to only receive Platform Events with a specific criteria
  • Did you know that you can monitor your event publishing and delivery usage in the user interface for high-volume platform events and change events? Well, now you know 😉
  • DailyDeliveredPlatformEvents value of the limits REST resource is your bestie, if you want to monitor Daily Event Delivery usage with the REST API

Event Bus

  • Bridges can’t only be built by architects, they can be built by singers, as well as you. The Event Bus Relay in Salesforce & Amazon EventBridge can now communicate back-and-forth. This is now GA
  • Pub/Sub API is now GA

--

--

Oumaima ARBANI

Salesforce Technical Consultant by day, reader by night. An aspiring CTA, a Salesforce addict, a dog lover, a HUGE Swiftie, a Potterhead, and a big F1 fan.