summer '14 release developer preview
DESCRIPTION
Description: Summer ‘14 offers exciting new features for developers. Join Developer Evangelist Josh Birk to get some highlights on the new release, including changes to the Salesforce1 app and Apex. Also on the webinar will be Skip Sauls of the Visualforce team to show updates to the recently added Remote Objects, as well as Kari Hotchkiss to demo some of the enhancements that Canvas will be seeing this season. Key Takeaways: ::Get highlights of the upcoming Summer ‘14 release ::Dive into how these changes will effect features like Apex and Visualforce ::See how you can preview these features as the release nears Intended Audience: This webinar is geared towards existing Force.com developers Recommended Resources: https://developer.salesforce.com/en/events/webinars/summer_2014_releaseTRANSCRIPT
Summer ‘14 Developer PreviewJune 12, 2014
#forcewebinar
Speakers
Joshua Birk
Developer Evangelist@joshbirk
#forcewebinar
Speakers
Kari Hotchkiss Senior Quality Engineer@karihotchkiss
Skip SaulsDirector,
Product Management
@skipsauls
#forcewebinar
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
#forcewebinar
Go Social!
@salesforcedevs / #forcewebinar
Salesforce Developers
+Salesforce Developers
Salesforce Developers
Salesforce Developers The video will be posted to YouTube & the webinar recap page
(same URL as registration).
This webinar is being recorded!
#forcewebinar
Have Questions?
Don’t wait until the end to ask your question! – Technical support will answer questions starting now.
Respect Q&A etiquette– Please don’t repeat questions. The support team is
working their way down the queue.
Stick around for live Q&A at the end– Speakers will tackle more questions at the end, time-
allowing.
Head to Developer Forums– More questions? Visit developer.salesforce.com/forums
#forcewebinar
Agenda
Salesforce1 Updates
Canvas Updates
Apex Updates
Visualforce Updates
$50,000 in prizesNew York | Bangalore | Los Angeles | London
FREE EVENT
SALESFORCE1 PLATFORMSUMMER HACKATHON SERIES
http://summerofhacks.com
#salesforcedevs
Force.com FridayWeekly webinar series
October 13-16, 2014 •
San Francisco, CA
$899 DEVELOPER DISCOUNT CODE:D14DVLPRhttp://bit.ly/
dfweb14
#devzone
#forcewebinar
Salesforce1 Updates
#forcewebinar
Actions no longer tied to Chatter
Without Chatter, you will still have Salesforce1 specific actions.
You just won’t have the standard Chatter actions such as Post, File, Link, Poll, and Thanks.
#forcewebinar
Approvals in Salesforce1
#forcewebinar
Canvas in Mobile Cards and Page Layouts
#forcewebinar
Canvas Updates
#forcewebinar
Force.com Canvas – Summer ’14
Kari HotchkissSenior Quality Engineer @karihotchkiss
#forcewebinar
Canvas as a Page Layout ItemEmbed your Canvas App
directly in a Page Layout without
using a Visualforce Container
Embed your Canvas App directly in a
Page Layout without using a
Visualforce Container
#forcewebinar
Record Attachment
The fields requested will be returned in the “record” object
in the signed request and context
You can set the record fields in the Apex Lifecycle handler
and/or the Visualforce component
You can set the record fields in the Apex Lifecycle
handler and/or the Visualforce component
#forcewebinar
Apex Lifecycle Handler and Canvas URL Override
Using an Apex Lifecycle Handler,
you can override the default behavior of the signed request
and context
You can use custom logic to
override the default Canvas
URL
#forcewebinar
DemoPage Layout Item, Record Object, Apex Lifecycle
Handler
#forcewebinar
Salesforce1 - Layouts and Mobile Cards LocationEmbed your Canvas
App directly in a Page Layout or as a
Mobile Card
Canvas Apps can be
displayed in Record Detail and in Mobile Cards in S1
Canvas Apps can be displayed in
Record Detail and in Mobile Cards in
S1
Embed your Canvas App directly in a Page Layout or as a Mobile
Card
#forcewebinar
Salesforce1 - Orientation Event and Mobile Navigation Canvas Icons
Canvas apps can use their own logo, or the default Puzzle Piece
logo
Rotating your device sends an event letting the canvas app know which
orientation you are at (0, -90, or 90 degrees)
#forcewebinar
DemoCanvas in Salesforce1
#forcewebinar
User Approved Signed Request Apps
Your canvas app can then kick into an OAuth flow if a
signed request is not POST’ed. We will handle the decision on when to send the signed request
When managing your Canvas Apps, you can
now select the “Permitted Users” to “All users may
self authorize”
#forcewebinar
DemoUser Approved Signed Request Apps
#forcewebinar
Apex Updates
#forcewebinar
Flex Queues [PILOT] Submit batch jobs beyond the allowed limit of
five queued or active jobs.
Up to 100 batch jobs can be in the holding status.
When system resources become available, the system picks up jobs from the Apex flex queue and moves them to the batch job queue.
#forcewebinar
Batchable Interfaceglobal with sharing class WHUtil implements Database.Batchable<sObject>
{
global Database.QueryLocator start(Database.BatchableContext BC)
{ //Start on next context }
global void execute(Database.BatchableContext BC,
List<sObject>scope)
{ //Execute on current scope }
global void finish(Database.BatchableContext BC)
{ //Finish and clean up context }
}
#forcewebinar
Flex Queues
#forcewebinar
Custom Future Limits [PILOT]
Specify even higher values for these and for additional limits in future methods.
If you were exceeding a governor limit in your future method, or if you think a future method requires a higher limit, you can increase this limit for your future method.
#forcewebinar
Custom Future LimitsModifier
@future(limits='2xSOQL') Number of SOQL queries limit is doubled (400).
@future(limits='3xSOQL') Number of SOQL queries limit is tripled (600).
@future(limits='2xDML') Number of DML statements limit is doubled (300).
@future(limits='3xDML') Number of DML statements limit is tripled (450).
@future(limits='2xDMLRows')1 Number of records that were processed as a result of DML operations is doubled (20,000).
@future(limits='3xDMLRows')1 Number of records that were processed as a result of DML operations is tripled (30,000).
#forcewebinar
@future(limits='2xHeap') public static void myFutureMethod() { // Your code here }
Setting @future limits
#forcewebinar
Visualforce Updates
#forcewebinar
Visualforce Remote Objects Enhancments
Geolocation Support – Access geolocation fields
Upsert Operation – Shortcut for update/create
Orderby Condition – Sort order for queries
Where Condition – New Operators: ne, lte, gte
Remote Method Overrides – Replace default behavior
#forcewebinar
<apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> <apex:remoteObjectField name="skipdev__Notes__c" jsShorthand="Notes"/><apex:remoteObjectField name="Location__Longitude__s" jsShorthand="Longitude"/> <apex:remoteObjectField name="Location__Latitude__s" jsShorthand="Latitude"/> </apex:remoteObjectModel></apex:remoteObjects>
…var c = new RemoteObjectModel.Contact();c.retrieve({where: { Id: { eq: id } } }, function(err, records) { var record = records[0]; var lat = record.get("Latitude”); var lng = record.get(”Longitude”) var latlng = new google.maps.LatLng(lat, lng); ….
Code Sample – Geolocation
#forcewebinar
function addUpdateContact(e){ var record = new RemoteObjectModel.Contact({…}); if (cId) { record.set('Id', cId); }
record.upsert(updateCallback);}
Code Sample - upsert
#forcewebinar
function getAllContacts() { var c = new RemoteObjectModel.Contact(); c.retrieve({ limit: 100, orderby: [ {FirstName: "ASC"}, {LastName: "ASC"} ], where: {FirstName: {ne: "Andy"} } }, function (err, records) { … } );}
Code Sample – orderby and where conditions
#forcewebinar
<apex:page controller="skipdev.ContactOverrideController">
<apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> </apex:remoteObjectModel></apex:remoteObjects>
public class ContactOverrideController {
@RemoteAction public static Map<String, Object> retrieve(String type, List<String> fields, Map<String, Object> criteria) { Map<String, Object> result = RemoteObjectController.retrieve(type, fields, criteria); // Append to, transform, or otherwise modify the result object …. return result; }}
Code Sample – Remote Method Overrides
#forcewebinar
public with sharing class myControllerExtension implements Util {
private final Account acct; public Contact newContact {get; set;} public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); }
public PageReference associateNewContact(Id cid) { newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1]; newContact.Account = acct; update newContact; }}
Code Sample
#forcewebinar
Visualforce New PDF Pilot
Asynchronous Service– Non-blocking on app server
– Scalable
Webkit Based – More accurate rendering to PDF– CSS, JavaScript, Images
– Unicode, RTL
Demo
#forcewebinar
Other Visualforce Updates
API versioning for sforce.one
Salesforce CSS and JS optimization
#forcewebinar
Updated Governor Limits
Describe Limits Removed– Limits for all Apex describe calls have been removed for
all API versions. Describe calls include describes for sObjects, fields, field sets, child relationships, picklists, and record types.
Developer Edition API Limits– Updated from 5,000 to 15,000
#forcewebinar
Now Generally Available
Chatter Files REST API
Multiple Records and Fields in Workflow
Search Suggested Queries REST API
Analytics Dashboards API
#forcewebinar
Resources
http://developer.salesforce.com
http://developer.salesforce.com/releases
http://bit.ly/summer14prerel
#forcewebinar
Next Steps
Get a Pre-Release Org– http://bit.ly/summer14prerel
Download the Release Notes– http://developer.salesforce.com/releases
#forcewebinar
Free Developer Environment
http://developer.salesforce.com/join
#forcewebinar
Agenda
Tuesday, June 17th Wednesday, June 18th
9am – 10.45 PT Sales Cloud 9am – 10.45 PT Service Cloud11.30am – 1 PT Salesforce1 Mobile App 11.30am – 1 PT Chatter / CommunitiesJoin our Product Managers as they take us through their release highlights and demos and get the inside track on their plans for the rest of 2014.
Register here – http://bit.ly/SummerReleaseReadiness
#forcewebinar
Survey
Your feedback is crucial to the successof our webinar programs. Thank you!
http://bit.ly/Summer14Webinar
#forcewebinar
#forcewebinar
Q & A
#forcewebinar
Your feedback is crucial to the successof our webinar programs. Thank you!
http://bit.ly/Summer14Webinar