| Status | |
|---|---|
| Owner | |
| Stakeholders | |
| Jira Request ID | |
| Jira Development ID |
The objective of this integration is to establish a robust middleware process that facilitates the automated transmission of Currency Exchange Rate Master data from SAP ECC(PRS, PF2-050) to the Icertis Contract Intelligence(ICI) platform. The integration ensures that Icertis always has up-to date currency and exchange-rate information essential for contract calculations and validations. This process performs the following functions.
This integration is triggered daily through a scheduled job to ensure that Icertis consistently receives the most recent exchange-rate information required for contract evaluation and processing.

<?xml version="1.0" encoding="UTF-8"?> <ExchangeRates xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ExchangeRate> <FromCurrency>EUR</FromCurrency> <ToCurrency>USD</ToCurrency> <RateIdentifier>EUR:USD</RateIdentifier> <ValidFrom>2025-09-30</ValidFrom> <Rate>1.1743500000</Rate> </ExchangeRate> <ExchangeRate> <FromCurrency>USD</FromCurrency> <ToCurrency>EUR</ToCurrency> <RateIdentifier>USD:EUR</RateIdentifier> <ValidFrom>2025-09-30</ValidFrom> <Rate>0.8515348916</Rate> </ExchangeRate> </ExchangeRates> |
2. The interface receives the Inbound currency exchange rate data from SAP ECC and applies the below.
3. CPI performs a POST call to Icertis to update the existing currency exchange rate record.
{
"Data": {
"JobItems": [
{
"SysId": "96c08d87-3c89-4b7d-b075-e360bb41db07",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "1",
"RequestBody": {
"ICMFromCurrency": "USD",
"ICMRate": "1.1743500000",
"Name": "USD:EUR",
"ICMToCurrency": "EUR"
}
},
{
"SysId": "5449222c-3d3a-4044-baae-a17165381ed1",
"UseExternalId": "false",
"NextState": "",
"EndPointVersion": "3",
"RequestIdentifier": "2",
"RequestBody": {
"ICMFromCurrency": "SGD",
"ICMRate": "1.5000000000",
"Name": "SGD:EUR",
"ICMToCurrency": "EUR"
}
}
],
"HasMoreData": "false",
"ContractTypeName": "ICMCurrencyExchangeRate"
}
} |
Azure Application Registration
Since Icertis relies on Azure Active Directory as its identity provider (IdP), an application must be registered in Azure to enable OAuth 2.0 token generation and validation. This establishes trusted access between the middleware and the Icertis APIs.
The application registration includes defining the client ID, client secret, scope, and API permissions required to access the Icertis endpoints.
This interface is designed to enable seamless integration between SAP ECC (PRS, PF2-050), source system and Icertis the target system for currency and exchange-rate master data. The middleware orchestrates the data flow, ensuring accurate mapping, necessary transformation, and reliable end-to-end delivery.
Sample Extract from SAP ECC (PRS, PF2-050):
| FromCurrency | ToCurrency | RateIdentifier | ValidFrom | Rate |
|---|---|---|---|---|
| EUR | USD | EUR:USD | 2025-10-30 | 1.1743500000 |
| EUR | SGD | EUR:SGD | 2025-10-30 | 1.5000000000 |
The currency conversion data generated by ERP-110 contains all exchange rates. Since Icertis requires only EUR-based rates, CPI filters and extracts only the EUR conversion rates.
Transformation in CPI (Icertis required format):
| Field Name | Description | Value |
|---|---|---|
| ContractTypeName | Name of the Masterdata | Static value - ICMCurrencyConversion |
| NextState | Always Blank | |
| RequestIdentifier | Use “RequestIdentifier” to uniquely identify each item on the result endpoint’s response. This can be used to track the status of each job item of a bulk Job | Auto Increment (E.g.: 1,2,3) |
| EndpointVersion |
| Static value - 3 |
| UseExternalId | Static value - false | |
| SysId | Unique technical identifier of the record |
|
| Name | Concatenate FromCurrency and ToCurrency with ":" colon in the middle | RateIdentifier |
| ICMFromCurrency | Get the To-currency from ECC extract | FromCurrency |
| ICMToCurrency | Get the From currency from ECC extract | ToCurrency - EUR Always |
| ICMRate | -Replace comma with period (.). -Remove the forward slash / (-1) | Rate - 1.07 |
HasMoreData | Static Value - false |
Processing Logic
CPI receives the inbound currency exchange rate file from SAP ECC (PRS, PF2-050) and processes all records. The middleware filters the EUR-based exchange rates and applies the required transformation rules, including mapping the source fields to the target structure expected by the Icertis API. CPI then transmits the processed data to the next integration step, ensuring secure communication using OAuth2. If any error occurs during transformation or routing, CPI logs the issue and stops further processing. The interface follows a full-load approach—either the entire batch is successfully processed or the batch is rejected in full.
Language Requirements
The integration processes all records as a complete batch; if any issue occurs, the entire batch is rejected
Not Applicable
Given that the interface processes only around 70 records, no performance impact is expected.
Error Handling
The interface incorporates robust error-handling and monitoring to ensure reliable data processing between SAP ECC and Icertis. If any failure occurs during data load, transformation, or API communication, the entire batch is rejected to maintain data integrity.
Errors are logged with detailed information, and automated alerts are sent to the integration support team for prompt action
Testing
| TC1 | Currency and exchange rate master data is received from SAP ECC as part of the initial load | EUR-based currency exchange rate records are successfully created in Icertis. |
| TC2 | Currency and Exchange rate master data received from SAP ECC as part of the subsequent load | EUR-based currency exchange rate records are updated successfully in Icertis. |
| TC3 | Error during the transformation, mapping at the CPI End | Error is logged at CPI end. |
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.
