Access External Data in Real-time with Lightning Connect

33
Integrate Data, Lightning Fast! April 9, 2015 Lightning Connect

Transcript of Access External Data in Real-time with Lightning Connect

Page 1: Access External Data in Real-time with Lightning Connect

Integrate Data, Lightning Fast!

April 9, 2015

Lightning Connect

Page 2: Access External Data in Real-time with Lightning Connect

Pat PattersonDeveloper Evangelist Architect

@metadaddy

[email protected]

Jason ChoyVice President, Product Management

@jasonchoy

[email protected]

Page 3: Access External Data in Real-time with Lightning Connect

Agenda

▪ Overview

▪ OData

▪ Demo

▪ Features and Roadmap

▪ Apex Connector Library

▪ Q & A

Page 4: Access External Data in Real-time with Lightning Connect

▪ Don’t wait until the end to ask your question!

– Questions will be queued and answered at the end.

▪ Post to Success Community

– Official: Lightning Connect

▪ Respect Q&A etiquette

– Please don’t repeat questions.

▪ Stick around for live Q&A

– Speakers will tackle your questions at the end.

Have Questions?

Page 5: Access External Data in Real-time with Lightning Connect

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 6: Access External Data in Real-time with Lightning Connect

Overview - Lightning Connect

Page 7: Access External Data in Real-time with Lightning Connect

What is Lightning Connect?

▪ Generally available from Winter ’15 - add-on license required

▪ Data integration capability without the need to copy data

▪ Gives access to external data with point-and-click simplicity

▪ Incorporate external data into Salesforce in real-time

▪ Not storing data alleviates customer data residency concerns

▪ Dramatically reduces time to unlock back-office systems

Page 8: Access External Data in Real-time with Lightning Connect

How does Lightning Connect Work?

▪ Data access is on-demand / real-time

▪ Data access is by reference

▪ Data is formatted into Salesforce objects

▪ Supports open-standard data access protocol

Page 9: Access External Data in Real-time with Lightning Connect

What External Data Sources are Supported?

Any Data Sources that can publish data in Open Data (OData) 2.0 protocol

▪ Commercial Packages

– SAP Netweaver Gateway

– Microsoft SQL Server, Dynamics CRM/NAV,

Azure Table Services

– IBM Websphere exTreme Scale

– Heroku Connect External Objects

▪ DIY Data Producer

– .Net WCF Data Services, Java (Apache Olingo, odata4j), NodeJS

▪ Many more via partners

– Dell Boomi, Informatica, Jitterbit, MuleSoft, Progress, SoftwareAG

Page 10: Access External Data in Real-time with Lightning Connect

Open Data Protocol (OData)

Page 11: Access External Data in Real-time with Lightning Connect

“OData is a standardized protocol for creating and

consuming data APIs.

OData builds on core protocols like HTTP and commonly

accepted methodologies like REST.

The result is a uniform way to expose

full-featured data APIs.”

Page 12: Access External Data in Real-time with Lightning Connect

OData

Proposed by Microsoft

– 2009

Standardized by OASIS

– 2014

Page 13: Access External Data in Real-time with Lightning Connect

OData

URIs for resource identity

http://host/service

/Products

?$filter=Rating+eq+3&$select=Rating,+Name

Page 14: Access External Data in Real-time with Lightning Connect

OData

Atom XML/JSON representation

Page 15: Access External Data in Real-time with Lightning Connect

OData Examples

Service Document

$ curl 'http://host/service/'

{

"@odata.context": "http://host/service/$metadata",

"value": [

{

"kind": "EntitySet",

"name": "Products",

"url": "Products"

},

...

Page 16: Access External Data in Real-time with Lightning Connect

OData Examples

Metadata (XML Only ☹)

$ curl 'http://host/service/$metadata'

<?xml version="1.0" encoding="utf-8"?>

<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

<edmx:DataServices>

<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ODataDemo">

<EntityType Name="Product">

<Key>

<PropertyRef Name="ID"/>

</Key>

<Property Name="ID" Type="Edm.Int32" Nullable="false"/>

<Property Name="Name" Type="Edm.String"/>

...

Page 17: Access External Data in Real-time with Lightning Connect

OData Examples

Query

$ curl 'http://host/service/Products?$filter=Rating+eq+3&$select=Rating,+Name'

{

"@odata.context": "http://host/service/$metadata#Products(Rating,Name)",

"value": [

{

"Name": "Milk",

"Rating": 3

},

...

Page 18: Access External Data in Real-time with Lightning Connect

OData Examples

Get Individual Entity

$ curl 'http://host/service/Products(1)'

{

"@odata.context": "http://host/service/$metadata#Products/$entity",

"ID": 1,

"Name": "Milk",

"Description": "Low fat milk",

"ReleaseDate": "1995-10-01T00:00:00Z",

"DiscontinuedDate": null,

"Rating": 3,

"Price": 3.5

}

Page 19: Access External Data in Real-time with Lightning Connect

OData Examples

Update Entity

$ curl -w "Status: %{http_code}\\n” \

-H 'Content-Type: application/json' \

-X PATCH \

-d '{"@odata.type":"ODataDemo.Product", "Price":"2.99"}' \

'http://host/service/Products(1)’

Status: 204

Page 20: Access External Data in Real-time with Lightning Connect

OData Examples

Change Tracking

Server will POST notifications to the callback URL

$ curl -H 'Prefer: odata.track-changes'

-H 'Prefer: odata.callback; url="https://myserver/cb?token=123"'

'http://host/service/Products'

Page 21: Access External Data in Real-time with Lightning Connect

Lightning Connect Demo

Page 22: Access External Data in Real-time with Lightning Connect

External Objects work very like Custom Objects

✓ Tabs

✓ List Views

✓ Detail Pages

✓ Chatter Feeds

✓ Visualforce pages with standard or custom controllers

✓ Apex SObject types

✓ REST/SOAP API access

✓ SOQL and SOSL queries from Apex or API

✓ Available on Salesforce1 Mobile Platform

Page 23: Access External Data in Real-time with Lightning Connect

But There Are Currently Some Limitations

✗ Read-only at present (read/write in Pilot now)

✗ Reporting (Coming in 2nd Half 2015)

✗ Formula and Roll-up Summary Fields

✗ Triggers, Workflow, Approvals, Process

✗ Validation Rules

✗ Field History Tracking

✗ Notes, Attachments

Page 24: Access External Data in Real-time with Lightning Connect

Lightning Connect Roadmap

▪ Pilot in Spring ‘15, GA in Summer ‘15*

– Real-time cross-org access

– Apex Connector library to develop custom connectors

▪ Read/Write Capability for External Objects

▪ OData 4.0

– Support for triggers and Workflow

▪ Custom Reports for External Objects

* Safe Harbor!

Page 25: Access External Data in Real-time with Lightning Connect

Apex Connector Framework

Page 26: Access External Data in Real-time with Lightning Connect

Apex Connector Framework

❏ Develop your own custom adapter in Apex for Lightning Connect

❏ Retrieved data will manifest as external objects

❏ Provide your own implementation for your data service

❏ Sync - metadata synchronization to set up external object

❏ Query - translates SOQL query for external data service

❏ Search - translates SOSL search for external data service

❏GA in Summer ‘15, part of Lightning Connect SKU/License

❏Available from Developer Edition Orgs

Page 27: Access External Data in Real-time with Lightning Connect

Apex Connector Demo

Page 28: Access External Data in Real-time with Lightning Connect

Find out more

http://developer.salesforce.com/lightning

Page 29: Access External Data in Real-time with Lightning Connect

Do the Tutorial

http://bit.ly/lightning-connect-tutorial

Page 30: Access External Data in Real-time with Lightning Connect

Engage with the Community

Success Community Group - Official: Lightning Connect

Page 31: Access External Data in Real-time with Lightning Connect
Page 32: Access External Data in Real-time with Lightning Connect

developer.salesforce.com/page/Salesforce1_Lightning_Webinar_Series

• Lightning App Builder

• Lightning Component Framework

• Lightning Process Builder

• Lightning Connect

Lightning Deep Dive Webinars

Page 33: Access External Data in Real-time with Lightning Connect

Thank You! Questions?