Title: Enterprise Integration Combining the Salesforce Platform with Your Architecture
1Enterprise IntegrationCombining the Salesforce
Platform with Your Architecture
- Markus Spohn
- Director Product Management, Integration
Desktop Clients
2Agenda
- Your Architecture
- Salesforce.com Integration Capabilities
- Force.com API
- S-Controls / Mashups
- Outbound Messaging
- Next Generation Integration Services
- Apex Web Services
- Force.com SOA Callouts
- Additional Resources
- QA
3Your Architecture
Data Warehouse
Middleware/ Enterprise Service Bus
SFA
Service Support
ChannelManagement
Data Enrichment
4Your Architecture
Integration to Salesforce.com?
Data Warehouse
Middleware/ Enterprise Service Bus
?
?
?
Data Enrichment
SFA
Service Support
ChannelManagement
5The Force.com API
Overview
- Salesforce provides programmatic access to your
organizations information using a simple,
powerful, and secure application programming
interface, the Force.com Web Services API.
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
6The Force.com API
How does it work?
- Login call
- Log in to the login server and receive
authentication information to be used for
subsequent calls
1
Force.com Mobile
Force.com Builder
Username/Password
Force.com Connect
Apex Code
http/s
Force.com API
URL/Session ID Token
Force.com DB
Force.com OS
7The Force.com API
How does it work?
- Salesforce Objects (sObjects)
- are representations of your organizations
Salesforce data - e.g. accounts are represented by an Account
object - The Account object has fields that represent the
account name, phone number, shipping address, and
so on
2
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
8The Force.com API
How does it work?
- Operations
- Create, update, and delete data (create, merge,
update, upsert, delete calls) - Replicate data locally (getDeleted and getUpdated
calls) - Perform administrative tasks (e.g. getUserInfo ,
setPassword calls) - Obtain and navigate metadata (e.g.
describeSObject call) - Work with workflow and approvals (process call)
3
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
9The Force.com API
How does it work?
- Operations
- Query your organizations information (query,
queryAll, queryMore, and retrieve calls) - Use the Salesforce Object Query Language (SOQL)
to construct simple powerful query strings
3
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
10The Force.com API
Salesforce Object Query Language (SOQL)
- Similar to SQL syntax
- Allows you to specify
- Source object (such as Account),
- A list of fields to retrieve
- Conditions for selecting rows in the source
object. - Sample SOQL statementSELECT Name FROM Account
WHERE Name like 'A' - Supports Relationships
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
11The Force.com API
How does it work?
- API call
- After logging in, defining and populating the
sObject and choosing the operation
4
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
URL (http/s)
Force.com API
Force.com DB
Force.com OS
12The Force.com API
Facts
- The Force.com API exposes
- all standard Salesforce Objects.
- all custom Salesforce Objects and custom fields
on standard Salesforce objects - The Force.com API is secure
- Supports Secure Sockets Layer (SSL) protocol
SSLv3 - Username/Password Credential Authentication
- Optional Support for SAML and other token
mechanisms
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
13The Force.com API
Facts
- The Force.com API is fast and reliable
- 4.3 Billion Transactions in Q4FY07
- gt 55 Web Services API transactions
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
14The Force.com API
Facts
- The Force.com API is standards-based
- Simple Object Access Protocol (SOAP) 1.1
compliant - Web Service Description Language (WSDL) 1.1
compliant - WS-I Basic Profile 1.1 compliant
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
15S-Controls/Mash-ups
Overview
- S-Controls let you build and host your own custom
web pages inside Salesforce.com - S-Controls enable you to build Mash-upsMash-up
(web application hybrid), a website or web
application that combines content from more than
one source (Source Wikipedia.com)
/ Mash-up
16S-Controls/Mash-ups
Overview
- S-Controls enable you to build Business Mash-ups,
e.g. exposing back office data like - Order History
- Pending Invoices
- Payment History
- Credit Limit/Exposure
- etc.
- along with Account Data in Salesforce.com
Account, Opportunity data
Order Management data
/ Account/Open Orders Mash-up
17S-Controls/Mash-ups
1
How does it work?
- Create a new S-Control
- HTML
- URL
- Snipped
- Embed the S-Control in Salesforce.com as a
- Custom Web Tab
- Custom Button or Link
- Detail Page
- Dashboard Component
- Standard Button Override
1
2
2
18S-Controls/Mash-ups
Facts
- S-Control are executed locally in your browser,
not on the Salesforce.com server - S-Control can display data in the Salesforce.com
user Interface that is not physically stored in
Salesforce - Please note that you can not report on data that
is not stored in Salesforce.com
19Outbound Messaging
Overview
- Outbound Messaging enables real-time integration
by sending Outbound Messages from Salesforce.com
to any Web Service endpoint exposed on the
Internet based on triggered Workflow Rules.
20Outbound Messaging
Overview
Call back using Partner/Enterprise URL, Session
ID Token contained in the original Outbound
Message
- Outbound Messaging
- is asynchronous
- but allows easy callbacks into Salesforce.com
using the Force.com API(all Outbound Messages
contain Enterprise/Partner URL and a Session ID
Token for easy backs)
api
21Outbound Messaging
1
How does it work?
- Create a Workflow Rule / Approval Process
- Define Workflow Rules / Approval Processes that
trigger Outbound Messages - Create an Outbound Message Workflow Action
- Manage Outbound Message content and Endpoint URL
- Download Outbound Message WSDL file
1
2
2
22Outbound Messaging
How does it work?
- Implement a Web Service Listener that consumes
the Outbound Message - Find .NET and Java examples on the Apex
Developer Network (ADN) at
3
www.salesforce.com/developer
api
23Outbound Messaging
Facts
- Outbound Messaging is
- Reliable
- 24 hours retry for failed Outbound Messages
- Secure
- Supports HTTP/S
- Supports X.509 Client Certificates
- Outbound Messages sent from salesforce.com IP
Addresses - Outbound Messages contain Salesforce.com
OrganizationId
api
24Enterprise IntegrationCombining the Salesforce
Platform with your Architecture
Next Generation Integration Services
25Apex Web Services
Overview
- Apex Code is the new on demand, multi-tenant
programming language that extends the
capabilities of the Apex platform by introducing
the ability to write code that runs on
salesforce.com servers. - Apex Code can be organized in Classes
Apex CodeClass
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
26Apex Web Services
Overview
- An Apex Code Class can be exposed as a Web
Service by declaring the Package as a
webService - The webService Apex Code Class becomes an Apex
Web Service that can be invoked by any external
or internal application
Apex Code Class
Web Service
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
27Apex Web Services
How does it work?
- Write your Apex Code Class
- Use the webService annotation to expose a Method
of the Class as Web Service - Download the WSDL file
- Go to Setup Build Code
- Click the name of a package that contains
webService methods - Click Generate WSDL
class myPackage webService Id
makeContact(String lastName
,Account a) Contact c new
Contact(lastName 'Spohn', AccountId
a.Id) insert c commit return
c.id
1
2
3
28Apex Web Services
Facts
- Apex Code is
- Hosted
- Multi-Tenant aware
- Automatically upgradeable
- Easy to test
- With Apex Code and Apex Web Services you can
build Custom Web Services APIs
Force.com Mobile
Force.com Builder
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
29Force.com SOA Callouts
Overview
- Force.com SOA Callouts is a powerful new
capability of the Apex programming language. - With Force.com SOA Callouts, developers can
leverage Web services from anywhere, and build
them into their on-demand applications.
Force.com Mobile
Force.com Builder
Apex Web Service Client
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
30Force.com SOA Callouts
Overview
- Force SOA Callouts
- allows synchronous callout to any Web Service
from within Apex Code - creates Apex Code stubs based on your Web
Services WSDL file (think of it like WSDL2Apex)
Force.com Mobile
Force.com Builder
Apex Web Service Client
Force.com Connect
Apex Code
Force.com API
Force.com DB
Force.com OS
31Force.com SOA Callouts
How does it work?
- Choose any Web Service and upload your Web
Services WSDL file - Generate Apex Code stubs from uploaded WSDL
1
2
32Force.com SOA Callouts
How does it work?
- Call the Web Service
- Use the generated Apex Code stubs in your Apex
Code to call the Web Service, e.g. Oracle
Financials, SAP R/3, Hoovers or Google
3
OracleWebService
Force.com Mobile
Force.com Builder
Apex Web Service Client
Force.com Connect
Apex Code
Force.com API
GoogleWebService
Force.com DB
Force.com OS
HooversWebService
33Force.com SOA Callouts
How does it work?
- Build and run your next generation Mash-up with
absolutely no software
4
Salesforce Objects Billing History Current
Address Latest Company News
34Additional Resources For Salesforce Integration
Apex Developer Network
- Developer community
- Discussion Boards
- Blogs
- Documentation/Downloads/FAQs
- Code samples and more
- Get more info at www.salesforce.com/developer
35Additional Resources For Salesforce Integration
SuccessSalesforce Professional Services
- Integration Services That Meet Your Needs
- Integration Strategy
- Solution Design
- Design Review
- Complete Solution Delivery
- Best in Class Partnerships
- The Latest Technology Expertise
- The Most Integration Experience
- More info at salesforce.com/services-training/
36Q