Integration of SAP HANA with SalesForce.com
Introduction
The integration of SAP HANA with SalesForce.com (SFDC) will provide an unique solution that will harness the user experience of SFDC with real time analysis of data using SAP HANA. In this blog we explain the POC developed using SalesForce adapter provided by SAP Business Object Data Services (BODS) to extract information from SalesForce.com, normalizing and storing the data in SAP HANA and expose processed data via SAP HANA Extended Application Services Server (XS Server).
Business Value
Statistical analysis of the customer data will help business pinpoint the inconsistencies and take corrective action. It will also help track customer behavior; identify trends and potential business opportunities. SAP HANA provides statistical functions as part of Predictive Analysis Library (PAL). These statistical functions can be used to analyze customer data from SFDC and develop a statistical control process to support client’s business objective.
Steps to integrate SAP HANA with SalesForce.com
In addition to the data analysis the other steps that go into building this solution are:
- i. Importing data from SFDC into SAP HANA
- ii. Storing the data in a normalized way in HANA database
- iii. Exposing the analyzed data for consumption by other applications
There are multiple options available to import data from SFDC into SAP, in this blog we focus on SalesForce adapter provided by SAP BODS as –
- Data can be formatted as required in HANA Database in BODS.
- Browse SFDC metadata from the BODS Designer
- Set up a fully automated process for SFDC integration
- The solution developed will take relatively less development effort
SAP HANA XS Server provides the 3 options for web clients to consume data –
- OData webservice
- XML for Analysis (XMLA) webservice
- Web based UI developed using SAPUI5.
The diagram below shows the components and dataflow for HANA to SalesForce integration.
Importing data using BODS Sales Force Adapter
To use the Adapter for Salesforce.com from SAP BusinessObjects Data Services please follow the following steps.
- Install SAP BusinessObjects Data Services version 12.0.0 or later. The Salesforce.com adapter is installed automatically with this version.
- Configure the Job Server local for adapter management.
- Configure the SAP BusinessObjects Data Services Adapter for Salesforce.com interface.
- Create adapter datastore
- Import metadata from SalesForce
- Use imported metadata to create dataflow
Develop OData WebService using HANA Extentded Application Service
OData is a resource-based Web protocol for querying and updating data that maps the persistence model to consumption models. An OData application running in SAP HANA XS can be used to provide the consumption model for client applications exchanging OData queries with the SAP HANA database.
OData enables clients to consume authorized data stored in the SAP HANA database. OData defines operations on resources using RESTful HTTP commands (for example, GET, PUT, POST, and DELETE). Data is transferred over HTTP using either the Atom (XML) or the JSON (JavaScript) format.
Given below are steps to create an ODATA Webservice for HANA XS Engine:
- Create analytical view or calculation view to be exposed as ODATA Web Service – Using Modeling perspective created Analytical view AN_ORDERS in package xsandas3.
2. Create a XS Project – A new XS Project – xs_order_prj created using Development Perspective.
a) Create a new project |
b) Select project type as – XS Project |
c) Project xs_order_prj is created with location in workspace folder xsandas3. Please note the default location option is unchecked. The workspace folder name is same as the package where the analytical view was created. |
|
d) The project- xs_order_prj that was created in the above step needs to be shared. It was shared by right clicking the project name and selecting Team -> Share project option. |
|
3. Set up ODATA Service files – Application descriptor (.xsapp) and application access (.xsaccess) files created.
Application descriptor (.xsapp) is a blank file.
a) Right click on project created and use New -> File option to create .xsapp, .xsaccess and order.xsodata files.
b) Application access (.xsaccess) file is created as shown below. This file is used define what is to be exposed as web service and who has access.
c) Create file order.xsodata to expose the analytical view – AN_ORDERS as a web service. The ODATA Service is defined as –
service {
“xsandas3/AN_ORDERS.analyticview” as “orders1” keys generate local “GID” aggregates always;
}
4. Commit and activate service – Commit and activate the .xsapp, .xsaccess and order.xsodata file.
After the files are committed and activated successfully the orange bubble icon appears
5. Testing Odata Services – OData webservices provide multiple parameters and syntax to support multiple operation such as retrieving the metadata definition, apply filter, selecting a subset of record.
ODATA URL: The ODATA URL is based on the server name, instance number of the HANA system, package name, xsodata filename and entity set name.
The actual server name, instance number, package and xsodata filename can be replaced in the URL – http://<servername>:80<instance number>/<package>/<xsodata filename> to determine the URL string.
The below table provides sample URLs and output assuming server name is acmecorp.com, instance number is 00, package – xsandas3, xsodata filename is order.xsodata and entity set name = orders1 .
Operation |
URL and Output |
Retrieve Metadata |
|
Get records in JSON format |
http://acmecorp.com:8000/xsandas3/order.xsodata/orders1?$format=json |
Get records in atom format |
|
Apply filter |
http://acmecorp.com:8000/xsandas3/order.xsodata/orders1?$filter=startswith(CUSTOMER,’901′) |
Building SOAP based web service using XMLA
XMLA enables the exchange of analytical data between a client application and a multi-dimensional data provider working over the Web, using SOAP based web service. Implementing XMLA in SAP HANA enables third-party reporting tools that are connected to the SAP HANA database to communicate directly with the MDX interface. I will provide details regarding building a XMLA service in next edition of my blog.
Accessing Webservice in SalesForce.com
Salesforce.com provides APIs that support both SOAP and REST based webservice. The Webservices defined in HANA can easily be accessed and consumed.
Reference Links –
BODS Sales Force adapter guide – http://help.sap.com/businessobject/product_guides/sboDS41/en/sbo41_ds_salesforce_en.pdf
SAP HANA Developer Guide –
http://help.sap.com/hana/hana_dev_en.pdf
Contribution
The following team developed the POC and the blog:
- Joseph Chavadiyil, Deloitte
- Anubrat Das, Deloitte
- Mohammad Ashraf, Deloitte
Integration with salesforce.com is proof point of SAP HANA's values beyond SAP software through support of open standard interfaces.
We are currently testing the XMLA interface. The connection is established, the MDX queries and requests Discover some work already.
Unfortunately, SAP Hana incorrect XML requests supplies. All timestamps (datetime) are not formatted correctly. Since the "T" between Date and Time is missing. Here an example from Discover MDSCHEMA_CUBES:
Is: ... <LAST_DATA_UPDATE> 2014-09-05 14:03:49.8910000 </ LAST_DATA_UPDATE> ...
Should be: ... <LAST_DATA_UPDATE> 2014-09-05T14:03:49.8910000 </ LAST_DATA_UPDATE> ...
We have a requirement of integrating Salesforce to hybris marketing.
Is the given approach is still suggestable or do we have any other best way to do. Please suggest the possible options for the given scenario.
Hello,
Thanks for this useful blog!
Do you have a clue if it is also possible to connect Salesforce to SAP Cloud Platform ?
It seems that Hana Cloud Integration is available for that, do you know if there are any other solutions available also ? Is Smart Data Integration working for instance ?
Thanks.