Technical Articles
Using the Data Warehouse Cloud OData API with SAP Analytics Cloud
An OData API has been developed to allow SAP Analytics Cloud (SAC) to acquire Data Warehouse Cloud (DWC) data. Acquisition of data within SAC is often required for SAC Planning scenarios. Consumption of this API by 3rd party tools is also planned, but not available with the initial release.
The DWC OData API was made available in Data Warehouse Cloud from wave 2022.11 onwards.
The SAP Note 3199078 details any restrictions as to the use of the API which need to be respected, SAP Analytics Cloud (SAC) was the first supported client.
Once enabled you will be able to access the API as detailed in the Official DWC SAP Help and the SAP API Business Hub.
For bi-directional integration betweem DWC and SAC, refer to another blog post I shared – Using the SAC Data Export API with Data Warehouse Cloud and Data Intelligence.
This blog post covers the steps required to import DWC data into SAC.
- Identify the OData Source (Data Service URL) in DWC
- Lookup your redirect URI in SAC
- Create the OAuth Client in DWC
- Create OData Connection in SAC
- Import from OData Connection
- Conclusion
** Note currently I recommend using the Alternative URL as it is more reliable than the Public API URL **
1. Identify the OData Source (Data Service URL)
We could use the documentation to construct our OData URL, alternatively we can copy and paste that from our space assets.
First we can browse the available spaces using a URL such as
# Public API URL
https://dwc-tenant.eu10.hcs.cloud.sap/api/v1/dwc/catalog/spaces
# Alternative URL
https://dwc-tenant.eu10.hcs.cloud.sap/dwaas-core/odata/v4/catalog/spaces
Figure 1.1: Browse DWC Spaces via OData API
By specifying the space, we can see the assets in there.
# Public API URL
https://dwc-tenant.eu10.hcs.cloud.sap/api/v1/dwc/catalog/spaces('I049374')/assets
# Alternative URL
https://dwc-tenant.eu10.hcs.cloud.sap/dwaas-core/odata/v4/catalog/spaces('I049374')/assets
Figure 1.2: Browse Space Assets & Identify OData URLs
Identify the dataset you require and then copy assetRelationalDataUrl, this is your Data Service URL in the SAC OData Connection.
Note My JSON response is being formatted by a browser extension, yours may be JSON returned in plain text.
If we click on the assetRelationalDataUrl, we receive the metadata from the OData Service.
Figure 1.3: Metadata from OData Service
We can see the data from the OData service by appended the dataset name a second time.
Figure 1.4: Actual Data from OData Service
2. Lookup your redirect URI in SAC
The redirect URI comes from the SAC connection properties, as SAC establishes this connection to DWC
Create a new OData Connection in SAC and we can identify the URI
Figure 2.1: Create Connection
Switch Authentication Type to OAuth 2.0 Authorization Code, and scroll down to see the Redirect URI
Figure 2.2: OData Redirect URI
Copy the Redirect URI, you will need this in DWC.
https://bocauth.us1.sapbusinessobjects.cloud:443
Note, my SAC tenant is in eu10 but strangely the Redirect URI is in us1.
3. Create the OAuth Client in DWC
A new OAuth Client needs to created in DWC
Navigate to System -> Administration -> App Integration
Add a New OAuth Client, paste the Redirect URI from step 1, ensuring there are no leading spaces.
Figure 3.1: New OAuth Client in DWC
Once created copy the OAuth Client ID and Secret
Figure 3.2: OAuth Client credentials
We also need to the copy the following from the OAuth Client URLs
Authorisation URL
Token URL
4. Create OData Connection in SAC
We can now create the SAC OData Connection.
The SAC connection points to a single dataset/view from DWC,
You now have the 5 connection parameters and can copy and paste these values.
Data Service URL = assetRelationalDataUrl
OAuth Client ID
Secret
Token URL
Authorisation URL
Figure 4.1: Create OData Connection in SAC
Figure 4.2: OData Connection Details
All being well we can save the connection.
5. Import from OData Connection
We can now create either a model or dataset from our OData connection.
Figure 5.1: Create Model – Choose OData
Figure 5.2: Select Connection
Figure 5.3: Create Query from the dataset
Figure 5.4: Build OData Services Query
Figure 5.5 Data will be uploaded
Figure 5.6: Model Data
6. Conclusion
In this blog post you can see that we can now import DWC data into SAC. This (in conjunction with the SAC OData/CDI API) provides support for bi-directional integration that helps with SAC Planning scenarios.
For further reading checkout Max’s Blog on the bi-directional SAC Planning and DWC scenarios.
Hi Ian, great stuff.
Will there be any support for delta loads?
Thanks Jef,
There's no delta support that I am aware of, but it's just 1 click to reimport your dataset in SAC.
There was no indication whatsoever that this ODATA Feature was going to be SAC Specific. Even with this release - SAP DWC is lacking a key feature that is available in so many other Cloud DW Products. The ability to use odata to expose data from SAP DWC is long overdue - is this coming in the near future?
The initial release is for SAC.
Yes, we plan to make the DWC OData API available for third-party tools and applications in the near future.
Helpful! Great blog post Ian, thank you!
Hi Ian, thanks for the detailed blog. I also put the other blog link here.
Leverage the SAP Analytics Cloud Data Export Service to extract your planning data to SAP HANA, SAP Business Warehouse and SAP S/4HANA
Hi Ian,
Maybe you could help me figure this out. I am trying to find the Token URL.
Here is the story:
I have an S/4 HANA public Cloud system.
I downloaded SAC Package "SAP Financial Compliance Management" from SAC Content Network.
It comes with an OData connection "Data Source to consume the Controls Business Service" that I need to adjust so that it connects to my system.
In the Connections, I do see the created "Data Source to consume the Controls Business Service". This is the one I need to adjust.
But what do I put in the field "Token URL"? I tried with my system's URL https://mySystem.com/oauth/token but it does not seem to be the correct one.
Ian Henry
Thanks for this blog Ian. I also would like to know about creating generic OData connection in SAP DWC.
TIA,
Avinash