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_release
4. #forcewebinar
Safe Harbor
Safe 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.
5. #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!
6. #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
8. $50,000 in prizes
New York | Bangalore | Los Angeles | London
FREE EVENT
SALESFORCE1 PLATFORM
SUMMER HACKATHON SERIES
http://summerofhacks.com
#salesforcedevs
12. #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.
17. #forcewebinar
Canvas as a Page Layout Item
Embed 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
18. #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
19. #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
21. #forcewebinar
Salesforce1 - Layouts and Mobile Cards Location
Embed 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
22. #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)
24. #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”
27. #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.
28. #forcewebinar
Batchable Interface
global 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 }
}
30. #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.
31. #forcewebinar
Custom Future Limits
Modifier
@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).
37. #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
38. #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
39. #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
40. #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
42. #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
43. #forcewebinar
Now Generally Available
Chatter Files REST API
Multiple Records and Fields in Workflow
Search Suggested Queries REST API
Analytics Dashboards API
45. #forcewebinar
Next Steps
Get a Pre-Release Org
– http://bit.ly/summer14prerel
Download the Release Notes
– http://developer.salesforce.com/releases
47. #forcewebinar
Agenda
Tuesday, June 17th Wednesday, June 18th
9am – 10.45 PT Sales Cloud 9am – 10.45 PT Service
Cloud
11.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
Are you going to dreamforce this year? ADD DEVELOPER DISCOUNT CODE TO DF SLIDE
The interface itself allows us to introduce logic when a queue of objects is being run.
POTENTIAL DEMO: CleanUpRecords
They should create a brand new DE org if they have not done so recently. They should not use a Trial, Sandbox or Production org.
Emphasize our DE orgs are free and do not expire (they are not product trials)