In this post, I would be only talking about Generally available (GA) features, excluding pilots and Beta. Saving those awesome features for suitable time to come. So, here are some of my favorite picks from Spring 17.
Composite Resource
Imagine we are doing REST API call from external system by creating Account first and then contact. In between if internet connection is gone or user closes browser and only Account created without contact ? From Spring 17, we can reduce number of REST API calls made by combining them in single request. Advantage of this feature would be easier transaction management and API limit saving. You can have up to 25 subrequests in a single call. Up to 10 of these subrequests can be query operations, including Query, QueryAll, and “Query More” requests to obtain the next batch of query results.
reCAPTCHA on Web-to-Lead and Web-to-Case
If you are using Web-to-Lead or Web-to-Case for your Salesforce instance, you may already know the spamming problem. From this release, we can add reCAPTCHA in web forms which will reduce spamming problem drastically.
In my opinion, even this is not full proof solution. If spammer knows your Org Id, they can easily copy paste Web-to-Lead or Web-to-Case code without reCAPTCHA and start over again. However, I will say, something is better than nothing.
Bookmark your favorite pages
Your Salesforce user navigates same pages over and over and everytime they use minimum 4-5 clicks ? Its time to save the click using favorite feature for Lightning user interface. We can bookmark any page in Salesforce and then navigate quickly by using favorite icon available at top right corner as shown in below image
Limit global search to specific Object
In Global search, now we can limit our search to specific object only, saving clicks and improving speed.
Filter Reports via URL Parameters
Like Salesforce classic, we can create a report URL to dynamically filter on report. We can use fv0 , fv1 … etc in URL to specify filter. fv0 represents first condition, fv1 second and so on.
Example :
https://pre-releaseinstance-dev-ed.lightning.force.com/one/one.app#/sObject/00OB0000001rOUjMAM/view?t=1485139902948&fv0=uni
Run Flow with Lightning Skin
If you are a visual flow user, there are two good news for you. First, Visual flow now displayed in Lightning skin from Spring 17. However, you would need to enable it first using below steps
- From Setup, go to Process Automation Settings
- Select Enable Lightning Runtime for Flows
Two Column Layout in Flow
Do you remember my post regarding creating two column layouts in flow ? I know, I know, that you didn’t liked that JavaScript approach to convert flow into two column layout. And honestly, even I was not happy with the solution however that was the only way known to me but not now.
Well, its new year and gift from Salesforce 🙂 . Forget about my annoying post and Javascript I shared with you to convert flow into two column. Salesforce supports two column layout by default from Spring 17. All you have to do is enable Lightning Runtime in Flows and while invoking flow, pass below parameter in URL
/flow/flowName?flowLayout=twoColumn
and your flow will look like
Omni Channel Supervisor (Classic Only)
If your Salesforce instance using Omni channel then this feature would be your favorite topping over the delicious pizza. Using Omni Channel Supervisor, manager of CSR’s can now check the health of their call center using Agents, Queues and Work tabs. Below image shows, how it looks :
Content Security Policy (CSP) Trusted Sites
Sure you remember remote site settings used by Visualforce pages, which allows it to access third party resources like JavaScript, CSS etc. Questions is, how do we do for Lightning Component ?
The Lightning Component framework uses Content Security Policy (CSP) to control the source of content that can be loaded on a page. To use third-party APIs that make requests to an external (non-Salesforce) server, add the server as a CSP Trusted Site.
One way data binding for Lightning Components
In Lightning Component, we use {!expression} notation to bind values to components. However, this notation indicates bidirectional binding. Aura framework handles its life cycle and update Html DOM tree whenever value changes. As you understand, this render cycle could be heavier causing performance issue in application. If you only need to display value and don’t bother Aura framework to watch and render it, how do we do it ? From Spring 17, start using {#expression} notation for unbound expressions. It will improve performance of Lightning Component.
Performance warning in Console
To improve performance of Lightning component and make sure we follow best practices, Lightning CLI does fantabulous job. Taking one step further, Lightning component will display possible performance anti-pattern in browsers console as well from this release. Note : This would appear only if debug mode is enabled.
Share Lightning App with non-authenticated Users
Add the ltng:allowGuestAccess interface to your Lightning Out dependency app to make it available to users without requiring them to authenticate with Salesforce. This interface lets you build your app with Lightning components, and deploy it anywhere and to anyone. A Lightning Out dependency app with the ltng:allowGuestAccess interface can be used with Lightning Components for Visualforce and with Lightning Out.
Example :
<aura:application access="Global" extends="ltng:outApp" implemenets="ltng:allowGuestAccess"> <aura:dependency resource="c:componentName" /> </aura:application>
Developer friendly error message for Lightning Components
Did you ever searched needle in hay stack ? You may have, if you encountered error during lightning component development and don’t have any idea about which resource bundle is responsible for that. Check your self how error looks like
Now, check below error message in Spring 17. That’s right, I know its party time
Monitor the Status of Apex Batch Jobs
Get more information about the status of Apex batch jobs. For a particular batch class, you can get information about parent jobs, such as submitted and completion dates and the number of batches processed or failed. This change applies to both Lightning Experience and Salesforce Classic.
Below are some other important changes in Apex classes
- Only One Test Setup Method per Class is Allowed
- Make Web Service Callouts from Chained Queueable Jobs
Below is slideshare file of same topic presented in Connecticut Salesforce Developer Group in Jan 2017.
Leave a Reply