In the finance area a lot of market data like currency exchange rates, interest rates or spreads are needed in SAP to keep the finance processes running smooth. As these market data is volatile, it needs to be updated with high frequency in SAP Finance, e.g. daily.
These data is provided by suppliers like Refinitiv, Oanda or even the European Central Bank.
In the on-premise version of SAP S/4HANA or in Business Suite we saw a lot of custom reports running as application jobs using BAPIs or FMs to update the market data in the system with data provided by suppliers.
If you want to or must stick to ABAP Cloud, these artifacts are not available to you and there are no Push APIs available.
There are three ways in S/4HANA Cloud explained in here: How to Maintain Exchange Rates in SAP S/4HANA Clou... - SAP Community, two are manual which is not efficient in most cases due to the high frequency the updates needed to be done. The third option is a fully automated option, we'll share here now:
Building blocks are:
S/4HANA Cloud
SAP Business Technology Platform with Service Market Rates (MRM), the service has two data options:
1.Bring your own Market Rates (BYOR)
SAP Discovery Center Service - Market Rates, Bring Your Own Rates (cloud.sap)
here you provide the market data to the service with your own integration, e.g. via Cloud Integration
payment per service instance
this offers more flexibility, but need more setup
2.REFINITIV
SAP Discovery Center Service - Market Rates, Refinitiv (cloud.sap)
here the service is connected to the data provider REFINITIV, no further data provider is needed
payment per block of calls
this is easier to setup, but you can use Refinitiv only
Your own Data Provider (in case you decided for BYOR data option)
First you must decide on a Market Rates Service data option.
Then go to your BTP and create a service instance and a service key as descript in here Getting started with SAP Market Rates Management - SAP Community
The result looks something like this:
The service key has all relevant information like URLs and secrets.
Go to SAP Market Rates Management, Bring Your Own Rates data option | SAP Help Portal and download the postman collection if you use BYOR, in case of Refinitiv go to SAP Market Rates Management, Refinitiv data option | SAP Help Portal.
in Postman you fill the url, clientsecret, clientid, uploadUrl and downloadUrl variables with the values from your service key. The service key looks like this:
{
"LPSCallbackDependencyName": "...",
"downloadUrl": "https://....cfapps.eu10.hana.ondemand.com/downloadMarketData",
"saasregistryappname": "...",
"saasregistryenabled": ...,
"uploadUrl": "https://....cfapps.eu10.hana.ondemand.com/uploadMarketData",
"uaa": {
"tenantmode": "dedicated",
"sburl": "https://internal-xsuaa.authentication.eu10.hana.ondemand.com",
"subaccountid": "...",
"credential-type": "...",
"clientid": "...",
"xsappname": "...",
"clientsecret": "...",
"serviceInstanceId": "...",
"url": "https://....authentication.eu10.hana.ondemand.com",
"uaadomain": "authentication.eu10.hana.ondemand.com",
"verificationkey": "...",
"apiurl": "https://api.authentication.eu10.hana.ondemand.com",
"identityzone": "...",
"identityzoneid": "...",
"tenantid": "...",
"zoneid": "."
}
}
Then you use the first call from the collection to generate a JWT. The response is put in variable generated_access_token. The key expires after some time, in this case generate a new one.
Now you can use the other calls in the collection to upload and download market rates.
In case you are using Refinitiv option, you can skip this section the data is automatically provided to your instance.
You case use any middleware, e.g. Cloud Integration to provide data from your own data provider into the MRM service with the calls you see in the postman collection at your own schedule.
In CBC tenant add Item 1S4 to your scope and deploy it to your S/4HANA Cloud tenant.
App Maintain business roles + Maintain Business Users
Create a copy of SAP_BR_TREASURY_SPECIALIST_BOE and assign the role to your user.
App Communication Systems
Create a communication system that represents the MRM service instance.
fill in a meaningful system id and name and provide the url from the service key.
In the communication system create a user for outbound communication, put the clientid from service key in and use the clientsecret as password.
Make sure you hit save and not leaving it in draft.
App "Communication Arrangements"
create a new communication arrangement (CA) based on scenario SAP_COM_0203, give it a meaningful name and select the communication system from the previous step.
Some fields get filled correctly and automatically. Fill property universal resource indicator with the downloadUrl from the service key. In the end save your CA, it will look like:
now, you can check the connection (section outbound service), you should get:
App Assign Currency Notations - Data Feed
select data provider Y001 and create the pairs of currencies you need, here an example:
make sure that:
-"marketDataProperty" (json) matches "property" (screen)
a successful execution looks like this:
App Currency Exchange Rates
You can see the new values here.
Go to App "Application Jobs" in your S/4HANA tenant.
hit "Create" and select template "Request Current Market Data"
In step two you select the schedule, e.g. daily at 5 AM.
and in step three you have the options from App "Request current market data", fill it and schedule.
You can check the result in the Job log and in app Currency Exchange Rates.
If you like this post or it helped you, don't hesitate to give kudos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
3 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |