Winter ’15 – Developer and Platform Style

Is that time of the year, you’ll see many blogs going over these new features of Winter ’15, I want to take a moment and specifically focus on the platform and development.  As always not all inclusive, just my take and highlights I see as I go through the release notes, enjoy Winter ’15 !

Force.com Customization

Force.com Home Page Recent Items –> now includes more platform pieces like approval processes, and workflow pieces.  Less clicks is always good.

Advanced Setup Search (Beta) –> This will now be enabled by default in all orgs.  There are also some items added to the results (workflow items, email templates, queues, static resources, etc.).  An object column is also available now to show any parent objects.

advanced setup search

Custom Permissions –> are now GA and will include a new global variable $Permission that can be used on run time to check a users custom permissions.

Salesforce1 Platform Connect –> Use this tool and external objects to access data in your external systems.  Exposing this brings you all the goodness of the Salesforce1 platform.  Look for this to further strengthen the analytics offerings coming up with a “full data perspective”.

Flow:

Time-based Processing –> Look for the new Wait element in flow to automate your time based periods.  Great new feature to encapsulate and connect those stringed out processes that require necessary time intervals. (Example, perform a record create or update then two days later send an email to the record owner.)

Collection Variables –> a new flow resource that can be manually populated or from other flow resources.  This is for more primitive type values like text, numbers, etc.  You can also use collections to send multiple email addresses into a Send Email Element.

Submit Record for Approval / Post to Chatter –> this is now GA, you can configure a flow to submit a record for approval.  Also new, you can post to chatter from flow.    In the past these needed an Apex class as a plug-in.  Continued example of flow eating up the real estate of code requirements, love it!

Login Flows –> this one is neat, and caught me off guard.  This allows post login procedures to occur with certain profiles.  Basically any process you want to force the user into post login (terms agreement, additional data capture, second factor authentication, etc) you can now accomplish with Login Flows.

 

Force.com Development

Deployment –> Yes oh yes we can now deploy apex with active jobs (schedule apex, batch, etc).  This is not by default, make sure to turn this option on. (Setup\Deployment Settings)

Quick Deploy (Pilot) –> So I’m interested to see how successful this becomes.  Quick Deploy allows you to push components to production and skip all Apex test runs if the components have been validated in the past four days.  For any environment that has many, many unit test, you know how painful this can be (upwards of 30-45 mins per deploy attempt).  Under the pilot this can only be executed through the Salesforce user interface (Deployment details).

deployTool

Visualforce Remote Objects –>  You’ll see alot of posts about this throughout the developer community (especially Force.com MVP’s).  This is the ability for basic DML actions against your Salesforce objects, directly through JavaScript.  This has been in pilot/beta for a while and now its GA.  Very powerful option from a UI perspective and mobile.

Visualforce Style Sheet and Resources –> Standard Style Sheet loads in Visualforce are now a combined connection load.  No risk or action needed on a developers part, content is unchanged, just wanted to point out the potential performance improvement.  There will also be a critical update for “Serve static resources from Visualforce Domain.”  This will change how resources are loaded, currently through the salesforce.com domain, to the force.com/visualforce domain.  If you’re currently loading resources through the $Resource global variable you should be fine.  Otherwise if you have a absolute reference this will break.

Asynch Jobs through Queueable Interface – Great tool and control for developers for asynchronous  apex.  Some benefits over future calls are you get your job id and ability to chain jobs.  (Warning: won’t be able to chain in apex unit testing).

Future and Callout Limits –> have been increased from 10 to 50 (future) and 100 (callout).

Trigger support for Territory –> now available for Territory2 and UserTerritory2Association.

Apex Class changes –>  each release we get little nuggets of functionality in the apex class changes and additions.  I always enjoy going through these and there are usually a decent amount.  Some that piqued my interest:

  • Queable Interface and queable methods in the Limits class (obviously with the new feature)
  • InstanceOf (change) will return false if lefthand operand is null.  (Not retroactive, have to bump up to API 32).
  • E and PI now available in Math class.
  • Handful of Authentication classes and methods added, same for ProcessSubmitRequest for approvals.
  • New URL methods in the Network class that will be handy for anyone developing with communities.

Force.com IDE Improvements –> this is somewhat old news but is being announced through this release cycle, the Force.com IDE for Eclipse went open source and can now be found on GitHub.  You can clone the repo and fiddle away with it.  Look for more info and sessions on IDE building and the tooling API at Dreamforce this year.

API’s –>  big addition to the SOAP and REST API is the List View resource, as you’ll probably see coined the List View API.  Very excited about the potential of this addition and ability to read those resources and execute SOQL behind the List View.