Data replication from Cloud solutions using SAP Cloud Platform
One of the most common requirements these days is the ability to extract information out from SaaS solutions like SuccessFactors or Hybris and mash it up with data from other SAP/non-SAP systems in order to generate insights and reports. In this blog I would like to show you how this can be easily achieved with SAP Cloud Platform services.
I had earlier blogged on a similar topic on the technique used to replicate data from S4HANA Cloud – “Visualize S4HANA Cloud ABAP CDS views using SAP Cloud Platform & Analytics Cloud”
For this blog, I have taken SuccessFactors as an example. This could be any other SAP/non-SAP system which has OData APIs. I have also used Smart Data Integration (which is part of SAP Cloud Platform Integration) to extract information from the source system and persist it within a HANA database on Cloud Platform.
If you have used Smart Data Integration (SDI) you would be aware of the Data Provisioning(DP) agent which needs to be installed on-premise. In this scenario, since we are dealing with cloud solutions, there is no need to use the DP agent.
The best part is you can test this in a trial account for SAP Cloud Platform. Just spin your HANA DB and try this out with your own SaaS system.
I would recommend you to start with the below HANA Academy video which describes how to setup the OData Adapter. By default, you wouldn’t see an OData Adapter. The HANA Academy video, would outline the steps to create this adapter by running the below SQL.
CREATE ADAPTER "ODataAdapter" PROPERTIES 'display_name=OData Adapter;description=OData Adapter' AT LOCATION DPSERVER
Once your OData adapter has been configured, you would need create a remote source of type “OData Adapter”. During this process you might encounter a SSL error as shown below.
(Catalog) Error reading Remote Object: InternalError: dberror(CallableStatement.execute): 403 – internal error: Cannot get remote source objects: exception 2520208: SSL requested, but no trust store configured
To overcome this, follow the steps documented in SAP Help “Consume HTTPS OData Services“. In my example, I queried the API using my browser and exported the certificate. I used the Trust Manager to import the certificate
URL : https://<hostname>.hana.ondemand.com/sap/hana/xs/admin/#/trustManager/SAML
Once the certificate has been imported, you can proceed to create a remote source under the Provisioning > Remote Sources folder. In the below screenshot, you can see that I have created a remote source “sfsf” assigned to an OData adapter. The trust store is pointed to sapsrv.pse.
Saving the remote source configuration, will pull all the entities/objects exposed from the API endpoint.
I am going to create a virtual table for the object “Achievement”
In the popup, I have provided a target schema as “SFSF_DATA”
This will now create a virtual table under the schema “SFSF_DATA”. You can also view the contents from here directly.
If you would like to persist the data in a table, you can setup replication task which can be scheduled to run on a regular basis. The below HANA Academy video cover this well.
Once you have the data in HANA tables, you can mash them up with other sources as well as connect it to reporting tools like SAP Analytics Cloud and visualize them.