bbva workshop

Post on 21-Oct-2014

160 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Salesforce1 PlatformBasics

David ScruggsPlatform Engineer

@davescruggsdscruggs@salesforce.com

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.

What are we doing?

Setup and Introductions

Salesforce1 Platform Overview

Declarative Development

User Interface

Mobility

Programmatic Development and Heroku

Setup and Introductions

Login and get ready

Internet Username/PasswordSF13/SF13

Be interactive

http://developer.force.com/join

http://bit.ly/heroku_qs

http://eclipse-plugin.herokuapp.com/

SETUP: Free Developer Environment

Online Workbook

http://bit.ly/basics_book

http://bit.ly/heroku_qsIf needed:

http://bit.ly/c9heroku

If you’re interested: http://bit.ly/force_apex_book

Salesforce1 Platform Overview

Salesforce is a Platform Company. Period. -Alex Williams, TechCrunch

500MAPI Calls Per Day6BLines of

Apex4M+

Apps Built on the Platform

72BRecords Stored

Salesforce1 Platform

1.4 million…and growing

CoreServices

Chatter

Multi-languag

e

Translation

Workbench

Email Service

s

Analytics

CloudDatabas

e

Scheema

Builder

Search

Visualforce

MonitoringMulti-tenant

Apex

Data-level

Security

Workflows

APIs

Mobile Services

Social

APIs

Analytics

APIs

Bulk APIs

Rest APIs

Metadata

APIs

Soap APIs

Private App

Exchange

Custom Actions

Identity

Mobile Notificatio

ns

Tooling

APIs

Mobile Packs

Mobile SDK

Offline Support

Streaming

APIs

Geolocation

ET 1:1 ET Fuel

Heroku1

Heroku Add-Ons

Sharing Model

ET API

Salesforce1 Platform

Every Object, Every Field: Salesforce1 Mobile Accessible

AppExchange Apps:

Dropbox Concur Evernote ServiceMax More

Custom Apps and Integrations:

SAP Oracle Everything Custom More

Sales, Service and Marketing

Accounts Cases CampaignsDashboards More

Declarative and Programmatic

Declarative Programmatic

Visualforce PagesVisualforce Components

Apex ControllersApex Triggers

Metadata APIREST APIBulk API

Formula FieldsValidation Rules

Workflows and Approvals

ObjectsFields

Relationships

Page LayoutsRecord Types

User Interface

Business Logic

Data Model

Your App

Every Object, Every Field: API Enabled

GET

POST

PATCH

DELETE

OAuth 2.0HTTPS

Every Object, Every Field: Apex and Visualforce Enabled

Visualforce PagesVisualforce Components

Apex ControllersApex Triggers

Custom UICustom UI

Custom LogicCustom Logic

ChatterFramework for the social enterprise

Declarative Development

Declarative ApplicationsBusiness logic expressed without programming

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

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

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

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 $15

INV-01 2 Cabernet 5 10 $150

INV-01 3 Malbec 10 20 $200

INV-02 1 Pinot 20 50 $200

Declarative Logic: Validation Rules Formulas which validate data before being entered or modified

How Validation Rules Work

WHEN THENIF

Line Item is added or Updated

Quantity__c <= 0 Error: “Line Item’s Quantity Should Be Greater Than 0”

Record isinserted or updated

Statement evaluates to true

Block Insert/UpdateReturn error message

Hands On Tutorials#1: Create your data model

#2: Customize your user interface

Declarative Logic: Formula Fields Fields which can calculate data in real time

Formula Fields

Excel style formulas

Functions can be nested

Support for commons functions

– Math

– Text

– Date & Time

– Logical

CASE(MONTH( date ),

1, "January",2, "February",3, "March",4, "April",5, "May",6, "June",7, "July",8, "August",9, "September",10, "October",11, "November","December",

)

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 $15

INV-01 2 Cabernet 5 10 $150

INV-01 3 Malbec 10 20 $200

INV-02 1 Pinot 20 50 $200

Formula Field Item Total = Unit Price X Quantity

Declarative Logic: Roll-Up Summary Fields Fields which can summarize data based on child records

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 $15

INV-01 2 Cabernet 5 10 $150

INV-01 3 Malbec 10 20 $200

INV-02 1 Pinot 20 50 $200

Roll-Up Field Sum of Line Item Value

Child of Master-Detail

Count or Aggregate

Roll-Up Summary Fields

Declarative Logic: WorkflowsEvent based actions to express business logic

How Workflows Work

WHEN THENIF

Invoice is updated 30 days later, status is open

Change status to“Pending”

Record isinserted or updated

DefinedConditions are met

PerformWorkflow actions

Workflow Actions

TaskOutbound MessageUpdate

FieldEmail

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 20 $20

INV-01 2 Cabernet 5 10 $150

INV-01 3 Malbec 10 20 $200

INV-02 1 Pinot 20 50 $200

Workflow RuleWhen updated, if unit price is blank then fill it withthe Merchandise price value

Declarative Logic: ApprovalsFramework for approval on record updates

Approvals

Define Criteria

Define Actions

• Single / Multi / Skip Processes

• Role and User based Routing

• Chatter and Email Approvals

Approvals

Security and Identity ServicesServices to authenticate users and control data visibility

Security and Identity Services

• User Profiles• User Groups and Hierarchies

• Permission Sets• SSO / SAML• OAuth 2.0• Connected Apps

• User Profiles• User Groups and Hierarchies

• Permission Sets• SSO / SAML• OAuth 2.0• Connected Apps

Hands On Tutorials#3: Add App Logic with Clicks,

Not Code#4: Secure your System

Mobility

LUNCHSalesforce1 MobileiOS and Android app for Salesforce1

Stay Up to Date with Notifications & Feeds

Developers

Stay Up to Date with Notifications & Feeds

Customers

Salesforce1 Mobile

Users

Distribute, & Manage Apps and Identity

Administrators

Embed Apps to Extend Business Processes

ISVs

Use Visualforce, HTML5, CSS, & JavaScript to Customize UI

Salesforce1 Mobile

Specify order and pin favorites

Control visibility with profiles & permission sets

Personalize with recent items

Add apps

Declarative & programmatic actions

Universal Notifications

Custom apps with HTML5, JavaScript, Visualforce, and Force.com Canvas

Global and contextual actions

Salesforce1

Hands On Tutorials#7: Create a Salesforce1 App

User Interface

VisualforceComponent-based user interface framework on Salesforce1

Every Object, Every Field: Apex and Visualforce Enabled

Visualforce PagesVisualforce Components

Apex ControllersApex Triggers

Custom UICustom UI

Custom LogicCustom Logic

<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>

Visualforce Components

Standard & Custom ControllersCustom Extensions

Data bound components Controller Callbacks

• Apex FormsVisualforce component bound to an Apex Method

• Javascript RemotingAnnotated Apex methods exposed to JavaScript

Interacting with Data

Mobile Cards

Display Visualforce or Related Lookups

1. Record header

2. Mobile cards display above all

related items

3. Set width to 100%. It sizes

automatically. Mobile card content

can’t be scrolled.

4. Control height from the PLE

5. Related lists display after mobile

cards

Publisher Actions

Create actions and add them to the Chatter publisher

• Global vs Object Level• Create actions

• Log-a-call actions

• Update actions

• Custom actions• VF

• Canvas

Visualforce Use Cases

• Embed custom UI into tabs and layouts• Visualforce dashboards• Generate PDF• Email templates

Programmatic Development and Heroku

ApexCloud-based programming language on Salesforce1

Introduction to Apex

• Object-Oriented Language• Dot Notation Syntax• Cloud based compiling, debugging and unit

testing• “First Class” Citizen on the Platform

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; }}

Apex Anatomy

Class and Interface based Scoped Variables Inline SOQL Inline DML

Apex Triggers

• Event Based Logic

• Associated with Object Types

• Before or After:• Insert

• Update

• Delete

• Undelete

Custom Controllers and Extensions

• Provide Custom Logic to Visualforce

• Extensions can be used with Standard Controllers

• One controller can span multiple pages

• Can expose logic via Remote Action

Asynchronous Apex

• Batch & Scheduled Interfaces• Asynchronous processing

• Can handle queues of data• Can be scheduled to run later

• Similar to a cron job

Apex Use Cases

• Outbound Email• Inbound Email• Custom API Endpoints• HTTP callouts

Declarative before ProgrammaticUse declarative features when possible:

• Quicker to build• Easier to maintain and debug• Possible addition of new features• Do not count against governor limits

For example:• Will a workflow suffice instead of a trigger?• Will a custom layout work instead of

Visualforce?

What is Heroku?

Everything you need to build, run and scale customer apps

Run virtually any language at any scale

DynosEnterprise grade Postgres as a service

DatabasesMarketplace for logging, data and more

Add-ons

Supported Languages Buildpacks Databases

Heroku supports…

Ruby

Node.js

Java

Python

PHP (beta)

– Dart

– GO!

– Scala

– Clojure

– Erlang

– Perl

– And more…

Postgres

Redis

Mongo

CouchDB

Hadoop

TempDB

MySQL

Elasticsearch

Neo4j

Heroku is…

Smart driving assistant tracks driving, parking and vehicle performance

Developers able to focus on feature development by using Heroku Add-ons to provide infrastructure services

Product improvements deployed frequently to delight early adopters

Help people drive smarter and bring the power of connectivity to every car

Admittedly “obsessive about creating great user experiences in well-engineered products,” Automatic knew the Heroku platform would provide the flexibility their product requires while allowing them to focus less on infrastructure and more on user experience.

Heroku Demo

Heroku Exerciseshttp://bit.ly/heroku_qs

Alternatively:http://bit.ly/c9heroku

Double-click to enter title

Double-click to enter text

The Wrap Up

LUNCHSalesforce1 APIsFamily of APIs on the Salesforce1 Platform

LUNCHCanvasFramework for embedding third party apps in Salesforce

LUNCHMobile SDKDevelopment Kit for building hybrid and native iOS and Android apps

LUNCHAppExchangeEnterprise marketplace for Salesforce1 Apps

LUNCHHerokuPolyglot framework for hosting applications

Double-click to enter title

Double-click to enter text

http://developer.force.com

Developer Groups

Join a Salesforce Developer Grouphttp://bit.ly/fdc-dugs

Los Angeles Salesforce Developer Group:http://www.meetup.com/Los-Angeles-Force-com-Developer-Group/

Become a User Group LeaderEmail: April Nassi <anassi@salesforce.com>

simplicity is the ultimate form ofsophistication

- Da Vinci

Thank You

top related