Spring'16 is here: New ForceDotCom Features/Enhancements

ForceDotCom Jan 12, 2016

Hey Guys,

I am going to list down some of features which I think are major ones. Please find the full list in Spring'16 release notes.

Custom Metadata types

  1. Bulk creation enabled with Metadata loader

    Use the custom metadata loader to bulk load custom metadata records to Salesforce from a .csv file. This metadata loader tool can be found here.

  2. Added Support for Custom Picklist Fields

    In addition to number fields, text fields, and more, you can now include custom picklist fields in your custom metdata types. This is a beta feature right now.

  3. Upsert method is allowed

    Upsert support is available for custom metadata types with this release.


  1. Visualforce for Lightning Experience

    Now Vf pages can be used in lightning. This is beta feature for now

  2. Add Visualforce Pages to the Lightning Experience Navigation Menu.

  3. Use User.UITheme and UserInfo.getUiTheme() to Determine User Experience


  1. Create Test Suites of Commonly Used Apex Test Classes
    You have test classes that you run every time you prepare for a deployment or Salesforce releases a new version. You can now create test suites that contain those sets of classes. Rather than selecting all the relevant classes each time you start a test run, you can simply run one or more test suites.

  2. Create and Run Test Suites in the Developer Console
    To create a test suite using the Developer Console, select Test > New Suite. To choose which classes are in a test suite, select Test > Suite Manager > Your Test Suite > Edit Suite.

  3. Stop a Test Run That’s Failing Miserably
    You can now configure test runs to stop executing new tests after a given number of tests fail. You no longer need to waste your time waiting for the results of a run that you’re going to rerun after fixing issues in your org. You can set how many tests can fail in test runs that you execute both in the Developer Console and using the Tooling API.

Test Classes

  1. Set and Modify the CreatedDate Field in Apex Tests
    System.Test.setCreatedDate method is used to set a
    Datetime value for a test-context sObject’s CreatedDate field.

       private class SetCreatedDateTest {
         static testMethod void testSetCreatedDate() {
         Account a = new Account(name='myAccount');
         insert a;
         Test.setCreatedDate(a.Id, DateTime.newInstance(2012,12,12));
         Account myAccount = [SELECT Id, Name, CreatedDate FROM Account
         WHERE Name ='myAccount' limit 1];
         System.assertEquals(myAccount.CreatedDate, DateTime.newInstance(2012,12,12));
  2. Call Test.startTest() to Reliably Reset Limits in Apex Tests
    A block of test code enclosed by the Test.startTest() and Test.stopTest() methods now reliably receives its own block of governor limits. Test.startTest() stores your per-transaction limit counters and temporarily resets them to zero.
    Test.stopTest() restores your limit counters to pre-Test.startTest() values. When your test method finishes, all per-transaction limits reset to zero. Previously, some limits, such as for SOQL queries, didn’t always reset inside a
    Test.startTest()/Test.stopTest() block.

  3. Use @future to Avoid the Dreaded MIXED_DML_OPERATION Error in Apex Tests

  4. Test WSDL-Based Asynchronous Callouts
    This solved the big with Continous objects.

  5. Locate Jobs in the Apex Flex Queue
    You can now query the FlexQueueItem object to find the position of an asynchronous Apex job in the flex queue.

Sandbox Enhancements

  1. Improved Sandbox Copy Engine for Partial and Full Copies with Templates Sandboxes

  2. Increased Developer Sandbox Licenses

Table 1. Developer Sandbox Licenses by Edition
Edition Previous Number of Licenses Licenses in Spring ’16
Enterprise Edition 1 25
Unlimited Edition 15 50
Performance Edition 30 100
  1. Run Script After Sandbox Creation and Refresh
    SandboxPostCopy interface can be used to do this job.

     global class HelloWorld implements SandboxPostCopy {
     	global void runApexClass(SandboxContext context) {
       	System.debug('Hello Tester Pester ' + context.organizationId()
            + ' ' + context.sandboxId() + context.sandboxName());
     	} }


  1. Serve Static Resources from the Visualforce Domain.

  2. PageReference getContent() and getContentAsPDF() Methods Behave as Callouts.

Related Tags:

ForceDotCom   VisualForce   Spring'16   Salesforce   Apex