0
welcome
Interactive
Questions? Current projects? Feedback?
http://developer.force.com/join
Check Your Developer Edition
Environment
http://developer.force.com/join
Online Workbook
h"p://bit.ly/workbook_2013	
  
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contai...
Steve Sasson
Engineered the first digital camera prototype
Eastman Kodak
Filed for bankruptcy in 2012
Steve Sasson
Worked for Eastman Kodak in 1975
We are witnessing the Post PC Revolution
456 Million
Tablets at Work
782 Million
Smartphones at Work
2009 2010 2011 2012
2...
“By 2015, one of every seven dollars spent on
packaged software, server, and storage offerings will
be through the public ...
Salesforce Platform
Cloud based, multi-tenant, enterprise class PaaS
1,000,000
Salesforce Platform Developers
9 Billion
API calls last month
2.5x
Increased demand for Force.com developers
YOU
are the makers
Use Case: Mobile Development
Cloud-Based Data
Authentication Services
REST API
Native + HTML5 Support
Reports + Analytics
...
The Salesforce Platform
Infrastructure
Services
Network
Storage
Operating System
Database
App Server
Web Server
Data Cente...
Mobile Social Identity Data Marketplace
The Salesforce Platform
Now it’s your turn
Building a cloud based application
DATA MODELING
Data Modeling
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contai...
Spreadsheet Versus Application
Relational Data
Validated data
Process driven workflows
Approval System
Field Auditing
User...
Let’s Build an App
Let’s Build an App
Validation Rules
Formulas which block data entry if evaluated as true
WHEN THENIF
Record is
being
inserted or
updated
Formula
evaluates to
true
Return error
message
Warehouse Application Requirements
•  Track price and inventory on hand for all
merchandise
•  Create invoices containing ...
Warehouse Application Requirements
•  Track price and inventory on hand for all
merchandise
•  Create invoices containing ...
Warehouse Application Requirements
•  Track price and inventory on hand for all
merchandise
•  Create invoices containing ...
Warehouse Data Model
Merchandise
Name Price Inventory
Pinot $20 15
Cabernet $30 10
Malbec $20 20
Zinfandel $10 50
Invoice
...
Chatter
Social framework for the enterprise
TUTORIAL 100
Create an App and Database
Optional: TUTORIAL 110

http://bit.ly/workbook_2013
Tutorial 100
Optional: Tutorial 110
DECLARATIVE LOGIC
DECLARATIVE LOGIC
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contai...
Declarative Apps
Creating business applications with clicks not code
Spreadsheet Versus Application
Formula Fields
Operations for performing common logic
Excel style formulas
Support for commons functions
Math
Text
Date & Time
Logical
Can chain functions together:
AND ( OR (
...
Roll-Up Fields
Field type calculating on rows of child data
Child of Master-Detail
Count or Aggregate
Workflows
Event based business logic
When this happens
Meets this Criteria?
Perform These Actions
Task
Outbound
Message
Update
Field
Email
Approvals
System to route approvals through an organization
Track Approval History
Define Criteria
Define Actions
Single/Multi/Skip step processes
Route based on roles, or queues
Approval via emails or Chatter
Security
Identity, data security and user services
User Profiles
Groups, Queues and Hierarchies
Permission Sets
SSO, SAML, OAuth 2.0
Connected Apps
TUTORIAL 120
App Logic with Clicks not Code
Optional: TUTORIAL 150

http://bit.ly/workbook_2013
TUTORIAL 120
OPTIONAL: TUTORIAL 150
LUNCH:
Downstairs
APEX
APEX
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contai...
Apex
Cloud based programming language
public with sharing class myControllerExtension implements Util {



private final Account acct;

public Contact newContac...
DEVELOPER CONSOLE DEMO
DEVELOPER CONSOLE
Controllers Inbound/Outbound
Email Services
Custom API and
HTTP Callouts
TriggersScheduled and Batched Tasks
Common Use Ca...
trigger MerchandiseTrigger on Merchandise__c
(before insert, before update) {



Merchandise__c[] merch = Trigger.new;

	 ...
Chatter Triggers
if(feed_text == ‘promote’) {

rec.status__c = ‘Approved’;

addToEmailPromotion(rec);

FeedItem post = new...
CHATTER TRIGGER DEMO
APEX TRIGGERS
@isTest

static public void testRequiredFields() { 

Merchandise__c m = new Merchandise__c(Name = 'Test');



//assertion:...
public WarehouseCSVController() {
Boolean beRandom =
ApexPages.currentPage().getParameters().get('random') != null;
if(beR...
TUTORIAL 300
Code Custom App Logic

http://bit.ly/workbook_2013
TUTORIAL 300
VISUALFORCE
VISUALFORCE
Model View Controller
Application design paradigm to divide data, logic and UI
Visualforce
Cloud based component framework for interfaces
Standard Controllers
Custom Controllers
Custom Extensions
Data bound components
Controller Callbacks
þ
þ
þ
Visualforce ...
STANDARD CONTROLLER DEMO
STANDARD CONTROLLER
@RemoteAction
public static String updateMerchandiseItem(String productId, Integer newInventory) {
List<Merchandise__c> m ...
<apex:component controller="WarehouseAccountsController">



<apex:attribute name="lat" type="Decimal" description="Latitu...
<apex:page >

<apex:insert name="detail" />



<div style="position:relative; clear:all;"> 

<apex:insert name="footer" />...
chatter:follow
chatter:newsfeed
chatter:feed
chatter:followers
chatter:feedAndFollowers
Chatter Components
Email Templates Generate PDFsEmbed in Page Layouts
Mobile Interfaces Page Overrides
Common Use Cases
TUTORIAL 330
Create a Visualforce Mobile App

http://bit.ly/workbook_2013
TUTORIAL 330
MOBILE VF DEMO
MOBILE VF
INTEGRATION
INTEGRATION
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contai...
OAuth
Industry standard method of user authentication
Remote
Application
Salesforce
Platform
Sends App Credentials
User logs in,
Token sent to callback
Confirms token
Send acce...
WORKBENCH LOGIN DEMO
WORKBENCH
REST API
API leveraging industry standard HTTP
Mobile
Application
Salesforce
Platform
login.salesforce.com
REST API
1. Authenticate
/services/data/query?
SELECT ID FROM ...
WORKBENCH REST DEMO
WORKBENCH
SOAP API
XML messaging and WSDL based API
Java Web
Server
Salesforce
Platform
login.salesforce.com
SOAP API
1. Authenticate
<QUERY><SOQL>
SELECT Id from Account
</S...
Bulk API
Asynchronous API for handling large datasets
ETL
Tool
Salesforce
Platform
BULK API
2. Push Updates
TITLE: AppCo
STREET: 1 Market Street
REF:0001
1. Pull Recent Records...
Streaming API
Bayeux implementation for real-time delivery of data
Java
Web Server
Salesforce
Platform
STREAMING API
1. Handshake
2. Subscribe to Topic
3. Get Updates
WORKBENCH PUSHTOPICS DEMO
WORKBENCH
PUSH TOPICS
TUTORIAL 370
INTEGRATE SYSTEMS

http://bit.ly/workbook_2013
TUTORIAL 370
Fundamentals for the Enterprise
Mobile Social Identity Data Marketplace
Mobile SDK
iOS and Android SDK for developing with Force.com
Mobile SDK: Accelerate App Development
API Wrappers
Interact with Salesforce REST APIs with
popular mobile platform langua...
Canvas
Framework for using third party apps within Salesforce
Any Language, Any Platform
•  Only has to be accessible from the user s browser
•  Authentication via OAuth or Signed Resp...
Polyglot Framework
PaaS allowing for the deployment of multiple languages
$ git push heroku master
Counting objects: 67, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5...
HEROKU DEMO
HEROKU
AppExchange
Application Market for the Salesforce Platform
1,700+ Apps 20k+ Reviews 1.4m+ Installs
http://appexchange.com
Double-click to enter title
Double-click to enter text
The Wrap Up
check inbox
h"p://bit.ly/sea"ledevworkshp328
Double-click to enter title
Double-click to enter text
@forcedotcom
#forcedotcom
#askforce
Double-click to enter title
Double-click to enter text
Join A 
Developer User Group

http://bit.ly/fdc-dugs
Double-click to enter title
Double-click to enter text
Become A 
Developer User Group Leader

Email:
April Nassi
<anassi@s...
Double-click to enter title
Double-click to enter texthttp://developer.force.com
simplicity
is the ultimate
form of
sophistication
Da Vinci
THANK YOU
THANK YOU
Elevate workshop track1
Elevate workshop track1
Elevate workshop track1
Elevate workshop track1
Elevate workshop track1
Upcoming SlideShare
Loading in...5
×

Elevate workshop track1

833

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
833
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
72
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Elevate workshop track1"

  1. 1. welcome
  2. 2. Interactive Questions? Current projects? Feedback?
  3. 3. http://developer.force.com/join
  4. 4. Check Your Developer Edition Environment http://developer.force.com/join
  5. 5. Online Workbook h"p://bit.ly/workbook_2013  
  6. 6. 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.
  7. 7. Steve Sasson Engineered the first digital camera prototype
  8. 8. Eastman Kodak Filed for bankruptcy in 2012
  9. 9. Steve Sasson Worked for Eastman Kodak in 1975
  10. 10. We are witnessing the Post PC Revolution 456 Million Tablets at Work 782 Million Smartphones at Work 2009 2010 2011 2012 2013(E) 2014(E) 2015(E) 2016(E)
  11. 11. “By 2015, one of every seven dollars spent on packaged software, server, and storage offerings will be through the public cloud model.” http://www.idc.com/prodserv/idc_cloud.jsp
  12. 12. Salesforce Platform Cloud based, multi-tenant, enterprise class PaaS
  13. 13. 1,000,000 Salesforce Platform Developers
  14. 14. 9 Billion API calls last month
  15. 15. 2.5x Increased demand for Force.com developers
  16. 16. YOU are the makers
  17. 17. Use Case: Mobile Development Cloud-Based Data Authentication Services REST API Native + HTML5 Support Reports + Analytics Secure Offline Storage
  18. 18. The Salesforce Platform Infrastructure Services Network Storage Operating System Database App Server Web Server Data Center Disaster Recovery Operations Services Authentication Availability Monitoring Patch Management Upgrades Backup NOC Troubleshooting Your Innovative App Application Services Security/Sharing Integration Customization Web Services Multi-Language Workflow Built-in Services Touch Services Native iOS SDK Native Android SDK HTML5 Xcode wizards PIN code support Custom APEX REST Geo-location Mobile APIs Social Services Feeds Profiles Status updates Groups File sharing Approvals Messenger Presence Platform Services Globalization APIs Security Analytics Search Identity
  19. 19. Mobile Social Identity Data Marketplace The Salesforce Platform
  20. 20. Now it’s your turn Building a cloud based application
  21. 21. DATA MODELING
  22. 22. Data Modeling
  23. 23. 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.
  24. 24. Spreadsheet Versus Application Relational Data Validated data Process driven workflows Approval System Field Auditing Users, Profiles and Permissions Enterprise Collaboration OR With the same amount of programming…
  25. 25. Let’s Build an App
  26. 26. Let’s Build an App
  27. 27. Validation Rules Formulas which block data entry if evaluated as true
  28. 28. WHEN THENIF Record is being inserted or updated Formula evaluates to true Return error message
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. Chatter Social framework for the enterprise
  34. 34. TUTORIAL 100 Create an App and Database Optional: TUTORIAL 110 http://bit.ly/workbook_2013
  35. 35. Tutorial 100 Optional: Tutorial 110
  36. 36. DECLARATIVE LOGIC
  37. 37. DECLARATIVE LOGIC
  38. 38. 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.
  39. 39. Declarative Apps Creating business applications with clicks not code
  40. 40. Spreadsheet Versus Application
  41. 41. Formula Fields Operations for performing common logic
  42. 42. 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) )
  43. 43. Roll-Up Fields Field type calculating on rows of child data
  44. 44. Child of Master-Detail Count or Aggregate
  45. 45. Workflows Event based business logic
  46. 46. When this happens Meets this Criteria? Perform These Actions
  47. 47. Task Outbound Message Update Field Email
  48. 48. Approvals System to route approvals through an organization
  49. 49. Track Approval History Define Criteria Define Actions
  50. 50. Single/Multi/Skip step processes Route based on roles, or queues Approval via emails or Chatter
  51. 51. Security Identity, data security and user services
  52. 52. User Profiles Groups, Queues and Hierarchies Permission Sets SSO, SAML, OAuth 2.0 Connected Apps
  53. 53. TUTORIAL 120 App Logic with Clicks not Code Optional: TUTORIAL 150 http://bit.ly/workbook_2013
  54. 54. TUTORIAL 120 OPTIONAL: TUTORIAL 150
  55. 55. LUNCH: Downstairs
  56. 56. APEX
  57. 57. APEX
  58. 58. 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.
  59. 59. Apex Cloud based programming language
  60. 60. 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
  61. 61. DEVELOPER CONSOLE DEMO
  62. 62. DEVELOPER CONSOLE
  63. 63. Controllers Inbound/Outbound Email Services Custom API and HTTP Callouts TriggersScheduled and Batched Tasks Common Use Cases
  64. 64. trigger MerchandiseTrigger on Merchandise__c (before insert, before update) {
 
 Merchandise__c[] merch = Trigger.new;
 if(Trigger.isInsert) {
 MerchandiseUtil.checkMerchandise(merch); }
 
 } Object Definition Event Definition Trigger.old and new Bulkify code þ þ þ þ Trigger Anatomy
  65. 65. Chatter Triggers if(feed_text == ‘promote’) {
 rec.status__c = ‘Approved’;
 addToEmailPromotion(rec);
 FeedItem post = new FeedItem();
 post.ParentId = rec.Id;
 post.Body = ‘Record added to promotion’;
 feedsToInsert.addITem(post);
 }
  66. 66. CHATTER TRIGGER DEMO
  67. 67. APEX TRIGGERS
  68. 68. @isTest
 static public void testRequiredFields() { 
 Merchandise__c m = new Merchandise__c(Name = 'Test');
 
 //assertion: Merchandise requires Price and Quantity
 try {
 insert m;
 } catch (DMLException e) {
 System.assert(e.getMessage().length() > 0);
 }
 
 m.Quantity__c = 0;
 m.Price__c = 9.99;
 
 //assertion: Merchandise requires Price and Quantity
 try {
 insert m;
 System.assert(String.valueOf(m.Id).length() > 0);
 } catch (DMLException e) {
 System.debug(e.getMessage());
 }
 Unit Testing
  69. 69. public WarehouseCSVController() { Boolean beRandom = ApexPages.currentPage().getParameters().get('random') != null; if(beRandom) { 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
  70. 70. TUTORIAL 300 Code Custom App Logic http://bit.ly/workbook_2013
  71. 71. TUTORIAL 300
  72. 72. VISUALFORCE
  73. 73. VISUALFORCE
  74. 74. Model View Controller Application design paradigm to divide data, logic and UI
  75. 75. Visualforce Cloud based component framework for interfaces
  76. 76. Standard Controllers Custom Controllers Custom 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>
  77. 77. STANDARD CONTROLLER DEMO
  78. 78. STANDARD CONTROLLER
  79. 79. @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 þ þ j$(".updateBtn").click(function() { var id = j$(this).attr('data-id'); var inventory = parseInt(j$("#inventory"+id).val()); j$.mobile.showPageLoadingMsg(); MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate); }); Apex Visualforce
  80. 80. <apex:component controller="WarehouseAccountsController">
 
 <apex:attribute name="lat" type="Decimal" description="Latitude for geolocation query" assignTo="{!lat}” /> 
 <apex:attribute name="long" type="Decimal" description="Longitude for geolocation query" assignTo="{!lng}” />
 <c:GeoComponent lat=”8.9991" long=”10.00119" />
 
 Custom Components
  81. 81. <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
  82. 82. chatter:follow chatter:newsfeed chatter:feed chatter:followers chatter:feedAndFollowers Chatter Components
  83. 83. Email Templates Generate PDFsEmbed in Page Layouts Mobile Interfaces Page Overrides Common Use Cases
  84. 84. TUTORIAL 330 Create a Visualforce Mobile App http://bit.ly/workbook_2013
  85. 85. TUTORIAL 330
  86. 86. MOBILE VF DEMO
  87. 87. MOBILE VF
  88. 88. INTEGRATION
  89. 89. INTEGRATION
  90. 90. 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.
  91. 91. OAuth Industry standard method of user authentication
  92. 92. Remote Application Salesforce Platform Sends App Credentials User logs in, Token sent to callback Confirms token Send access token Maintain session with refresh token OAuth2 Flow
  93. 93. WORKBENCH LOGIN DEMO
  94. 94. WORKBENCH
  95. 95. REST API API leveraging industry standard HTTP
  96. 96. Mobile Application Salesforce Platform login.salesforce.com REST API 1. Authenticate /services/data/query? SELECT ID FROM ACCOUNT 2. Access API {“sObject”: “Account”, “id” : “oax02fdr756aFdad”} 3. Get JSON or XML
  97. 97. WORKBENCH REST DEMO
  98. 98. WORKBENCH
  99. 99. SOAP API XML messaging and WSDL based API
  100. 100. Java Web Server Salesforce Platform 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
  101. 101. Bulk API Asynchronous API for handling large datasets
  102. 102. ETL Tool Salesforce Platform BULK API 2. Push Updates TITLE: AppCo STREET: 1 Market Street REF:0001 1. Pull Recent Records Legacy Database NAME: AppCo MailingStreet: 1 Market Street ExternalID:0001
  103. 103. Streaming API Bayeux implementation for real-time delivery of data
  104. 104. Java Web Server Salesforce Platform STREAMING API 1. Handshake 2. Subscribe to Topic 3. Get Updates
  105. 105. WORKBENCH PUSHTOPICS DEMO
  106. 106. WORKBENCH PUSH TOPICS
  107. 107. TUTORIAL 370 INTEGRATE SYSTEMS http://bit.ly/workbook_2013
  108. 108. TUTORIAL 370
  109. 109. Fundamentals for the Enterprise Mobile Social Identity Data Marketplace
  110. 110. Mobile SDK iOS and Android SDK for developing with Force.com
  111. 111. Mobile SDK: Accelerate App Development API Wrappers Interact with Salesforce REST APIs with popular mobile platform languages Secure Offline Storage Store business data on a device with enterprise- class encryption Push Notifications Dispatch real-time alerts directly to mobile devices Tools for building native, hybrid, and HTML5 apps on iOS and Android OAuth2 Secure authentication and refresh token management App Container Embed HTML5 apps inside a container to access powerful native device functionality http://developer.force.com/mobilesdk
  112. 112. Canvas Framework for using third party apps within Salesforce
  113. 113. 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
  114. 114. Polyglot Framework PaaS allowing for the deployment of multiple languages
  115. 115. $ git push heroku master Counting 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 / Push Development Changes Push Deployments Monitor Application
  116. 116. HEROKU DEMO
  117. 117. HEROKU
  118. 118. AppExchange Application Market for the Salesforce Platform
  119. 119. 1,700+ Apps 20k+ Reviews 1.4m+ Installs http://appexchange.com
  120. 120. Double-click to enter title Double-click to enter text The Wrap Up
  121. 121. check inbox h"p://bit.ly/sea"ledevworkshp328
  122. 122. Double-click to enter title Double-click to enter text @forcedotcom #forcedotcom #askforce
  123. 123. Double-click to enter title Double-click to enter text Join A Developer User Group http://bit.ly/fdc-dugs
  124. 124. Double-click to enter title Double-click to enter text Become A Developer User Group Leader Email: April Nassi <anassi@salesforce.com>
  125. 125. Double-click to enter title Double-click to enter texthttp://developer.force.com
  126. 126. simplicity is the ultimate form of sophistication Da Vinci
  127. 127. THANK YOU
  128. 128. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×