Run only Apex tests that are relevant to a deployment by using the
RunRelevantTests (beta) test level. Apex cursors and pagination cursors are
enhanced and generally available. Extract picklist fields by using the
ConnectApi.RecordUi.getPicklistValuesByRecordType() method. Exposing Apex
REST and AuraEnabled controller methods as agent actions is generally available. The
Blob.toPdf() method uses the same PDF rendering service as Visualforce.
Prepare your Apex code for changes to sharing recalculation behavior. Filter Test Discovery API
results by using the category query parameter. Specify the number of oldest,
completed async jobs to delete by using the method overload for
purgeOldAsyncJobs().
For more information on these enhancements, see the Apex Developer Guide and the Apex Reference Guide.
- Deploy Apex Components Faster by Running Only Relevant Tests (Beta)
To reduce Apex component deployment time, use the newRunRelevantTeststest level to run only the tests relevant to your code changes. This feature automatically determines which tests to run based on an analysis of the deployment payload and the payload dependencies. For fine-grained control, you can annotate test classes so that they either run regardless of the deployment payload, or run when specified components are new or modified. This targeted approach boosts the speed and reliability of your deployment while maintaining code quality and coverage requirements. - Use Apex Cursors for Expanded SOQL Query Result Support (Generally Available)
Use Apex cursors and pagination cursors to work with large SOQL query result sets in manageable parts. This feature, now generally available, includes enhancements since the beta release. Standard cursors, when combined with queueable Apex, address the limitations of batch Apex. Pagination cursors are designed for UI elements, such as multipage record lists. Both Apex cursor types can traverse forwards and backwards through result sets and can handle high-volume, high-resource processing. - Extract Picklist Values Based on Record Type
Get the values for all picklist fields for a particular record type by using the newConnectApi.RecordUi.getPicklistValuesByRecordType(objectApiName, recordTypeId)method. We delivered this feature due to your idea on IdeaExchange. - Expose Apex REST and AuraEnabled Controller Methods as Agent Actions (Generally Available)
Create agent actions based on Apex classes by annotating methods in those classes, generating an OpenAPI spec document, and deploying that document to your org. Manage the exposed methods as APIs in API Catalog. This feature is now generally available. - Use Visualforce PDF Rendering Service with Apex Blob.toPdf() (Release Update)
With this update enabled, the ApexBlob.toPdf()method for PDF rendering uses the same rendering service as Visualforce. The Visualforce PDF rendering service offers improvements such as additional fonts and multibyte character support. This change makes PDF rendering more consistent on the Salesforce Platform. - Review Apex Code for Changed Sharing Recalculation Behavior
To help you prepare your Apex code for changes to sharing recalculation behavior, Salesforce created a release update that walks you through identifying and fixing affected code. For more information, review the related release note and the Update Apex Code and Flows for Changed Sharing Recalculation Behavior release update in Setup. - Filter Test Discovery API Results by Test Category
To retrieve only flow tests or only Apex tests, use the newcategoryquery parameter in calls to the Test Discovery API endpoint. Previously, you could filter tests only by namespace prefix and test method visibility. Filtering by test category is helpful in orgs with large test suites across different namespaces. - Specify the Number of Async Jobs to Delete
Use the new method overload forpurgeOldAsyncJobs()to specify the number of oldest, completed async jobs in your org to purge. Providing an upper bound for the number of records to delete enables incremental progress when large volumes of records are to be deleted. - Use DataWeave in Transformations with Nested SOQL Queries
DataWeave supports nested SOQL queries, which improves development time and enables easy integration and efficiency with your transformations. We delivered this feature due to your idea on IdeaExchange. - Run SOQL Queries in User Mode as the Automated Process User
In API version 66.0 and later, you can now run SOQL queries containing the WITH USER_MODE clause as the Automated Process User. In API Version 65.0 and earlier, such queries fail unless they are run explicitly in system mode. - Provide Visible No-Argument Constructors for Custom Apex Classes Used as Invocable Action Parameters in API Version 66.0 and Later
If you haven't enabled the Enforcing No-Argument Constructor release update, a versioned change now implements this requirement. Starting in API version 66.0, Apex classes used for invocable action parameters must have a visible no-argument constructor. The constructor must be public for non-packaged classes or global for packaged classes invoked from outside the package. Use API version 65.0 or earlier with the release update disabled to maintain the previous behavior.