Monitor Custom Metadata Type Use in System Overview
Understand your current custom metadata type usage pattern to plan for future custom metadata type work. You can now view custom metadata type usage in System Overview. You can get information about the number of custom metadata types and the size of the custom metadata type records used in your org.
Easily Insert Files When Composing a Case-Related Email
Agents can attach files to an email more easily. Files related to a case or attached to an email are collected under Related Files in the file selector. You can add multiple files at once. And the selector prevents you from adding duplicates.
Access Lightning Experience from Safari on iPad Devices (Beta)
Give your users the ability to run the full desktop version of Lightning Experience on their iPad device when they’re away from their desktop or laptop.
Power Up Your Related Lists with Enhanced Related Lists
Take your related lists to the next level. With Enhanced Related Lists, you can show up to 10 columns, resize and sort your columns, perform mass actions, and wrap text.
Keep Record Context When Switching from Salesforce Classic to Lightning Experience
When you switch from Salesforce Classic to Lightning Experience, you land on the same page in Lightning Experience, if it exists. If the same page doesn’t exist in Lightning Experience, you are redirected to your default landing page, which is determined by the org default or your customizations.
Zoom Through Related Lists with Quick Filters
Use quick filters in your related lists to find the data that you’re looking for. Related list quick filters are different from regular list view filters in that they aren’t saved, persist only throughout your current session, and can’t be shared.
Search Picklist Fields in List Views
You don’t have to manually pick through your list views to find the picklist values you’re looking for. List view search now includes picklists in your query results. Dependent picklists and picklists with translated values aren’t searchable.
See More in Item Menus on the Navigation Bar
We increased the number of recent items shown in item menus from three to five. We also made some styling enhancements, including bold section names and separators, to make it easier to tell the different sections apart.
The Lightning Experience Header Is Hidden When You Print from Your Browser
All you want is what’s on the page. The Lightning Experience header, including the search box and navigation bar, is no longer included when you print from your browser.
Current Print View(Shows Search bar)
Summer ’19 Print View
Choose from Two Record View Options
Now you have two record page view default options. Choose between the current view—now called Grouped view—and the new Full view. Full view displays all details and related lists on the same page. If you’re transitioning to Lightning Experience, this view is similar to Salesforce Classic.
Make Long-Running Callouts with Continuations
Use the Continuation class in Apex to make a long-running request to an external web service from an Aura component or a Lightning web component. Process the response in a callback method. An asynchronous callout made with a continuation doesn’t count toward the Apex limit of 10 synchronous requests that last longer than five seconds. Therefore, you can make more long-running callouts and integrate your component with a complex back-end API.
Enforce Field-Level Security in Apex (Pilot)
Apex has a new security feature for field-level data protection, which is accessed through the Security and SObjectAccessDecision classes. To ensure secure processing in Apex in the context of the current user’s read, create, or update operation, use the stripInaccessible method. Based on the field-level security of the current user, this method can be used to strip the fields from query results that the user can’t access. The method can also be used to remove inaccessible fields from sObjects before a DML operation to avoid exceptions and to sanitize sObjects that have been deserialized from an untrusted source.
- List<Opportunity> opportunities = new List<Opportunity>{
- new Opportunity(Name=’Opportunity1′),
- new Opportunity(Name=’Opportunity2′, Probability=95)
- };
- // Strip fields that are not creatable
- SObjectAccessDecision decision = Security.stripInaccessible(
- AccessType.CREATABLE,
- opportunities);
- // Print stripped records
- for (SObject strippedOpportunity : decision.getRecords()) {
- System.debug(strippedOpportunity);
- }
- // print modified indexes
- System.debug(decision.getModifiedIndexes());
- // Print removed fields
- System.debug(decision.getRemovedFields());
- //System.debug Output
- // DEBUG|Opportunity:{Name=Opportunity1}
- // DEBUG|Opportunity:{Name=Opportunity2}
- // DEBUG|{1}
- // DEBUG|{Opportunity={Probability}}
Fire Platform Events from Batch Apex Classes (Generally Available)
Batch Apex classes can fire platform events when an error or exception is encountered. A batch Apex class declaration must be using API version 44.0 or later to implement the Database.RaisesPlatformEvents interface and fire a platform event. A platform event record now includes the phase of the batch job (start, execute, or finish) when the error was encountered. The start and finish methods of the Database.Batchable interface now fire platform events on error (which they didn’t do in the beta release).
public with sharing class YourSampleBatchJob implements Database.Batchable<SObject>,
Database.RaisesPlatformEvents{
// class implementation
}
Receive Streaming Events in Your Lightning Web Component
In Winter ’19, we introduced the lightning:empApi Aura component for subscribing to event streaming channels in your Aura components. Now you can do the same in your Lightning web components using the lightning/empApi module.
Process Change Event Messages in Apex Triggers
With Apex change event triggers, you can now process change event messages on the Lightning Platform. Change event triggers run asynchronously after the database transaction is completed. Perform resource-intensive business logic asynchronously in the change event trigger and keep transaction-based logic in the Apex object trigger. By decoupling the processing of changes, change event triggers can help reduce transaction processing time.
Work with More Custom Objects in Your Org
We raised the total hard limit for custom objects in an org to 2,500 so that you can install more custom objects from packages. Each Salesforce edition has a specific limit on the number of custom objects that you can create in your org. Beyond the edition limit, the hard limit governs how many custom objects you can install from managed packages, such as apps publicly posted on AppExchange. The new 2,500 limit includes the maximum number of custom objects created and installed in your org.
Path: Celebrate Sales Milestones
Help your teams celebrate their successes. Toss some virtual confetti when reps reach a designated path stage, for example, winning an opportunity. You can choose the frequency, such as always for those hard-won victories or only sometimes for daily occurrences. Celebrations don’t work on the status Converted on leads.
Custom Object Access Settings Default to Private
When you create custom objects, the external access level now defaults to Private if you’ve enabled external org-wide defaults. Previously, the external access level defaulted to Public Read/Write.
Merge Cases into a Single Record (Beta)
If you have duplicate cases or cases that you want to merge into a single case, you can now merge two or three cases into one master record. When you merge cases, the master record is updated with your chosen field values. Most related lists, feed items, and child records are merged into the master record. The master record keeps the Chatter feeds, your values for read-only and hidden fields (except Created Date and Created By), related items, and security.
Get Notified When Reports Conditions Are Met
Don’t wait to find out when an important aggregate in your Salesforce report reaches a meaningful threshold. When a change affects a report that you rely on, report subscribers can receive the updated information right away. For instance, set conditions to send email when average case age is greater than one day, or opportunity count rises above 100. Choose whether the email contains a summary of the conditions that were met or a summary plus the whole report.
Evaluate Each Record in Reports with Row-Level Formulas (Beta)
Answering business questions sometimes means making a calculation on every row in a report. With row-level formulas, you don’t need to export report data to a spreadsheet or ask an admin to create a one-off custom formula field. Instead, write a row-level formula directly in the Lightning report builder.
Find Records Faster with Search
Wading through an entire report to find just the records you’re interested in can be time-consuming. The report table search makes its entrance so that you spend less time looking for the information you need.
Find Existing Letterheads in a New Location in Salesforce Classic
Looking for the letterheads that you created in Salesforce Classic? They’re still there in Setup, under the renamed menu option Classic Letterheads.