View
219
Download
0
Category
Preview:
Citation preview
7/29/2019 OracleSOA11g
1/52
Bridging the Gap between InternalSystems and Salesforce.com using
Oracle SOA Suite 11g
Overcoming Salesforce.com Integration Challenges
August 2010
Author: Brian Sipsey of M&S Consultinghttp://www.mandsconsulting.com
7/29/2019 OracleSOA11g
2/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 2
Bridging the Gap between Internal Systems andSalesforce.com using
Oracle SOA Suite 11g
INTEGRATING INTERNAL SYSTEMS AND CLOUD BASED
APPLICATIONS
As the world of Business / IT Alignment evolves, and Process Centric IT becomesa focus for gaining visibility and driving transformation, organizations must assess
if each application can be seamlessly integrated into the enterprise. The business
model where a third party company manages applications and infrastructure inside
of a cloud, aka Software as a Service (SaaS), has left organizations wondering
what boundaries a cloud really has. How well can clouds integrate into an
enterprise? Does our organization have control of our Software as a Service (SaaS)
and managed environments?
Oracle SOA Suite 11g, a member of the Fusion Middleware family, is a powerful
suite of products for integration applications and SaaS environments. At a high
level, integrating with a SaaS application might appear just like any other
integration project. However, SaaS solutions have additional complexity around
security, scalability, and endless customization options that require proper tooling
to effectively achieve the integration. This white paper will demonstrate how one
can bridge the gap between internal systems and SaaS applications. It will use
Oracle SOA Suite 11g and Salesforce.com, both leading products in their space, to
illustrate the concepts.
INTEGRATING SALESFORCE.COM INTO THE ENTERPRISE
There are many cases where it is valuable to automate business processes which
originate or pass through Salesforce.com. A sale that originates in Salesforce.com
could be then be automatically available in downstream CRM and Orderingsystems once the sale is closed. Customers data may need to be synchronized and
potentially updated in Salesforce.com to help instruct Sales Associates of cross
selling opportunities. This whitepaper will describe how to overcome integration
challenges and mold Salesforce.com to conform to the business needs of the
enterprise.
Software as a Service (SaaS) is also known
as Cloud computing because a third
party has full ownership of all hardware
and software. Use of the application is
licensed out to customers as a service.
Advantages of the SaaS business model
are a low startup cost, reduced risk for
customers without strong internal IT, and
increased scalability as users can be added
and removed as needed
Disadvantages are that there is no direct
control of the environments, and licensing
fees over time will typically result in a
higher total cost of ownership.
7/29/2019 OracleSOA11g
3/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 3
SaaS Interface Challenges
If we look at the nature of SaaS, a few notable design challenges present
themselves that should be addressed at the beginning of an integration project. A
direct look at the nuances of Salesforce.com web services gives insight into
common challenges of most SaaS providers.
Overcoming Salesforce.com Integration Challenges
SaaS Challenge Oracle Fusion Middleware Solution
Fine Grained,
Weakly typed
Services
Salesforce.com business services, like most application
business services, attempt to be flexible, powerful and
generic so users may accomplish any function. This leaves
customers with the task of orchestrating the services to
extend the functionality to make it readily consumable by
the organization.
Salesforce.com doesnt provide a strongly typed CRUD
service for each object which is common in object oriented
models. Instead, Salesforce.com provides single Create,Retrieve, Update, and Delete methods that work with
generic arrays of objects of ANY type, and SQL queries
that can be run directly against the Salesforce.com database.
Processes within Oracle Fusion Middleware can identify the
contents of the generic object arrays, and cast them into
strongly typed arrays of objects so that data can be easily
accessed within the middleware.
Security SaaS Web Services are publicly available on the internet,
meaning user logins, sessions, and security certificates must
be well managed. SOA Suite can easily authenticate with
Salesforce.com login methods and enforce additionalencryption using centralized security policies.
Scalability Large volumes of customers access Salesforce.com web
services through a single login access point, and are
redirected to a site specific end point after login. Real time
assignment of web service binding information helps
Salesforce.com handle the volume, but presents an
additional challenge to integration developers. SOA Suite
makes it easy to dynamically update endpoint bindings on a
service definition after login.
Customizations Salesforce.com allows users to add custom fields to any
business object, but propagates this field into the service
definition causing changes in the Middleware layer. Oracle
Fusion Middleware provides an Enterprise Service
Repository and a Meta Data Service (MDS) that can be
Software as a Service(SaaS) vendors have
integration layers similar to most mature
applications. Workflow can typically be
configured to generate outbound events,
and Web Service APIs provide fine grained
access to the business objects.
7/29/2019 OracleSOA11g
4/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 4
used to centrally administer updates and manage versions.
Inbound and outbound service definitions can generate the
same objects with different definitions that cause schema
validation errors if both schemas are imported into the
same project. A loosely coupled design of inbound and
outbound services should be used to avoid this problem.
Schema validation can be turned off as a compiler option,but this is not recommended.
Public Outbound
Event Interfaces
Salesforce.com workflow can be easily configured to trigger
events to a publicly available endpoint. Oracle Fusion
Middleware makes it easy to expose and secure services
conforming to a specified service definition.
PROBLEM STATEMENT
The use case covered for this white paper is a value add scenario where any high
priority Account will be automatically followed up by a Business Owner who canreach out to the client to discuss additional opportunities. The Sales person will beusing Salesforce.com to identify high priority accounts, and the Business Ownerwill be using an external Enterprise Application to contribute opportunities.
Business Process for High Priority Accounts
BusinessOwner
(EnterpriseApp)
SalesRepresentative
(Salesforce)
Set Salesforce
Account to High
Priority
Follow Up on
Account to
Discover Sales
Opportunities
Enter Sales
Opportunities
Pursue Sales
Opportunity
Account Follow Up - Salesforce.com Outbound IntegrationWhen a Sales Representative using Salesforce.com indicates an Account is highpriority, the account automatically transfers to an external Enterprise Applicationso the a Business Owner can further assess the clients needs.
Opportunity Creation - Salesforce.com Inbound IntegrationA Business Owner will place a follow up call to a customer, and enter strategyinformation on the account in an Enterprise Application. A correspondingOpportunity will be automatically created under the account in Salesforce.com fora Sales Representative to pursue.
Differentiating a sales process by
integrating Salesforce.com with other
applications in the enterprise can generate
enormous value and transparency into
Sales operations. The ability for SOA Suite
to monitor and provide real time reports on
the success of any standardized business
process can also inform about the success
of enterprise wide sales strategies.
7/29/2019 OracleSOA11g
5/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 5
This Business Process will explore many integration features of Salesforce.comsuch as Workflow, Outbound Messages, and the create and query methods of theweb service API. This design will also demonstrate features of Oracle SOA Suite11g including Mediators, and the creation of a loosely coupled architecture usingSOA Composites. The diagram below shows how everything fits together.
Component Layout of the Solution
Enterprise
Application
Oracle Fusion Middleware - SOA Suite
Workflow Rule
Trigger Account
Followup
Outbound Message
Salesforce
Outbound
Salesforce
Inbound
Web Service Layer
Save and Query
Opportunities
Database
Salesforce
*
*
*
**
*
*
*
Enterprise
Application
Inbound
Enterprise
Application
Outbound
Account
Follow Up
Enterprise
Business
Service
**
** **
* * * *
Overview of Solution
To follow the steps outlined in this white paper, the following items are required.
1. Salesforce.com User Account (a trial account can be obtained for 30 days)2. Install JDeveloper 11g, available on the Oracle Technical Network (OTN)
http://www.oracle.com/technetwork/middleware/soasuite/downloads/i
ndex.html.
Notable new features in Oracle Fusion
Middleware 11g are Mediator Service
Engine and SCA Composites. The Mediator
Service Engine makes it faster to develop
services focused on transformation and
routing. The SCA Composite allows BPEL
Processes, Mediators, and other engines
(Rules, Human Workflow, etc) towork
together in the same project.
7/29/2019 OracleSOA11g
6/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 6
3. Install the Oracle Database, WebLogic Server and SOA Suite 11g (allavailable on OTNhttp://www.oracle.com/technetwork/middleware/soasuite/downloads/index.html)
1. Salesforce.com Outbound Integration
Scenario: When an account is updated in Salesforce.com with a status of High, the
corresponding Opportunity will be sent to SOA Suite for processing in theenterprise.
1.1 Create an Enterprise Business Service1.2 Create a Salesforce.com Outbound Event1.3 Create a Salesforce.com Workflow Rule1.4 Consume the Outbound Event with Oracle SOA Suite1.5 Configure the Salesforce.com Outbound Event2. Salesforce.com Inbound Integration
Scenario: Creating a business service that exposed by SOA Suite to the enterprise
that creates Opportunities within Salesforce.com.
2.1 Configure a Project for the Salesforce.com Inbound Integration2.2 Salesforce.com Authentication2.3 Create a New Salesforce.com Opportunity2.4 Query the Opportunity based on the Account Id3. Enterprise Application Integration with DB Adapters
Scenario: SOA Suite will be used to create an inbound business service to add
Accounts and an outbound event that notifies when strategy information is added
to an account.
3.1 Setup the Enterprise Application Databse3.2 Insert a Record into the Enterprise Application Database3.3Trigger Events from the Enterprise Application Database3.4 Configure Enterprise Business Service Routing Rules4. Testing and Auditing the Integration
Scenario: Walk through an end to end test, and audit the process within SOA
Suite.
4.1Account Follow Up Test (Salesforce.com -> Enterprise Application)4.2Audit the Account Follow Up Integration within Oracle SOA4.3
Opportunity Creation Test (Entperise Application to Salesforce.com)4.4Audit the Opportunity Creation Integration within Oracle SOA
5. Conclusion
This technical white paper is broken
down into several distinct sections
that make it easy to jump to a
particular section of interest, or follow
the paper step by step as a primer on
Salesforce.com integration with
Oracle Fusion Middleware.
7/29/2019 OracleSOA11g
7/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 7
SECTION 1 - SALESFORCE OUTBOUND INTEGRATION
Business processes often originate from user actions within. A Workflow Rule will
be created to trigger an event when an account is set to high priority. The
Workflow Rule will then be linked to an Outbound Message
Within SOA Suite, a service will be created to consume the outbound event. To
ensure the design is application independent, an Enterprise Business Service will
also be created to decouple the Salesforce.com integration from externalapplications.
The Salesforce.com API documentation should be explored to see more options:http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htm.
Section 1.1 - Create an Enterprise Business Service
To ensure the integration is loosely coupled and application independent, the first
part of the project is to create a Business Service and Account definition that does
not conform to either application specific representation of an account.
Step 1 - Open Oracle JDeveloper 11g
It is assumed that JDeveloper 11g and SOA Suite 11g have been installed. Bothcan be downloaded from oracle.com.
Step 2 - Create a new Application and an empty SOA Project
In JDeveloper, navigate to File | New | Application. Create a Generic
Application named SalesforceIntegration. Right click on the application, and select
New Project. Choose to create a SOA Project and name it AccountFollowUpEBS.
Step 3 - Create a Enterprise Account Business Object
Right click on the xsd directory within the SOA Project, and select New | XML |
XML Document | Name the Document EnterpriseAccount.xsd. This enterprise
account will serve as the canonical definition used in the middleware layer as an
interchange format for accounts that is application independent. Copy the
following schema definition into the xsd file.
An Enterprise Business Service is a
concept used in Oracle AIA (Application
Integration Architecture) to loosely couple
Application Business Connector Services,
and also to enforce an Application
Independent Business Domain. In this
white paper, the inbound and outbound
services are similar in concept to the
Application Business Connector (ABCS)
providers and requestor services.
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htmhttp://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htmhttp://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htmhttp://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htmhttp://www.salesforce.com/us/developer/docs/api/Content/sforce_api_om_outboundmessaging_setting_up.htm7/29/2019 OracleSOA11g
8/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 8
Step 4 Create a new Mediator for Routing between applications
Drag the Mediator Service Component from the Component Pallete into the SOA
Composite, and Name the mediator AccountFollowUpMediator. Under Template,choose Interface Definition from WSDL. There is no WSDL yet, but clicking on
the gear next to WSDL URL will generate one.
Step 5 Create a Service Definition accepting the Enterprise Account
On the Request tab, click on the flashlight, and select Project Schema Files |
EnterpriseAccount.xsd | Enterprise Account. Then set the operation name toupdateAccount and the port type name to updateAccount_ptt. Accepting these
settings will create the business service that will be used to route between
applications.
Mediators make it easy to quickly define a
service definition based on an existing
schema (xsd) by clicking on the generate
WSDL gear icon.
7/29/2019 OracleSOA11g
9/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 9
Step 6 - Deploy the AccountFollowUpEBS Project
Deploy the process that was just created so the endpoint is available for the
inbound and outbound Application Business Connectors. The routing on this
service will be updated again at the end of the paper once the inbound integrations
have been created.
Section 1.2 - Create a Salesforce.com Outbound Event
Define the structure and obtain the service definition for the outbound message.
Step 1 - Login to Salesforce.com
An assumption for this document is that you have a valid salesforce.com account.
A test sandbox account should be used to avoid impacting production
environments. A trial account can be obtained for 30 days.
Step 2 - Create a New Outbound Message
A workflow can be setup so that it executes when a certain data condition is met,
and send an outbound message containing a specific Salesforce.com object.
To create a workflow, navigate to the following location: Setup | Create |Workflow and Approvals | Outbound Messages | New Outbound Message.Salesforce.com will ask you to fill out three steps to complete the workflow.
Step 3 - New Outbound Message: Select ObjectSelect Opportunity as the object to send in the outbound message as shown below.
A Salesforce.com workflow can be used to
detect complex data conditions and trigger
an outbound message to notify external
applications.
7/29/2019 OracleSOA11g
10/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 10
Step 4 - New Outbound Message: Configure Outbound Message
Fill out the name, description, and outbound URL. Since the endpoint has notbeen created yet, fill out a generic endpoint and the correct endpoint will be addedonce the publicly accessible service is available. Add the Opportunity fields thatwill be sent with this outbound message.
Step 5Verify Outbound MessagePress next to accept the default settings on step 3, and verify the Outboundmessage was correctly setup as shown below.
Step 6: Obtain Service Definition for Outbound Event
Select the Click for WSDLlink, and save the wsdl that pops up asworkflowOutboundMessage.wsdl. The WSDL file is a service definition definingthe format that a web service will adhere to in order to consume the outboundmessage.
Section 1.3 - Create a Salesforce.com Workflow Rule
Now that an outbound event is created, a rule needs to be setup to trigger theoutbound event.
To consume outbound messages from
Salesforce.com, a service must be visible
to salesforce. This white paper uses a
publicly accessible endpoint. Additional
Security configurations are available
through Salesforce.com.
7/29/2019 OracleSOA11g
11/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 11
Step 1 - Create a New Workflow Rule
To create a Workflow Rule, navigate to the following location: Setup | Create |Workflow and Approvals | Workflow Rules | New Rule. Salesforce.com will askyou to fill out three steps to complete the workflow.
Step 2 - New Workflow Rule: Select ObjectSpecify that the Account object is going to be monitored by this workflow.
Step 3 - Configure Workflow Rule
Configure the Rule by filling out the following fields:
Workflow rules can be triggered on any
Salesforce.com object based on the
objects state, such as when it is newly
created, and also based on a list of
conditional statements around each field
making it easy to generate business
relevent events.
7/29/2019 OracleSOA11g
12/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 12
Rule Name: Customer NotificationDescription: Send a message to Oracle SOA Suite when a customer is updatedEvaluation Rule: When a record is created, or edited and did not previously meetthe rule criteriaRun This Rule if the following criteria are met: Customer Priority equals High
Step 4 - Specify Workflow Actions
Link the outbound message created earlier named AccountChange to the
Workflow to trigger the message.
Step 5 - Select Outbound Message and Save the Action
Step 6 - Pressing Done to Finalize the Workflow Rule
At this point there are still two remaining salesforce.com configuration tasks.
1) The endpoint on the outbound message should be updated once the webservice is made publicly available.2) The Workflow Rule needs to be activated, which can be done by selecting theActivate Button after the Outbound Message is configured with the correctendpoint.
Salesforce.com Workflows Actions can be
associated with Tasks, Email Alerts, Field
Updates, and Outbound Messages .
7/29/2019 OracleSOA11g
13/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 13
Section 1.4 - Consume the Outbound Event with Oracle SOA SuiteThis section describes how to use Oracle JDeveloper 11g to implement a webservice conforming to the service definition for the outbound event generated bySalesforce.com in the previous section. Once the message is received, a mediatorwill transform the message and route it to the Enterprise Business Service.
Step 1 - Create a new SOA Composite project within JDeveloperNavigate to File | New | Application | SOA Application and fill in the required
fields to create a New SOA Composite project. Name the ProjectSalesforceOutboundIntegration.
Step 2 - Copy the Salesforce.com Outbound Message Service Definition into the project
Copy the Salesforce.com service definition (workflowOutboundMessage.wsdl)downloaded in the previous section into the project directory that was created. Tofind the project directory, navigate to the workspace directory configured forJDeveloper, find the application directory, and then the project directory. Therefresh button on the tree view will need to be pressed in JDeveloper to verify theservice definition is available within the project.
Step 3 - Create a Mediator to Consume the Outbound Salesforce.com Message
Drag a Mediator from the Component Palette into the new SOA Composite.Name the Mediator OutboundSalesforceEventFollowUp and choose InterfaceDefinition from WSDL. Click the Find Existing WDSL (+) Logo next to theWSDL URL, and select the workflowOutboundMessage.wsdl.
Consuming the Oubound Event can be
done by creating an end point that
conforms to the service definition
published by Salesforce.com. With Oracle
SOA Suite 11g, a Mediator can be used to
transform and route the message with just
a few simple steps.
7/29/2019 OracleSOA11g
14/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 14
Step 4 Create a Web Service Reference to the Enterprise Business Service
Drag the Web Service from the Components Palette into the External Referencessection of the SOA Composite. Name the reference UpdateAccountEBS, and clickon the Find Existing WSDLs icon next to the WSDL URL field. In the SOAResource Browser, change the drop down to Resource Palette, Expand theapplication server and project where the Enterprise Business Service is located, andselect the AccountFollowUp service endpoint. Choose Okay to accept theconfigured service.
Step 5 Connect the Mediator to the UpdateAccountEBS Service Reference
For this demo, Web Service references are
obtained from the server rather than the file
system to ensure correct service bindings
are setup. Deployment plans in Oracle SOA
Suite 11g allow users to create
configurations that work with multiple
environments.
7/29/2019 OracleSOA11g
15/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 15
Step 6 Open the Mediator and Select the Transform Icon
Step 7 Create a new Transform File and update the mappings
Step 8 Obtain an Endpoint for the Salesforce.com Outbound Integration
Deploy the process to SOA Suite. Open the Enterprise Manager, expand the SOA
-> soa-infra, and verify the process was deployed successfully. Obtain an endpointby clicking into the service and pressing the Test Web Service button.
Section 1.5 - Configure the Salesforce.com Outbound Message
This section shows how to update the end point on the outbound message andactivate it.
Mediators are based on the former Oracle
Enterprise Service Bus and in SOA Suite
11g, can be added to SOA Composites to
work side by side with other SOAComponents such as BPEL Processes.
7/29/2019 OracleSOA11g
16/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 16
Step 1 - Update Endpoint Location for the Salesforce.com Outbound Event
Login to Salesforce.com and navigate to Setup | Create | Outbound Messages|Edit Account Change. Update and save the Endpoint URL to the publicly exposedendpoint.
1.4.2 Activate the Salesforce.com Outbound EventOn the Outbound Message Detailscreen, select theActivatebutton for the Customer
Notification workflow rule that appears under the Workflow Rules Using thisOutboundMessage section. The salesforce inbound integration has now beencompleted. This can be unit tested by creating a high priority account withinsalesforce and seeing if the cooresponding SalesforceOutboundIntegrationcomposite is kicked off within SOA Suite.
SECTION 2 SALESFORCE INBOUND INTEGRATION
Salesforce.com exposes standard web services for performing Create, Update,
Retrieve, and Delete (CRUD) operations on underlying business objects. OracleFusion Middleware is ideal for orchestrating the Salesforce.com business services
to drive functionality and expose a powerful layer of web services that are more
relevant to the business.
This section describes how to create a SOA Composite containing a BPELProcess that will orchestrate Salesforce.com services. The process will accept anAccount containing additional strategy information, Login to Salesforce.com,Create an Opportunity, and then Query that Opportunity based on its account id.
Section 2.1 Configure a Project for the Salesforce.com InboundIntegrationThis section will describe how to download the Salesforce.com Web Service API,configure elements, variables, and partner links, and plan the flow using the scopeactivity.
Ensure the Business Service exposed toconsume Salesforce.com Outbound
messages is visible to Salesforce.com.
When SOA Suite is running within anorganization, network administrators may
be required to allow Salesforce.com accessto the endpoint, the ip may need to be
changed to a host name, and the port mayneed to be opened so it is accessible
outside a firewall.
7/29/2019 OracleSOA11g
17/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 17
Step 1 - Create a new SOA Composite Project with a BPEL ProcessIn JDeveloper Studio 11g, navigate to File | New | Create SOA Project. On Step1, enter the Project Name SalesforceInboundIntegration, choose compositetemplate Composite with BPEL, and press Finish.
A Create BPEL Process will now pop up. Enter the nameSalesforceInboundIntegration and specify the template as a One Way BPELProcess. This can also be made synchronous or asynchronous depending on what
functionality the business service will contain.
Step 2 - Generating the Salesforce.com Web Service Definition
An Enterprise WSDL is published by salesforce.com to represent the customsalesforce.com domain for each customer. After setting up customizations tobusiness objects within Salesforce.com, a developer must log in to salesforce.comand navigate to setup | Develop | API Enterprise WSDL. Save the file as tothe local file system as SalesforceEnterpriseServices.wsdl.
Step 3 - Add a Partner link for the Salesforce.com Services
Add the SalesforceEnterpriseServices.wsdl file to the project. Click the flashlight tofind the SalesforceEnterpriseService.wsdl. A Ref file will be created to addadditional partner link types.
Every time a custom field is added to an
Object within Salesforce.com, the change
will propagate into the generated service
definition.
7/29/2019 OracleSOA11g
18/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 18
Step 4 - Modify the BPEL Process input variable to accept an Enterprise Account
Since this process is expected to lookup an account, the input parameter needs tobe updated to accept an Enterprise Account. Add the EnterpriseAccount.xsd tothis project. Open the schema definition for the BPEL Process.
Add the following as shown in the illustration.1) The namespace definition:
xmlns:eca=http://xmlns.oracle.com/EnterpriseAccount 2) The import statement:
3) Update the process element to:
The following image shows the new schema for the BPEL Process.
Step 5- Expose the Opportunity complexType as an Element
The complex types within the Salesforce.com service definition need to beexposed as elements before they can be manipulated as variables within BPEL. Todo this, open the SalesforceEnterpriseServices.wsdl, find the Opportunity complextype, and add the line:
Step 6 - Create a SalesforceOpportunity variable
Create a new variable to setup the Opportunity that will be created inSalesforce.com. Open the new variable dialog by clicking on the (x) on the outerscope of the process flow. Enter the name SalesforceOpportunity. Chose element,
The Enterprise Account is a simple
canonical data model used to establish an
enterprise domain that is independent of
any other application.
This example could have been designed as
a single BPEL Process that worked with
both Salesforce.com and the Enterprise
Application database. A loosely coupled
design is just as easy to create and will
quickly add value when changes come
along down the road.
http://xmlns.oracle.com/EnterpriseAccounthttp://xmlns.oracle.com/EnterpriseAccounthttp://xmlns.oracle.com/EnterpriseAccounthttp://xmlns.oracle.com/EnterpriseAccount7/29/2019 OracleSOA11g
19/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 19
and look through the available element in the enterprise.wsdl file to locate theOpportunityElement that was just added.
Step 7 - Create a Variable to store Session Header Information
Create a new variable to set the session id information that can be attached to soaprequests when invoking the Salesforce.com API. Select the Message TypeFlashlight | expand SalesforceEnterpriseServices.wsdl |Select the Header messagetype.
Step 8 - Create a Variable to update the Endpoint
This section will create a Endpoint Reference that can be used to update the serverurl on the partnerlink for all requests after a login to salesforce. Open the Create
New Variable Dialog, and enter the variable name endpointReference. Select TypeElement, select the flashlight, and then choose the option Import Schema File.Type the URL http://schemas.xmlsoap.org/ws/2003/03/addressing as the url,and enter ok. The addressing schema will now appear as an imported schema inthe type explorer. Select the EndpointReference as the type and create the variable.
Salesforce.com objects are generated as
Complex Types in the service definition.
Elements need to be created based on
these complex types to manipulate them as
variables.
7/29/2019 OracleSOA11g
20/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 20
Step 9 - Add Scopes to Outline the Process Flow
Section 2.2Salesforce.com Authentication
Access to the Salesforce.com API requires authentication with thesalesforce login service, creating a session header to submit tosubsequent requests, and updating the endpoint on the partner link for
subsequent requests. For this project, the login endpoint binding usedfor login is: http://login.salesforce.com/services/Soap/c/19.0.
Step 1 Add Login Activities
Add an Assign activity named AssignCredentials, and an Invoke activity namedLoginToSalesforce within the LoginToSalesforce scope.
When using BPEL, scopes are handy for
laying the functional aspects of a process
flow prior to adding each activity.
7/29/2019 OracleSOA11g
21/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 21
Step 2 Configure the Login to Salesforce.com Invoke Activity
Select the SalesforceEnterpriseService Partner Link, login operation and createdefault input and output variables.
Step 3 Configure the Assign Credentials Invoke Activity
Setup the user name and password for the Salesforce.com Account.
Logging into Salesforce.com will return a
session id and a server URL to be used for
authentication and site specific binding on
subsequent service calls.
7/29/2019 OracleSOA11g
22/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 22
Step 4 - Add Assigns to Set the Endpoint and Session Header
Step 5 - Initialize an Endpoint Reference Element
Use the following XML Fragment to initialize the end point.
The session id needs to be passed into the
SOAP header on method calls to validate
identity.
7/29/2019 OracleSOA11g
23/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 23
Step 6 - Copy the Server URL into the Endpoint Reference
Step 7 - Update the Endpoint Reference to Salesforce.com
All customers log into the same login
service and are dynamically routed to a
customer specific endpoint for accessing
other Salesforce.com services.
7/29/2019 OracleSOA11g
24/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 24
Step 8 - Copy the Session ID into the Session Header Variable
Section 2.3 - Create a New Salesforce.com Opportunity
In this section, a Salesforce.com Opportunity will be created, required fields will bepopulated, and then the opportunity will be sent to the create operation on theSalesforce.com business service.
Step 1 Fill in the Write Opportunity Scope
The create operation in Salesforce.com
accepts an array of objects, so multiple
objects of different types can be submitted
in a single service call.
7/29/2019 OracleSOA11g
25/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 25
Step 2 - Configure the Write Opportunity Invoke
Choose the SalesforceEnterpriseService as the partner link, create as the operation,and generate the default input and output variables.
Step 3 - Set the Session Header on the Invoke
JDeveloper 11g does not provide a graphical way to set the header variable, butthis can be remedied by updating the BPEL Source directly. Switch to the sourceview and add the following attribute to the invoke:bpelx:inputHeaderVariable="headerRequest"
In JDeveloper 10G, a tab on the invoke was
used to set the session header. This tab
has been removed in 11g, but the
underlying BPEL can be updated directly inthe source view to pass in the session id.
7/29/2019 OracleSOA11g
26/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 26
Step 4 - Intialize the Opportunity Element
In the Set Opportunity assign, we must fill in a series of copy operations topopulate the Opportunity with required fields to write it to Salesforce.com.
The xml used in the XML Fragment is:
7/29/2019 OracleSOA11g
27/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 27
Step 5 - Write the Account ID
Set the high level account id in the Salesforce.com Opportunity to link it to thecorrect account.
Step 6 - Set the Opportunity Name
For this example, the name will be the text Auto Generated plus the value enteredinto the Promotion Strategy field.
Setting the account id on an opportunity
will automatically link it to the desired
Account.
7/29/2019 OracleSOA11g
28/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 28
Step 7 - Set the Amount of the Opportunity
A generic value of $5,500 will be set to the value of the opportunity.
Step 8 - Set the Sales Stage for the Opportunity to Prospecting
Automatically creating an Opportunity
within Salesforce.com will allow a Sales
Representative to identify customer needs
without constant communication with the
Business Owner.
7/29/2019 OracleSOA11g
29/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 29
Step 9 - Set the Opportunity Description to the Strategy Notes
Step 10 - Set the Close Date
Step 11 - Assign the Opportunity as the Create Input Object
Salesforce.com returns errors as strongly
typed messages in the response. Fault
handlers will be useful for catching binding
faults, but the response variable also needs
to be checked to determine if any specific
business faults occurred,
The diagram in Step 11 shows that the
create variable is weakly typed as an array
of ANY type elements. All of the CRUD
services work in the same way requiring
the objects to be cast into strongly typed
elements before the data can be easily
accessed.
7/29/2019 OracleSOA11g
30/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 30
Section 2.4 - Query the Opportunity based on the Account IdThis section will validate the opportunity was created and associated to the correctAccount. This adds no functionality to the process, but demonstrates how toperform a query.
Step 1 Add Activities needed to perform a Query
Step 2 Fill out the Query Account Invoke Activity
Set the Partner Link to SalesforceEnterpriseService, the operation to query, andadd default input and output variables.Salesforce.com has created a proprietary
Query language called SOQL (Salesforce
Object Query Language) that is very similar
to SQL and can be used to join objects and
specify conditional clauses.
7/29/2019 OracleSOA11g
31/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 31
Step 3 Set the Session Header on the Invoke
Switch to the source view and add the following attribute to the invoke:bpelx:inputHeaderVariable="headerRequest"
Step 4 Assign the Query String
Salesforce.com uses a query language similar to SQL called SOQL which can beset on the query. This query will return all opportunities on the account that hasbeen passed in, which can be seen during audit to validate the opportunity wascreated.
The SOQL Query used here is: concat("SELECT Id, Name, AccountId
,CloseDate, Amount FROM Opportunity WHERE AccountId='",bpws:getVariableData('inputVariable','payload','/client:process/client:CustomerAc
count/ns6:accountId'),"'")
SECTION 3 - ENTERPRISE APPLICATION INTEGRATION WITH DB
ADAPTERS
This section will create a fictitious application named Enterprise Application todemonstrate how to use the DB Adapter in SOA Suite to build inbound andoutbound integrations with a database. The routing rules on the EnterpriseBusiness Service created at the beginning of this white paper will then be updatedto create a loosely coupled integration between Salesforce.com and the EnterpriseApplication.
Section 3.1 - Set up the Enterprise Application Database
To keep things simple, this white paper will assume the Enterprise Application willbe a simple database schema with a single table to store Account information. Two
A SOQL Builder is available at
salesforce.com to help build and test SOQL
Queries.
7/29/2019 OracleSOA11g
32/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 32
account fields will be unique to the application named Promotion Strategy andStrategy Notes. Once filled in, this additional data will be used to auto generate aSalesforce.com Opportunity for the account.
To set up the Enterprise Application, create a new database user namedEnterpriseApp, and execute the following SQL to generate the Customer AccountTable.
CREATE TABLE "ENTERPRISEAPP"."CUSTOMER_ACCOUNTS"("ACCOUNT_ID" VARCHAR2(20 BYTE) NOT NULL ENABLE,"ACCOUNT_NUMBER" VARCHAR2(20 BYTE),"ACCOUNT_NAME" VARCHAR2(20 BYTE),"DESCRIPTION" VARCHAR2(20 BYTE),"ANNUAL_REVENUE" VARCHAR2(20 BYTE),"NUMBER_OF_EMPLOYEES" NUMBER,"PHONE" VARCHAR2(20 BYTE),"PROMOTION_STRATEGY" VARCHAR2(20 BYTE),"STRATEGY_NOTES" VARCHAR2(20 BYTE),"CREATE_DATE" DATE,"UPDATE_DATE" DATE,CONSTRAINT "CUSTOMER_ACCOUNTS_PK" PRIMARY KEY ("ACCOUNT_ID")
)
Section 3.2 - Insert a Record into the Enterprise Application DatabaseThis section will demonstrate how to create a web service that accepts accountsand inserts them into the Enterprise Application.
Step 1 - Create a New Project
Create a SOA Project named EAInboundIntegration containing a BPEL Processnamed EAInboundAdapter.
Step 2 - Configure the Input Element to Accept an Enterprise Account
As was done earlier in this paper, import the CustomerAccount.xsd into theproject. Then add the corresponding namespace, import statement, and Requestelement as shown below.
Step 3 - Create a Database Adapter to Insert Accounts
Open the EAInboundAdapter bpel process. Drag and drop the Database Adapterfrom the components panel into the partnerlink area of the BPEL Process.
The Adapter Configuration Wizard will appear.Step 1: Click Next.
The Database Adapter automatically
exposes complex database functionality
such a Merge, Insert, Update, Delete,
Select, and database polling as web
services containing auto-generated requestand response messages.
7/29/2019 OracleSOA11g
33/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 33
Step 2: Add Service Name EnterpriseApplicationDB and Click NextStep 3: Select or Create a Connection to the database and click NextStep 4: Select Perform an Operation on a Table, check Insert Only, and press Next
Step 5: Select the Table by clicking Import Table. Query for theCustomer_Accounts table, move it into the Selected column, Press Next, and thenPress Next again.
Step 6 : Press Next to skip Reachable Relationships
Multiple tables can be chosen to create
logic requiring table joins.
7/29/2019 OracleSOA11g
34/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 34
Step 7 : Setup the attributes that will be written
Step 8: Click NextStep 9: Click Finish.
Step 4 - Layout the Process
Create scope in the BPEL Process named InsertAccount filled with an Transformactivity named SetupAccount and an Invoke activity named InsertAccount. A finalreturnSuccess assign activity has also been added to update the output value toSuccess.
7/29/2019 OracleSOA11g
35/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 35
Step 5 - Configure the Insert Account Invoke
Configure the Invoke Operation to use operation insert and create the defaultparameters.
Step 6 - Transform the Enterprise Account
To convert the Enterprise Account into a readable format, open the transform.Select the source as the inputVariable payload, set the target to the insert inputvariable for the DB Adapter, and then Create a new mapper file namedxsl/XFormCreateAccount.xsl. Update the mappings as shown.
Step 7 - Deploy the EAInbound project
Section 3.3 - Trigger Events from the Enterprise Application Database
Now that accounts are written to the EA database, this project will set up a pollingmechanism to trigger a BPEL flow when the Strategy Notes are added to theCustomer Account.
XSLT makes it quick to create and
standardize transformations between
business domains that can be reused
throughout the application.
7/29/2019 OracleSOA11g
36/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 36
Step 1 - Create an EA Outbound Integration Project
Create a new SOA Project named EAOutboundIntegration that contains a BPELProcess named UpdateAccount. In the composite, we will delete the ExposedService that was created since the process will be initiated from a polling adapter.The default WSDL definition can also be removed.
Step 2 - Create a new DB Adapter to Poll the EA Database
Open the BPEL Process and drag the Database Adapter from the ComponentPalette onto the process. Name the Adapter DatabaseEventListener and pressnext.
The auto generated services and port types
are not needed in this bpel process since a
DB Polling Adapter will instantiate the
process, and an external service will then
be invoked.
7/29/2019 OracleSOA11g
37/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 37
Step 3 - Choose the Database Connection and press Next.
Step 4 - Choose to Poll for New or Changed Records in a Table
Step 5 - Choose the table CUSTOMER_ACCOUNTS
The Query button will display a list of available tables will appear. SelectCUSTOMER_ACCOUNT and click the arrow to move it into the selected tables.Click OK and next through to step 8.
Database Polling works by executing a
query against the database at intervals and
generating a message containing all new or
changed records. All records will be sent
as an array in the same process flow, so
records may need to be looped through and
individually processed or correlated with
long running processes.
7/29/2019 OracleSOA11g
38/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 38
Step 6 - Choose to Delete the Row that was Read
Step 7 - Accept Default Polling
Step 8 - Edit the SQL to Read Accounts with a Promotion Strategy Add a where clause to the sql by pressing the edit button and building a newExpression. Set the Query Key to Promotion_Strategy, the Operator to NotEqual, and the Second Argument to an empty Literal that will be translated to null.Then press Ok, Next, Next, Finish to create the adapter.
Database Polling requires a data condition
to be satisfied within the database to
identify when a record has changed. This
trigger can be an update or create date,
restricting the query based on a data value,
or as simple as removing the record once it
polled.
7/29/2019 OracleSOA11g
39/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 39
Step 9Update the Initial Receive Activity for the BPEL Process
Double click on the default receive activity that instantiates the process. Changethe name to ReceiveAccountUpdate, Change the Partner Link to theDatabaseEventListener, set the operation to receive, and create the defaultvariable. Ensure that the Create Instance button is checked.
When consuming outbound events from a
database, the initial Receive activity must
have the Create Instance box checked so
the process can be created.
7/29/2019 OracleSOA11g
40/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 40
Step 10 Create a Partner Link to the Enterprise Business Service
Drag a Web Service onto the BPEL Process. Name it SaveAccountEBS, make it oftype reference, and pull up the search for the WSDL URL. In the SOA ResourceBrowser, navigate to the Resource Palette| Application Server | EBS ProjectName | and select the WSDL.
Step 11 Update the clientCallback Invoke to call the EnterpriseBusinessService
By having all outbound business
connectors call the Enterprise Business
Service, it is easy to centrally configure the
routing of all messages.
7/29/2019 OracleSOA11g
41/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 41
Step 12 Add a Transform Operation
Map the input variable from the DB Polling Adapter to the outbound variablebeing sent to the Enterprise Business Service, and create a new XSL Mapper file.
Step 13 Map the EA Account to the Enterprise Account
Step 14 - Deploy the SalesforceOutboundIntegration project
Section 3.4 - Configure Enterprise Business Service Routing Rules
Now that Inbound and Outbound Integrations have been setup for Salesforce.com
and the example Enterprise Application, the routing logic within the Enterprise
Business Service can be updated.
This process is triggered by a database
adapter, so it is important to check the
Receive activity connected to the Database
Event Listener and ensure the Create
Instance option is checked.
This whitepaper describes a very simple
integration where routing can directly
occur between application specific
business connectors. For more complex
processes, the Enterprise Business Service
may route to a long running Enterprise
Business Flow that could centrally manage
the flow in an application independent way.
7/29/2019 OracleSOA11g
42/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 42
Step 1 Add Web Service References to the Salesforce.com Inbound Integration
In the AccountFollowUpEBS composite.xml, drag a Web Service onto the SOA
Composite. Create a Service named Salesforce.com of type reference, and open the
SOA Resource Browser to find the Salesforce.com Inbound WSDL location on
the application server in the Resource Palette.
Step 2 Add Web Service References to the EA Inbound Integration
Drag another Web Service onto the SOA Composite. Create a Service named
EAInbound of type reference, and open the SOA Resource Browser to find the
EA Inbound WSDL location on the application server in the Resource Palette.
7/29/2019 OracleSOA11g
43/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 43
Step 3 Connect the Mediator to the newly created Service Reference
Step 4 Add Routing Rules in the Mediator
Double Click on the Mediator to view the routing. Static Routing references havebeen created, but the routing rules need to be updated so the mediator correctly
route based on the content of the EnterpriseAccount.
For each Static Routing Rule, click on the funnel to edit the Routing Expression.
For the Salesforce.com Mapping add:
string($in.request/inp1:EnterpriseAccount/inp1:strategyNotes) != ""
For the EA Inbound Mapping, add the inverse:
string($in.request/inp1:EnterpriseAccount/inp1:strategyNotes) = ""
Once a Mediator is connected two services,
content-based routing rules need to be
configured or messages will be propagated
to both services.
7/29/2019 OracleSOA11g
44/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 44
Step 5 - Deploy the Enterprise Business Service
SECTION 4 - TESTING AND AUDITING THE INTEGRATIONThis section outlines how to run the end to end test, and then audits the BPELProcess to show the results.
Section 4.1 - Account Follow Up Test (Salesforce.com Enterprise
Application)
Step 1 - Navigate within Salesforce.com to Create New Account
After logging into Salesforce.com, select Create New Account which can also beaccessed under the Account tab by clicking the New button.
Step 2 - Enter the Account InformationEnsure the Customer Priority is set to High to trigger the workflow, and fill outthe Phone, Annul Revenue, Employees, and Description fields which will beviewed by the business user in the external Enterprise Application Press Save.
New Accounts can be created quickly in
Salesforce.com by navigating to the
Accounts tab and selecting New.
7/29/2019 OracleSOA11g
45/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 45
Step 3 - View the Account in the Enterprise Application
Section 4.2 - Audit the Account Follow Up Integration within Oracle
SOA Suite
Step 1 - Navigate to the process instances
Open the Enterprise Manager, click on SOA | soa-infra | Instances tab | PressSearch. The flow can now be seen through the SalesforceOutboundIntegrationprocess into the EAInboundIntegration Process.
Step 2 - View the Flow Trace
Click on the Instance ID for the EAInboundIntegration that was just run.
SQL Developer is being used as the User
Interface to update fields in this demo
Enterprise Application.
The flow trace highlights the loosely
coupled process flow from the
OutboundSalesforce.com integration,
through the Enterprise Business Service,
and into the Inbound EA integration.
7/29/2019 OracleSOA11g
46/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 46
Step 3 - Validate the Data Insert
Click on the EAOutboundAdapter BPEL Component to validate everything ransuccessfully. Expand the UpdateAccountInvoke to validate the data being insertedinto the Enterprise Application.
Section 4.3 - Opportunity Creation Test (Enterprise Application toSalesforce.com)
Step 1 - Update the Test Account with a Promotion Strategy and Strategy Note
Once this change is committed, the data
will be propagated back to Salesforce.com
as an opportunity within 5 seconds since
the default database polling configuration
is used.
7/29/2019 OracleSOA11g
47/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 47
Step 2 - Verify the Account was created in Salesforce.com
Open Salesforce.com, refresh the Account created earlier, and validate that theOpportunity has been created under Opportunities.
7/29/2019 OracleSOA11g
48/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 48
Step 3 - Validate the Opportunity
Click on the Opportunity Name and verify the opportunity was created.
Section 4.4 - Audit the Opportunity Creation integration within OracleSOA Suite
Step 1 - View the SOA Composite Instances
Navigate to Enterprise Manager | SOA | soa-infra | Instances | Search listing tosee that the EA Outbound and Salesforce.com Inbound SOA Composites haveexecuted.
Enterprise Manager has allowed all types of
SOA Composites to be viewed in the same
SOA admin console.
7/29/2019 OracleSOA11g
49/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 49
Step 2 - View the Flow Trace
Drill into the instance id for Inbound Salesforce.com composite. Validate that allparts of the process ran successfully.
Step 3 - Verify the Login to Salesforce.com Activity
Drill into the UpdateSalesforceAccount BPEL Component.Click on Flow View | Click on the Login to Salesforce activity and verify that thesession id and Server URL were returned.
Step 4 - Verify the Endpoint Reference
Click on the Set Server URL activity to verify the Endpoint Reference was updatedto use the Salesforce server url.
This diagram shows the session id and
server URL that were generated from a
successful login.
The partner link has been dynamically
updated to route all service calls to a
dynamic endpoint location during process
execution.
7/29/2019 OracleSOA11g
50/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 50
Step 5 - Verify the Session Header
Select the Set Session Id activity to verify that the Salesforce session id has beenpassed into the session header which will be used on subsequent invokes.
Step 6 - Verify the Write Opportunity
Click on the Write Opportunity activity and validate the Opportunity has thecorrect information and that the result says it was created successfully.
Step 7 Verify the Query and Opportunity Returned
Click on the Query Account activity and validate the SOQL (Salesforce ObjectQuery Language) was properly formed and returned the expected Opportunity.
7/29/2019 OracleSOA11g
51/52
Bridging the Gap between Internal Systems and Salesforce.com using Oracle SOA Suite 11g Page 51
The Returned Opportunity:
SECTION 5 - CONCLUSION
This whitepaper has demonstrated that integrating with Salesforce.com or anotherSaaS solution using Oracle SOA Suite 11g is not inherently more difficult thanintegrating with internal applications. The business scenario chosen provides a
primer on how to build inbound and outbound integrations around Salesforce.comthat can be adapted to just about any project. The new features in Oracle SOASuite 11g also facilitate the creation of a loosely coupled, application independentdesign.
Only the fields requested in the query will
be returned. The return value will still
conform to a Salesforce.com complex type
so it is easy to work with.
7/29/2019 OracleSOA11g
52/52
Bridging the Gap between Internal Systems and Salesforce.com with Oracle SOA Suite 11g
September 2010Author: Brian Sipsey of M&S Consulting
http://www.mandsconsulting.com
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
This document is provided for information purposes only and thecontents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied
in law, including implied warranties and conditions of merchantability
or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document and no contractual obligations
Recommended