SlideShare a Scribd company logo
1 of 30
Summer ‘15 – Enterprise API
Enhancements
June 4, 2015
#forcewebinar
Speakers
Jay Hurst
Director, Product Management - Platform
@extraidea
#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 any litigation, risks associated with completed and any 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-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These
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!
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!
@salesforcedevs / #forcewebinar
#forcewebinar
▪ 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
Have Questions?
#forcewebinar
Agenda
1. What is the Enterprise API
2. Data Loader for Mac
3. What is a Composite API?
4. Batching REST API Resources
5. TreeSave API (Pilot)
#forcewebinar
What is the Enterprise API?
 Enterprise API consists of our “Data” APIs
– SOAP API
– REST API
– Bulk API
– Streaming and Generic Streaming API
 A few extra odds and ends
– Data Loader
– Outbound Messaging
– Ajax Toolkit
– Replication API
#forcewebinar
Data Loader for Mac
 Data Loader is a client tool to
load and extract data through
the Partner API
– SOAP API
 Mac support one of the largest
Ideas on
success.salesforce.com
– 16K points to date
– Prior to Summer ‘15, only
Windows support
#forcewebinar
Data Loader for Mac Demo
#forcewebinar
What is a Composite API?
 An API that is built by combining existing API functions
– A single request to an API can perform multiple functions
 Orchestration of the composite APIs allow developer
controlled business logic and functionality
– Responses from one API method can be directed as inputs into
another method
– Multiple APIs can be used in a single call to improve performance
 Compositions are key for designing efficient API for use in
mobile development
#forcewebinar
Batching REST Resource
 Resource which accepts multiple REST calls to execute
– A single Batch REST request can execute up to 25 sub-requests
• Sub-requests contains the resource (URI) and the method to execute
• Each sub-request is an unrelated API call
• Sub-requests are executed serially, in order, and as the running user
• As each sub-request completes, the call is committed
– The haltOnError attribute indicates if the batch should stop on any
error that is encountered
– The response will be a JSON object of responses from the sub
requests
#forcewebinar
Example Batch Request
{"batchRequests" : [
{"method" : "POST",
"url" : "v34.0/sobjects/account/",
"richInput" : {"Name" : "NewName", "Industry" : "Tech"}},
{"method" : "GET",
"url" : "v34.0/sobjects/account/describe/"},
{"method" : "GET",
"url" : "v34.0/query?q=select id, name, industry from account order by createddate
desc limit 10 "
}]
}
#forcewebinar
Example Successful Batch Response
{"hasErrors" : false,
"results" : [{
"statusCode" : 201,
"result": {"id" : "001B0000003xiArIAI”, "success" : true, "errors" : [ ]}
}, {
"statusCode" : 200,
"result": {"actionOverrides" : [ ], "activateable" : false, ..., "undeletable" : true, "updateable" : true}
},{
"statusCode" : 200,
"result": {"totalSize" : 10, "done" : true,
"records" : [{
"attributes" : {"type" : "Account”, "url" : "/services/data/v34.0/sobjects/Account/001B0000003xiArIAI”},
...
}]
}
}]
}
#forcewebinar
Example Unsuccessful Batch Response
{"hasErrors" : true,
"results" : [{
"result" : [{"message" : "Required fields are missing: [Name]”,"errorCode" : "REQUIRED_FIELD_MISSING",
"fields" : [ "Name" ]}],
"statusCode" : 400
},{
"result”:[{"message”:"Cannot access this resource in a batch request”,"errorCode”: "INVALID_BATCH_REQUEST”}],
"statusCode" : 400
},{
"result" : [{
"message" : "nselect ids, name, industry from accountn ^nERROR at Row:1:Column:8nNo such column 'ids' on entity
'Account'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your
WSDL or the describe call for the appropriate names.”, "errorCode" : "INVALID_FIELD"
}],
"statusCode" : 400
}]
}
#forcewebinar
Batch REST Demo
#forcewebinar
TreeSave REST Resource
 Creates SObject trees with the same top level object type
– A recursive data structure that contains a root record, its data, and its
child records represented as other sObject trees
– The REST resource manages all of the ID creations and mapping
• Create an Account, Contact, Opportunity, and Note in a single call
 The request can contain the following:
– Up to a total of 200 records across all trees
– Up to five records of different types
– SObject trees up to five levels deep
• You can create 200 top level records, by only providing the top level
– IE – Create 200 Accounts in a single REST call
#forcewebinar
TreeSave REST Resource Usage
 The Developer provides the record relations via a reference
ID
– ReferenceId is used to link related records and to return errors
 Only Insert is supported
 Triggers, processes, and workflow rules fire separately for
each of the object levels
– EX – All triggers fire for all the top level records, then all fire for the
second level records, then third, etc…
 All records are rolled back on any error
– Error will indicate which referenceId had the error so that the
developer can take the appropriate action
#forcewebinar
Example TreeSave Request
{"records" :[
{"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount”, "phone" : "1234567890”, "website" : "www.salesforce.com",
"numberOfEmployees”: "100”, "type" : "Analyst”, "industry" : "Banking",
"Contacts" : {
"records" : [
{"attributes" : {"type" : "Contact", "referenceId" : "ref2"},
"lastname" : "Smith”, "title" : "President”, "email" : "sample@salesforce.com" },
{"attributes" : {"type" : "Contact", "referenceId" : "ref3"},
"lastname" : "Evans”, "title" : "Vice President”, "email" : "sample@salesforce.com”}]
}},
{"attributes" : {"type" : "Account", "referenceId" : "ref4"},
"name”: "SampleAccount2”, "phone”: "1234567890”, "website" : "www.salesforce2.com",
"numberOfEmployees”: "100”, "type" : "Analyst”, "industry" : "Banking”}]
}
#forcewebinar
Example Successful TreeSave Response
{
"hasErrors" : false,
"results" : [ {
"referenceId" : "ref1",
"id" : "001B0000003xiAwIAI"
}, {
"referenceId" : "ref4",
"id" : "001B0000003xiAxIAI"
}, {
"referenceId" : "ref2",
"id" : "003B0000003l3L5IAI"
}, {
"referenceId" : "ref3",
"id" : "003B0000003l3L6IAI"
} ]
}
#forcewebinar
Example Unsuccessful TreeSave Response
{
"hasErrors" : true,
"results" : [ {
"referenceId" : "ref4",
"errors" : [ {
"statusCode" : "REQUIRED_FIELD_MISSING",
"message" : "Required fields are missing: [Name]",
"fields" : [ "Name" ]
} ]
} ]
}
#forcewebinar
TreeSave Demo
#forcewebinar
Building towards a Composite API on Salesforce
 There are a number of existing Composite resources
– Apex REST can be used to build custom logic
• Requires complete design by the developer
– The Batching REST resource allows for the sending of multiple
REST calls in a single round trip
• The calls are unrelated, simply reduces round trips
– The TreeSave REST resource allows creation of multiple
records in a single call
• Limited to insert and all-or-none saves
 Additional resources will be added moving forward
#forcewebinarChallenge Yourself! http://developer.salesforce.com/trailhead
• Interactive learning paths
• Earn badges and points
• Declarative and Programmatic
BRAND NEW! Introducing Trailhead
#forcewebinar
New App Builders
http://www.udacity.com/salesforce
http://ccoenraets.github.io/salesforce-
developer-workshop
Developer Workshop
Fast Track Tutorial for
Experienced Developers
Experienced App Builders
More Free Online Tutorials
#forcewebinar
New York City
June 18, 2015
Join us in the Developer Zone
Salesforce World Tour
Register here: http://bit.ly/SWTNYCreg
Join us at the
Developer Workshop
Register early, seating is limited!
http://bit.ly/DevDaysWorkshop
June 9, 2015
Toronto, Canada
June 25, 2015
San Francisco, CA
#forcewebinar
June 18, 2015
https://developer.salesforce.com/calendar
Deep Dive into Apex Triggers
Upcoming Webinar
#forcewebinar
Survey
Your feedback is crucial to the success
of our webinar programs. Thank you!
http://bit.ly/1AKSfUm
#forcewebinar
Q & A
Jay Hurst
Director, Product Management - Platform
@extraidea
Thank You

More Related Content

What's hot

Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17Salesforce Developers
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Salesforce Developers
 
Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Salesforce Developers
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014David Scruggs
 
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsThe SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsShashank Srivatsavaya (ShashForce)
 
Salesforce API Series: Integrating Applications with Force.com Webinar
Salesforce API Series: Integrating Applications with Force.com WebinarSalesforce API Series: Integrating Applications with Force.com Webinar
Salesforce API Series: Integrating Applications with Force.com WebinarSalesforce Developers
 
Boxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too MuchBoxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too MuchPeter Chittum
 
Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Mark Adcock
 
Atl elevate programmatic developer slides
Atl elevate programmatic developer slidesAtl elevate programmatic developer slides
Atl elevate programmatic developer slidesDavid Scruggs
 
Secure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISecure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISalesforce Developers
 
Build Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForceBuild Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForcevraopolisetti
 
Bringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectBringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectEugenio Roldán Romasanta
 
Build Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectBuild Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectJeff Douglas
 
Unlocking the Hidden Potential of Salesforce Live Agent
Unlocking the Hidden Potential of Salesforce Live AgentUnlocking the Hidden Potential of Salesforce Live Agent
Unlocking the Hidden Potential of Salesforce Live AgentSalesforce Developers
 
Introduction to the Wave Platform API
Introduction to the Wave Platform APIIntroduction to the Wave Platform API
Introduction to the Wave Platform APISalesforce Developers
 
Mastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceMastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceSalesforce Developers
 

What's hot (20)

Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17Building apps faster with lightning and winter '17
Building apps faster with lightning and winter '17
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2
 
Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2
 
Elevate workshop programmatic_2014
Elevate workshop programmatic_2014Elevate workshop programmatic_2014
Elevate workshop programmatic_2014
 
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsThe SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
 
Salesforce API Series: Integrating Applications with Force.com Webinar
Salesforce API Series: Integrating Applications with Force.com WebinarSalesforce API Series: Integrating Applications with Force.com Webinar
Salesforce API Series: Integrating Applications with Force.com Webinar
 
Write bulletproof trigger code
Write bulletproof trigger codeWrite bulletproof trigger code
Write bulletproof trigger code
 
Boxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too MuchBoxcars and Cabooses: When One More XHR Is Too Much
Boxcars and Cabooses: When One More XHR Is Too Much
 
Using Apex for REST Integration
Using Apex for REST IntegrationUsing Apex for REST Integration
Using Apex for REST Integration
 
Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3
 
Atl elevate programmatic developer slides
Atl elevate programmatic developer slidesAtl elevate programmatic developer slides
Atl elevate programmatic developer slides
 
Secure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISecure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part I
 
Build Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForceBuild Amazing Website without coding using Salesforce SiteForce
Build Amazing Website without coding using Salesforce SiteForce
 
Bringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectBringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce Connect
 
Build Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectBuild Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku Connect
 
Unlocking the Hidden Potential of Salesforce Live Agent
Unlocking the Hidden Potential of Salesforce Live AgentUnlocking the Hidden Potential of Salesforce Live Agent
Unlocking the Hidden Potential of Salesforce Live Agent
 
Apex tutorial
Apex tutorialApex tutorial
Apex tutorial
 
Introduction to Apex for Developers
Introduction to Apex for DevelopersIntroduction to Apex for Developers
Introduction to Apex for Developers
 
Introduction to the Wave Platform API
Introduction to the Wave Platform APIIntroduction to the Wave Platform API
Introduction to the Wave Platform API
 
Mastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceMastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced Visualforce
 

Similar to New Powerful API Enhancements for Summer '15

Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...Codemotion
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Salesforce Partners
 
Salesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroSalesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroJames Ward
 
How We Built AppExchange and our Communities on the App Cloud (Platform)
How We Built AppExchange and our Communities on the App Cloud (Platform)How We Built AppExchange and our Communities on the App Cloud (Platform)
How We Built AppExchange and our Communities on the App Cloud (Platform)Dreamforce
 
Salesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedSalesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedJames Ward
 
Salesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeSalesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeJames Ward
 
Mbf2 salesforce webinar 2
Mbf2 salesforce webinar 2Mbf2 salesforce webinar 2
Mbf2 salesforce webinar 2BeMyApp
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platformJohn Stevenson
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API ReviewLydon Bergin
 
S-Controls for Dummies
S-Controls for DummiesS-Controls for Dummies
S-Controls for Dummiesdreamforce2006
 
S-Controls for Dummies
S-Controls for DummiesS-Controls for Dummies
S-Controls for Dummiesdreamforce2006
 
Enterprise API New Features and Roadmap
Enterprise API New Features and RoadmapEnterprise API New Features and Roadmap
Enterprise API New Features and RoadmapSalesforce Developers
 
Summer '15 Release Preview: Platform Feature Highlights
Summer '15 Release Preview: Platform Feature Highlights Summer '15 Release Preview: Platform Feature Highlights
Summer '15 Release Preview: Platform Feature Highlights Salesforce Developers
 
Building Efficient Visualforce Pages
Building Efficient Visualforce PagesBuilding Efficient Visualforce Pages
Building Efficient Visualforce PagesSFDCSregan
 
Elevate london dec 2014.pptx
Elevate london dec 2014.pptxElevate london dec 2014.pptx
Elevate london dec 2014.pptxPeter Chittum
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter ChittumBeMyApp
 
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Salesforce Partners
 
Building Efficient Visualforce Pages
Building Efficient Visualforce PagesBuilding Efficient Visualforce Pages
Building Efficient Visualforce PagesSalesforce Developers
 

Similar to New Powerful API Enhancements for Summer '15 (20)

Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)
 
Salesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroSalesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer Intro
 
How We Built AppExchange and our Communities on the App Cloud (Platform)
How We Built AppExchange and our Communities on the App Cloud (Platform)How We Built AppExchange and our Communities on the App Cloud (Platform)
How We Built AppExchange and our Communities on the App Cloud (Platform)
 
Salesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedSalesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer Advanced
 
Using the Google SOAP API
Using the Google SOAP APIUsing the Google SOAP API
Using the Google SOAP API
 
Salesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeSalesforce Campus Tour - Declarative
Salesforce Campus Tour - Declarative
 
Mbf2 salesforce webinar 2
Mbf2 salesforce webinar 2Mbf2 salesforce webinar 2
Mbf2 salesforce webinar 2
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API Review
 
S-Controls for Dummies
S-Controls for DummiesS-Controls for Dummies
S-Controls for Dummies
 
S-Controls for Dummies
S-Controls for DummiesS-Controls for Dummies
S-Controls for Dummies
 
Enterprise API New Features and Roadmap
Enterprise API New Features and RoadmapEnterprise API New Features and Roadmap
Enterprise API New Features and Roadmap
 
Summer '15 Release Preview: Platform Feature Highlights
Summer '15 Release Preview: Platform Feature Highlights Summer '15 Release Preview: Platform Feature Highlights
Summer '15 Release Preview: Platform Feature Highlights
 
Building Efficient Visualforce Pages
Building Efficient Visualforce PagesBuilding Efficient Visualforce Pages
Building Efficient Visualforce Pages
 
Elevate london dec 2014.pptx
Elevate london dec 2014.pptxElevate london dec 2014.pptx
Elevate london dec 2014.pptx
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum
 
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
 
Building Efficient Visualforce Pages
Building Efficient Visualforce PagesBuilding Efficient Visualforce Pages
Building Efficient Visualforce Pages
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

New Powerful API Enhancements for Summer '15

  • 1. Summer ‘15 – Enterprise API Enhancements June 4, 2015
  • 2. #forcewebinar Speakers Jay Hurst Director, Product Management - Platform @extraidea
  • 3. #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 any litigation, risks associated with completed and any 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-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 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.
  • 4. #forcewebinar Go Social! 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! @salesforcedevs / #forcewebinar
  • 5. #forcewebinar ▪ 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 Have Questions?
  • 6. #forcewebinar Agenda 1. What is the Enterprise API 2. Data Loader for Mac 3. What is a Composite API? 4. Batching REST API Resources 5. TreeSave API (Pilot)
  • 7. #forcewebinar What is the Enterprise API?  Enterprise API consists of our “Data” APIs – SOAP API – REST API – Bulk API – Streaming and Generic Streaming API  A few extra odds and ends – Data Loader – Outbound Messaging – Ajax Toolkit – Replication API
  • 8. #forcewebinar Data Loader for Mac  Data Loader is a client tool to load and extract data through the Partner API – SOAP API  Mac support one of the largest Ideas on success.salesforce.com – 16K points to date – Prior to Summer ‘15, only Windows support
  • 10. #forcewebinar What is a Composite API?  An API that is built by combining existing API functions – A single request to an API can perform multiple functions  Orchestration of the composite APIs allow developer controlled business logic and functionality – Responses from one API method can be directed as inputs into another method – Multiple APIs can be used in a single call to improve performance  Compositions are key for designing efficient API for use in mobile development
  • 11. #forcewebinar Batching REST Resource  Resource which accepts multiple REST calls to execute – A single Batch REST request can execute up to 25 sub-requests • Sub-requests contains the resource (URI) and the method to execute • Each sub-request is an unrelated API call • Sub-requests are executed serially, in order, and as the running user • As each sub-request completes, the call is committed – The haltOnError attribute indicates if the batch should stop on any error that is encountered – The response will be a JSON object of responses from the sub requests
  • 12. #forcewebinar Example Batch Request {"batchRequests" : [ {"method" : "POST", "url" : "v34.0/sobjects/account/", "richInput" : {"Name" : "NewName", "Industry" : "Tech"}}, {"method" : "GET", "url" : "v34.0/sobjects/account/describe/"}, {"method" : "GET", "url" : "v34.0/query?q=select id, name, industry from account order by createddate desc limit 10 " }] }
  • 13. #forcewebinar Example Successful Batch Response {"hasErrors" : false, "results" : [{ "statusCode" : 201, "result": {"id" : "001B0000003xiArIAI”, "success" : true, "errors" : [ ]} }, { "statusCode" : 200, "result": {"actionOverrides" : [ ], "activateable" : false, ..., "undeletable" : true, "updateable" : true} },{ "statusCode" : 200, "result": {"totalSize" : 10, "done" : true, "records" : [{ "attributes" : {"type" : "Account”, "url" : "/services/data/v34.0/sobjects/Account/001B0000003xiArIAI”}, ... }] } }] }
  • 14. #forcewebinar Example Unsuccessful Batch Response {"hasErrors" : true, "results" : [{ "result" : [{"message" : "Required fields are missing: [Name]”,"errorCode" : "REQUIRED_FIELD_MISSING", "fields" : [ "Name" ]}], "statusCode" : 400 },{ "result”:[{"message”:"Cannot access this resource in a batch request”,"errorCode”: "INVALID_BATCH_REQUEST”}], "statusCode" : 400 },{ "result" : [{ "message" : "nselect ids, name, industry from accountn ^nERROR at Row:1:Column:8nNo such column 'ids' on entity 'Account'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.”, "errorCode" : "INVALID_FIELD" }], "statusCode" : 400 }] }
  • 16. #forcewebinar TreeSave REST Resource  Creates SObject trees with the same top level object type – A recursive data structure that contains a root record, its data, and its child records represented as other sObject trees – The REST resource manages all of the ID creations and mapping • Create an Account, Contact, Opportunity, and Note in a single call  The request can contain the following: – Up to a total of 200 records across all trees – Up to five records of different types – SObject trees up to five levels deep • You can create 200 top level records, by only providing the top level – IE – Create 200 Accounts in a single REST call
  • 17. #forcewebinar TreeSave REST Resource Usage  The Developer provides the record relations via a reference ID – ReferenceId is used to link related records and to return errors  Only Insert is supported  Triggers, processes, and workflow rules fire separately for each of the object levels – EX – All triggers fire for all the top level records, then all fire for the second level records, then third, etc…  All records are rolled back on any error – Error will indicate which referenceId had the error so that the developer can take the appropriate action
  • 18. #forcewebinar Example TreeSave Request {"records" :[ {"attributes" : {"type" : "Account", "referenceId" : "ref1"}, "name" : "SampleAccount”, "phone" : "1234567890”, "website" : "www.salesforce.com", "numberOfEmployees”: "100”, "type" : "Analyst”, "industry" : "Banking", "Contacts" : { "records" : [ {"attributes" : {"type" : "Contact", "referenceId" : "ref2"}, "lastname" : "Smith”, "title" : "President”, "email" : "sample@salesforce.com" }, {"attributes" : {"type" : "Contact", "referenceId" : "ref3"}, "lastname" : "Evans”, "title" : "Vice President”, "email" : "sample@salesforce.com”}] }}, {"attributes" : {"type" : "Account", "referenceId" : "ref4"}, "name”: "SampleAccount2”, "phone”: "1234567890”, "website" : "www.salesforce2.com", "numberOfEmployees”: "100”, "type" : "Analyst”, "industry" : "Banking”}] }
  • 19. #forcewebinar Example Successful TreeSave Response { "hasErrors" : false, "results" : [ { "referenceId" : "ref1", "id" : "001B0000003xiAwIAI" }, { "referenceId" : "ref4", "id" : "001B0000003xiAxIAI" }, { "referenceId" : "ref2", "id" : "003B0000003l3L5IAI" }, { "referenceId" : "ref3", "id" : "003B0000003l3L6IAI" } ] }
  • 20. #forcewebinar Example Unsuccessful TreeSave Response { "hasErrors" : true, "results" : [ { "referenceId" : "ref4", "errors" : [ { "statusCode" : "REQUIRED_FIELD_MISSING", "message" : "Required fields are missing: [Name]", "fields" : [ "Name" ] } ] } ] }
  • 22. #forcewebinar Building towards a Composite API on Salesforce  There are a number of existing Composite resources – Apex REST can be used to build custom logic • Requires complete design by the developer – The Batching REST resource allows for the sending of multiple REST calls in a single round trip • The calls are unrelated, simply reduces round trips – The TreeSave REST resource allows creation of multiple records in a single call • Limited to insert and all-or-none saves  Additional resources will be added moving forward
  • 23. #forcewebinarChallenge Yourself! http://developer.salesforce.com/trailhead • Interactive learning paths • Earn badges and points • Declarative and Programmatic BRAND NEW! Introducing Trailhead
  • 24. #forcewebinar New App Builders http://www.udacity.com/salesforce http://ccoenraets.github.io/salesforce- developer-workshop Developer Workshop Fast Track Tutorial for Experienced Developers Experienced App Builders More Free Online Tutorials
  • 25. #forcewebinar New York City June 18, 2015 Join us in the Developer Zone Salesforce World Tour Register here: http://bit.ly/SWTNYCreg
  • 26. Join us at the Developer Workshop Register early, seating is limited! http://bit.ly/DevDaysWorkshop June 9, 2015 Toronto, Canada June 25, 2015 San Francisco, CA
  • 28. #forcewebinar Survey Your feedback is crucial to the success of our webinar programs. Thank you! http://bit.ly/1AKSfUm
  • 29. #forcewebinar Q & A Jay Hurst Director, Product Management - Platform @extraidea