salesforce1 platform elevate la workshop dec 18, 2013
DESCRIPTION
Presentation from the Salesforce1 Platform ELEVATE workshop on December 18, 2013. The event took place at USC's Davidson Continuing Education Conference Center. Developer Evangelists Samantha Ready and Pat Patterson were on hand to present and lead attendees through various hands-on exercises.TRANSCRIPT
![Page 1: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/1.jpg)
Developer Workshop
Pat PattersonDeveloper Evangelist Architect@[email protected]
Samantha ReadyDeveloper Evangelist@[email protected]
![Page 2: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/2.jpg)
Internet Username / PasswordSF13 / SF13
http://bit.ly/dfc_beg_workbook
Login and Get Ready
![Page 3: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/3.jpg)
Be Interactive
![Page 4: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/4.jpg)
Free Developer
Environment
http://developer.force.com/join
![Page 5: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/5.jpg)
Online
Workbook
http://bit.ly/dfc_beg_workbook
![Page 6: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/6.jpg)
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 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, 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, 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-K for the most recent fiscal quarter ended July 31, 2011. This document and others 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 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.
![Page 7: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/7.jpg)
Introduction to the Salesforce1 Platform
![Page 8: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/8.jpg)
Salesforce1 Platform
Core Services
Chatter
Multi-langua
ge
Translation
Workbench
Email Services
Analytics
CloudDatabase
Schema
Builder
Search
Visualforce1
Monitoring
Multi-tenant
Apex
Data-level
Security
Workflows
APIs
Mobile Service
s
Social
APIs
Analytics
APIs
Bulk APIs
REST APIs
Metadata
APIs
SOAP APIs
Private App
Exchange
Custom
Actions
Identity
Mobile Notificat
ions
Tooling
APIs
Mobile Packs
Mobile SDK
Offline Support
Streaming APIs
Geolocation
ET 1:1 ET Fuel
Heroku1
Heroku Add-Ons
Sharing
Model
ET API
![Page 9: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/9.jpg)
Build Employee Apps Fast with the Salesforce1 App
All your past investments...
Flexible UI
Notifications Platform
Publisher Actions
...are now in the future
Download the Salesforce1 App today.
All Your Customization
s
All Your Devices
All Your CRM
All Your Apps
![Page 10: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/10.jpg)
Salesforce1 Platform
Salesforce is a Platform Company. Period.-Alex Williams, TechCrunch
500MAPI Calls Per Day6BLines of
Apex4M+Apps Built on the Platform
72BRecords Stored
![Page 11: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/11.jpg)
1.4 Million
![Page 12: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/12.jpg)
Data Modeling
![Page 13: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/13.jpg)
Spreadsheet Versus ApplicationRelational DataValidated dataProcess driven workflowsApproval SystemField AuditingUsers, Profiles and PermissionsEnterprise Collaboration
OR
With the same amount of programming…
![Page 14: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/14.jpg)
Let’s Build an App
![Page 15: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/15.jpg)
Warehouse Application Requirements
• Track price and inventory on hand for all merchandise
• Create invoices containing one or more merchandise items as a line items
• Present total invoice amount and current shipping status
![Page 16: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/16.jpg)
Warehouse Application Requirements
• Track price and inventory on hand for all merchandise
• Create invoices containing one or more merchandise items as a line items
• Present total invoice amount and current shipping status
![Page 17: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/17.jpg)
Warehouse Application Requirements
• Track price and inventory on hand for all merchandise
• Create invoices containing one or more merchandise items as a line items
• Present total invoice amount and current shipping status
![Page 18: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/18.jpg)
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
Number Status Count Total
INV-01 Shipped 16 $370
INV-02 New 20 $200
Invoice Line Items
Invoice Line Merchandise Units Sold
Unit Price
Value
INV-01 1 Pinot 1 15 $20
INV-01 2 Cabernet 5 10 $150
INV-01 3 Malbec 10 20 $200
INV-02 1 Pinot 20 50 $200
![Page 19: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/19.jpg)
ChatterSocial framework for the enterprise
![Page 20: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/20.jpg)
Tutorial 100Optional: Tutorial 110
![Page 21: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/21.jpg)
DECLARATIVE LOGIC
![Page 22: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/22.jpg)
Declarative AppsCreating business applications with clicks not code
![Page 23: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/23.jpg)
Spreadsheet Versus Application
![Page 24: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/24.jpg)
Formula FieldsOperations for performing common logic
![Page 25: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/25.jpg)
Excel style formulas
Support for commons functions
Math
Text
Date & Time
Logical
Can chain functions together:
AND ( OR (
ISPICKVAL(StageName, "Closed Won"),
ISPICKVAL(StageName, "Negotiation/Review")),
ISBLANK(Delivery_Date__c) )
![Page 26: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/26.jpg)
Validation RulesFormulas which block data entry if evaluated as true
![Page 27: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/27.jpg)
WHEN THENIF
Record isbeing
inserted or updated
Formula evaluates to
true
Return error message
![Page 28: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/28.jpg)
Roll-Up FieldsField type calculating on rows of child data
![Page 29: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/29.jpg)
Child of Master-Detail
Count or Aggregate
![Page 30: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/30.jpg)
WorkflowsEvent based business logic
![Page 31: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/31.jpg)
When this happens
Meets this Criteria?
Perform These Actions
![Page 32: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/32.jpg)
TaskOutbound Message
Update Field
![Page 33: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/33.jpg)
ApprovalsSystem to route approvals through an organization
![Page 34: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/34.jpg)
Track Approval History
Define Criteria
Define Actions
![Page 35: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/35.jpg)
Single/Multi/Skip step processes
Route based on roles, or queues
Approval via emails or Chatter
![Page 36: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/36.jpg)
SecurityIdentity, data security and user services
![Page 37: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/37.jpg)
User Profiles
Groups, Queues and Hierarchies
Permission Sets
SSO, SAML, OAuth 2.0
Connected Apps
![Page 38: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/38.jpg)
TUTORIAL 120OPTIONAL: TUTORIAL 150
![Page 39: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/39.jpg)
LUNCH:
Downstairs
![Page 40: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/40.jpg)
APEX
![Page 41: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/41.jpg)
ApexCloud based programming language
![Page 42: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/42.jpg)
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; }}
Class and Interface based
Scoped Variables
Inline SOQL
Inline DML
Apex Anatomy
![Page 43: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/43.jpg)
DEVELOPER CONSOLE
![Page 44: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/44.jpg)
Controllers Inbound/OutboundEmail Services
Custom API andHTTP Callouts
TriggersScheduled and Batched Tasks
Common Use Cases
![Page 45: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/45.jpg)
trigger MerchandiseTrigger on Merchandise__c (before insert, before update) {
Merchandise__c[] merch = Trigger.new; if(Trigger.isInsert) {
MerchandiseUtil.checkMerchandise(merch); } // Do more stuff...}
Object Definition
Event Definition
Trigger.old and new
Bulkify code
Trigger Anatomy
![Page 46: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/46.jpg)
@isTeststatic public void testRequiredFields() { Merchandise__c m = new Merchandise__c(Name = 'Test'); try { insert m; System.assert(false, 'Shouldn\'t be able to insert Merchandise without’ + ' quantity & price!'); } catch (DMLException e) { // Expect to see an exception here – all is good } m.Quantity__c = 0; m.Price__c = 9.99; insert m;}
Unit Testing
![Page 47: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/47.jpg)
public WarehouseCSVController() {Boolean dummy =
ApexPages.currentPage().getParameters().get(’dummy') != null;if (dummy) {
allMerchandise = new List<Merchandise__c>();for(Integer x = 0; x < 1500; x++) {
Merchandise__c m = new Merchandise__c( Name = 'Widget ’+ String.valueOf(x), Quantity__c = 100, Price__c = 49.99);
allMerchandise.add(m);}
} else {allMerchandise =
WarehouseDataQuery.getAllMerchandise();}
}
Unit Testing
![Page 48: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/48.jpg)
TUTORIAL 300
![Page 49: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/49.jpg)
VISUALFORCE
![Page 50: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/50.jpg)
Model View ControllerApplication design paradigm to divide data, logic and UI
![Page 51: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/51.jpg)
VisualforceCloud based component framework for interfaces
![Page 52: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/52.jpg)
Standard ControllersCustom ControllersCustom Extensions
Data bound components
Controller Callbacks
Visualforce Anatomy
<apex:page StandardController="Contact" extensions="duplicateUtility" action="{!checkPhone}">
<apex:form>
<apex:outputField var="{!Contact.FirstName}” /> <apex:outputField var="{!Contact.LastName}" />
<apex:inputField var="{!Contact.Phone}" /> <apex:commandButton value="Update" action="{!quicksave}" />
</apex:form>
</apex:page>
![Page 53: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/53.jpg)
@RemoteAction public static String updateMerchandiseItem(String productId, Integer newInventory) { List<Merchandise__c> m = [SELECT Id, Total_Inventory__c from Merchandise__c
WHERE Id =: productId LIMIT 1]; if (m.size() > 0) { m[0].Total_Inventory__c = newInventory; try { update m[0]; return 'Item Updated'; } catch (Exception e) { return e.getMessage(); } } else { return 'No item found with that ID'; } } }
JavaScript Remoting Access Apex from JavaScript
Asynchronous Responses
$(".updateBtn").click(function() { var id = j$(this).attr('data-id'); var inventory = parseInt(j$("#inventory"+id).val()); $.mobile.showPageLoadingMsg();
MobileInventoryExtension.updateMerchandiseItem(id, inventory,handleUpdate);});
Apex
JavaScript in
Visualforce
![Page 54: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/54.jpg)
<apex:component controller="GeoComponentController">
<apex:attribute name="lat" type="Decimal" description="Latitude for geolocation query" assignTo="{!lat}” />
<apex:attribute name="lon" type="Decimal" description="Longitude for geolocation query" assignTo="{!lon}” />
<c:GeoComponent lat=”8.9991" lon=”10.0019" />
Custom Components
![Page 55: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/55.jpg)
<apex:page > <apex:insert name="detail" /> <div style="position:relative; clear:all;"> <apex:insert name="footer" /> </div></apex:page>
<apex:page StandardController="Invoice__c" > <apex:composition template="WarehouseTemplate"> <apex:define name="detail"> <apex:detail subject="{!Invoice__c.Id}" /> </apex:define>
Page Templates
![Page 56: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/56.jpg)
<chatter:follow/>
<chatter:newsfeed/>
<chatter:feed/>
<chatter:followers/>
<chatter:feedAndFollowers/>
Chatter Components
![Page 57: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/57.jpg)
Email Templates Generate PDFsEmbed in Page Layouts
Mobile Interfaces Page Overrides
Common Use Cases
![Page 58: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/58.jpg)
TUTORIAL 330
![Page 59: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/59.jpg)
INTEGRATION
![Page 60: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/60.jpg)
OAuthIndustry standard method of user authentication
![Page 61: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/61.jpg)
RemoteApplication
SalesforcePlatform
Invoke OAuth
User logs in,Tokens sent to callback
Call API
Return Data
Maintain session withrefresh token
OAuth2 Flow
![Page 62: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/62.jpg)
WORKBENCH
![Page 63: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/63.jpg)
REST APIAPI leveraging industry standard HTTP
![Page 64: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/64.jpg)
MobileApplication
SalesforcePlatform
login.salesforce.com
REST API
1. Authenticate
/services/data/query?q=SELECT+Id,+Name+FROM+Account
2. Access API
{ “Id” : “001E0000002Jv2bIAC”, “Name” : “GenePoint”}
3. Get JSON or XML
![Page 65: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/65.jpg)
WORKBENCH
![Page 66: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/66.jpg)
SOAP APIXML messaging and WSDL based API
![Page 67: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/67.jpg)
Java WebServer
SalesforcePlatform
login.salesforce.com
SOAP API
1. Authenticate
<QUERY><SOQL>SELECT Id from Account</SOQL></QUERY>
2. Access API
<RECORDS><RECORD type=“Account”><id>oax02fdr756aFdad</id>
</RECORD></RECORDS>
3. Get XML
![Page 68: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/68.jpg)
Bulk APIAsynchronous API for handling large datasets
![Page 69: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/69.jpg)
ETLTool
SalesforcePlatform
Bulk API
2. Push Updates
TITLE: AppCoSTREET: 1 Market Street
REF:0001
1. Pull Recent RecordsLegacy
Database
![Page 70: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/70.jpg)
Streaming API
Bayeux implementation for real-time delivery of data
![Page 71: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/71.jpg)
JavaWeb Server
SalesforcePlatform
Streaming API
1. Handshake
2. Subscribe to Topic
3. Get Updates
![Page 72: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/72.jpg)
WORKBENCH PUSH TOPICS
![Page 73: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/73.jpg)
TUTORIAL 370
![Page 74: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/74.jpg)
Salesforce1 Customization
![Page 75: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/75.jpg)
Double-click to enter title
Double-click to enter text
The Wrap Up
![Page 76: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/76.jpg)
check inbox http://bit.ly/seattledevworkshp328
![Page 77: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/77.jpg)
Double-click to enter title
Double-click to enter text
@forcedotcom@metadaddy
@samantha_ready
#forcedotcom#askforce
![Page 78: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/78.jpg)
Double-click to enter title
Double-click to enter text
Join A Developer User Group
http://bit.ly/fdc-dugs
![Page 79: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/79.jpg)
![Page 80: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/80.jpg)
Double-click to enter title
Double-click to enter text
Become A Developer User Group Leader
Email:April Nassi
![Page 81: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/81.jpg)
Double-click to enter title
Double-click to enter texthttp://developer.force.com
![Page 82: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/82.jpg)
THANK YOU
![Page 83: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/83.jpg)
![Page 84: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/84.jpg)
Fundamentals for the Enterprise
Mobile Social Identity Data Marketplace
![Page 85: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/85.jpg)
Mobile SDKiOS and Android SDK for developing with Force.com
![Page 86: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/86.jpg)
Mobile SDK: Accelerate App Development
API WrappersInteract with Salesforce REST APIs with popular mobile platform languages
Secure Offline StorageStore business data on a device with enterprise-class encryption
Push NotificationsDispatch real-time alerts directly to mobile devices
Tools for building native, hybrid, and HTML5 apps on iOS and Android
OAuth2Secure authentication and refresh token management
App ContainerEmbed HTML5 apps inside a container to access powerful native device functionality
http://developer.force.com/mobilesdk
![Page 87: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/87.jpg)
CanvasFramework for using third party apps within Salesforce
![Page 88: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/88.jpg)
![Page 89: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/89.jpg)
Any Language, Any Platform
• Only has to be accessible from the user’s browser• Authentication via OAuth or Signed Response• JavaScript based SDK can be associated with any language• Within Canvas, the App can make API calls as the current user• apex:CanvasApp allows embedding via Visualforce
Canvas Anatomy
![Page 90: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/90.jpg)
![Page 91: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/91.jpg)
Polyglot FrameworkPaaS allowing for the deployment of multiple languages
![Page 92: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/92.jpg)
![Page 93: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/93.jpg)
$ git push heroku masterCounting objects: 67, done.Delta compression using up to 4 threads.Compressing objects: 100% (53/53), done.Writing objects: 100% (67/67), 26.33 KiB, done.Total 67 (delta 5), reused 0 (delta 0)
Github Repo Heroku
Local Repo
Pull / PushDevelopment Changes
Push DeploymentsMonitor Application
![Page 94: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/94.jpg)
HEROKU
![Page 95: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/95.jpg)
AppExchange
Application Market for the Salesforce Platform
![Page 96: Salesforce1 Platform ELEVATE LA workshop Dec 18, 2013](https://reader038.vdocuments.net/reader038/viewer/2022102922/54c660dd4a79595e038b456d/html5/thumbnails/96.jpg)
1,700+ Apps 20k+ Reviews 1.4m+ Installs
http://appexchange.com