Salesforce's Summer ’16 release is here

Salesforce May 4, 2016

Hey Guys,

Just a quick post to list some enhancements/additions Salesforce will do in its Summer'16 release.

Apex Enhancements

One Asynchronous Limit to Rule Them All

Previously, there were individual limits on the number of calls that could be made to the following types of asynchronous actions (per transaction):

  1. Methods with the future annotation (@future)
  2. Jobs added to the queue with the System.enqueueJob method
  3. Classes scheduled concurrently with the System.schedule method
  4. Batch Apex jobs scheduled with the Database.executeBatch method

Salesforce replaced these limits with a consolidated limit. You can now make up to 200 asynchronous calls of any type in a single Apex transaction. Feel free to mix and match future, queued, scheduled, and batch calls within a single transaction, up to a limit of 200.

Two new methods have been added to the System.Limits class that return information about the new asynchronous limit:


Get a Map of Populated SObject Fields

This is new summer16 feature that can help developers to get populated fields in a particular sobject. Salesforce added a new method in SObject class for this. For example:

Account a = new Account(); = 'TestMapAccount1';
insert a;
a = [select Id,Name from Account where id=:a.Id];
Map<String, Object> fieldsToValue = a.getPopulatedFieldsAsMap();

for (String fieldName : fieldsToValue.keySet()){
    System.debug('field name is ' + fieldName + ', value is ' + 

// Example debug statement output:
// DEBUG|field name is Id, value is 001R0000003EPPkIAO
// DEBUG|field name is Name, value is TestMapAccount1

Increased Cross-Namespace Limits

Salesforce increased the number of unique, certified namespaces that can be invoked during a single Apex transaction. Previously, the limit during a single transaction was 10. Salesforce removed this limit and added a cumulative cross-namespace limit.

There’s now no limit on the number of certified namespaces that can be invoked in a single transaction. However, the number of operations that can be performed in each namespace must not exceed the per-transaction limits. In place of the former limit, there’s a new limit on the cumulative number of operations that can be made across namespaces in a transaction. This cumulative limit is 11 times the per-namespace limit. For example, if the per-namespace limit for SOQL queries is 100, a single transaction can perform up to 1,100 SOQL queries. In this case, the cumulative limit is 11 times the per-namespace limit of 100. These queries can be performed across an unlimited number of namespaces, as long as any one namespace doesn't have more than 100 queries.

Use CORS to Access Apex REST Classes

Apex REST now supports CORS.

To access Apex REST classes from JavaScript in a web browser, add the origin that’s serving the script to the CORS whitelist. To add an origin to the CORS whitelist, from Setup, enter CORS in the Quick Find box, then select CORS. Click New, and then enter an origin URL pattern.

Lightning Components

Create Lightning Components with Configurations in the Developer Console.

To use Lightining components in VF page/Community or as a tab. We have to write some kind of interfaces to code itself. With this release, Salesforce makes it easy for developers by giving these options at time of creation of Lightning component/bundle. The following configurations are available for creating a component.

Lightning Tab
Lightning Page
Lightning Record Page
Lightning Communities Page

Debug Lightning Components with the Salesforce Lightning Inspector

Debugging in lightining components were very difficult before this. With this release, Salesforce Lightning Inspector gives you more insight into what’s happening under the covers when you’re developing Lightning components.

The Salesforce Lightning Inspector is a Google Chrome DevTools extension that helps you debug Lightning components and profile component performance.

Lightning Design Tokens (Generally Available)

Capture the essential values of your visual design into named tokens. Define the token values once and reuse them throughout your Lightning components CSS resources. Tokens make it easy to ensure that your design is consistent, and even easier to update it as your design evolves.

More Readable Styling Markup with the join Expression

Markup can get messy when you specify the class names to apply based on the component attribute values. Try using a join expression for easier-to-read markup.

    class="{! join(' ', 
        v.past ? 'pastEvent' : '',
        v.zoomed ? 'zoom' : '',
        v.multiDayFragment ? 'multiDayFragment' : ''
    <!-- content here -->

You can also use a join expression for dynamic styling.

<div style="{! join(';', 
    'top:' + v.timeOffsetTop + '%',
    'left:' + v.timeOffsetLeft + '%',
    'width:' + v.timeOffsetWidth + '%'
    <!-- content here -->

General Enhancements

Limits Increased for More Power

  1. Unlimited custom apps for Professional, Enterprise, or Unlimited Edition org.

  2. Unlimited custom tabs for Professional, Enterprise, or Unlimited Edition org.

  3. Professional Edition orgs can now use up to two custom profiles per license type.

  4. Professional Edition orgs can now use up to two permission sets.

  5. Sandboxes: Professional, Enterprise, and Unlimited Edition orgs include more sandboxes to use for development, testing, and training.

    Developer Sandboxes Included

    1. Professional Edition: 10 (change sets not available)

    2. Enterprise Edition: 25

    3. Unlimited Edition: 100

Partial Copy Sandboxes Included

1. Enterprise Edition: 1

2. Unlimited Edition: 1

Related Tags:

Salesforce   Summer'16