| Status | Approved |
|---|---|
| Owner | RAI-ext, Praveen |
| Stakeholders | |
| Jira Request ID | ERP-169 - Getting issue details... STATUS |
| Jira Development ID | ERP-556 - Getting issue details... STATUS |
High-Level Specification
| Parameter | Value |
|---|---|
| Application System (Source) | Syniti |
| Application System (Target) | Icertis |
| Source System Interface | |
| Target System Interface | |
| Business Process Reference | 03.03.02 Manage Suppliers |
Functional Overview
Currently, Icertis syncs Supplier Master Data with SAP Ariba Sourcing, capturing supplier names and details. However, SAP Ariba Sourcing does not store Purchasing Organization or Supplier Preferred Currency information. This creates a gap because:
- Purchasing Organization is essential for filtering suppliers and for passing accurate data to SAP ECC/S4 when creating an Outline Agreement.
- Supplier Currency is required for invoicing purposes and must be consistently maintained across systems.
To bridge this gap, an interface will be built where Syniti sends updated Supplier details (including Purchasing Organization and Supplier Preferred Currency) to SAP CPI, which then forwards the data to Icertis using the Bulk Master Data API for Supplier POrg and Currency Master.
Scope and Objectives
- Enable Icertis to receive and store Purchasing Organization and Supplier Preferred Currency for each supplier from Syniti via CPI in Supplier POrg and Currency Masterdata
- Ensure consistency of supplier master data across systems.
- Support full load during initial sync and delta updates daily.
- Syniti will generate and send an CSV file to CPI daily which will be sent to Icertis for further processing.
Sequence Diagram
Step | Description | Comment |
|---|---|---|
1 | Syniti sends supplier data CSV file (Supplier ID, Purchasing Org, and Supplier preferred Currency ) to CPI | Generates CSV file. Refer ERP-555 FS |
2 | CPI retrieves the existing data from Icertis via GET call and append the Icertis sysId for the existing records. New records for the initial load will be created | CPI invokes the Icertis API via GET call to retrieve existing supplier master records along with their SysIds. CPI compares the Supplier ID value from Icertis records with the Supplier ID records received from Syniti. If a match is found, CPI appends the corresponding SysId, to the outbound payload for create/update operation. If match is not found, CPI will create new records based on the supplier id. |
3 | CPI will Create/update the existing supplier master records in Icertis | Create/Update of the supplier master records in Icertis will be done using POST API call. |
Assumptions
- Supplier ID is unique and consistent across SAP and Icertis.
- Multiple purchase org values will be sent for a single supplier
Dependencies
- In Icertis, within Supplier POrg and Currency Masterdata, Purchase Org field should be configured as multiselect.
Security, Integrity and Controls
- Secure authentication mechanisms are in place at middleware for access to Icertis systems:
- Secure HTTPS protocol is used for all data transfers between the middleware and Icertis, ensuring encrypted communication and protection against unauthorized access.
- OAuth 2.0 authentication is implemented for accessing Icertis APIs via an Azure-registered application, providing token-based security and controlled access
- Audit logging captures all integration transactions, including timestamps, request/response metadata, and error details for traceability and compliance.
Configuration Requirements
Technical Configuration
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.
Functional Configuration
- Supplier Masterdata Configuration
- Add Purchasing Organization multi select field lookup on Purchasing Organization Masterdata.
- Add Supplier Preferred Currency string field
Special Requirements
- Not Applicable
Design Rationale
Data Structure
Source Structure (Syniti)
The following fields will be used to provide the required information for this interface:
| Field in Icertis | Description | Table | Field in ECC | Data Element | Field Description | Example Values |
|---|---|---|---|---|---|---|
| Supplier ID | SAP ID of the supplier pulled from ECC systems | LFM1 | LIFNR | LIFNR | Supplier | S1234 |
| Purchase Org | Multiple POrg associations for the supplier | LFM1 | EKORG | EKORG | Purchasing Organization | YAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE |
| Preferred Currency | Preferred currency of the Supplier | LFM1 | WAERS | WAERS | Order Currency | EUR |
Target Structure (Icertis)
The following fields will be used to provide the required information for this interface:
| Field | Description | Field Type | Max Length | Example Values |
|---|---|---|---|---|
| Supplier ID | SAP ID of the supplier pulled from ECC systems | String | 1000 characters | S1234 |
| Purchase Org | Multiple POrg associations for the supplier | Multi Select Choice | 1000 characters | YAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE |
| Preferred Currency | Preferred currency of the Supplier | String | 1000 characters | EUR |
Mapping and Calculation
Transformation in CPI (Icertis required format):
| Source Table | Source Field | Required (Y/N/O) | Description | Target Field | Required (Y/N) | Description | Rule Type | Rule Instruction |
|---|---|---|---|---|---|---|---|---|
| NA | NA | NA | NA | ContractTypeName | Y | Name of the Masterdata | Fixed Value | ICMSupplierPorgAndCurrencyMaster |
| NA | NA | NA | NA | NextState | Y | indicates the state of the contract type. For currency exchange rate as there is no next state, pass always blank. | Fixed Value | Blank/Empty |
| NA | NA | NA | NA | RequestIdentifier | Y | 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 | Increment | Auto Increment (E.g.: 1,2,3) |
| NA | NA | NA | NA | EndpointVersion | Y | “EndpointVersion” don’t have any default value set. Ensure to set it to a number. The recommended value is 3 for best error handling and reporting. Supported values are 1, 2, and 3. 1 – Not recommended, 2 – Enables attribute validation, and 3 – Handles concurrency errors and enables attribute validation. | Fixed Value | 3 |
| NA | NA | NA | NA | UseExternalId | Y | unique identifier for entities getting created from external systems | Fixed Value | false |
| Icertis-GET API | Sysid | O | Unique Identifier of the existing currency exchange rate record. | SysId | Y | Unique technical identifier of the record | Conditional |
|
| NA | Supplier ID | Y | SAP ID of the Supplier | Supplier ID | Y | Indicates the supplier SAP ID - ACN8876 | Copy | Direct mapping |
| NA | Purchase Org | Y | Specifies the applicable purchasing organization of the supplier | ICMPurchaseOrg | Y | Specifies the Supplier Purchase Org. It is an array with the list of applicable purchase org for the supplier | Copy | Direct mapping |
| NA | Preferred Currency | Y | Specifies the target currency for the exchange rate | ICMSupplierPrefferedCurrency | Y | Specifies the preferred currency of the supplier | Copy | Direct mapping |
| NA | NA | NA | NA | HasMoreData | Y | Indicates if there is more data that can be accessed by going to next page | Fixed Value | false |
Processing Logic
- SAP CPI receives the inbound Supplier POrg and Currency file from Syniti
- CPI filters records based on Supplier ID.
- It applies the transformation rules, including mapping the source fields to the target structure required by the Icertis API.
- The processed data is transmitted to the Icertis API, using secure OAuth2 communication.
- 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.
Interface Dependency
Not Applicable
Interface Constraints
Not Applicable
Delivery Requirements
Scheduled job will be triggered from CPI to Icertis to create/update Supplier Porg and Currency details in Supplier POrg and Currency Masterdata
Sequencing
Not Applicable
Delta or Full Load Requirements
- The integration processes all records as a complete batch; if any issue occurs, the entire batch is rejected
- Initial full load - Syniti to send full of Supplier ID, Porg and Supplier Preferred Currency data. (Around 35000 suppliers)
- Daily updates- Every day, Syniti will send the full load of the suppliers.
Interface Alert & Monitoring
- Alerts should be configured for:
- API failures
- Validation errors
- Monitoring tools (middleware logs) should notify:
- Integration support team
- Business users (email)
- Retry logic should be in place for transient failures.
Interface Reporting
Not Applicable
Language Requirements
Not Applicable
User Interface Requirements
Not Applicable
Volumetrics
- Daily load will be around 35000 suppliers information
Performance Consideration
- Initial Load:
- Daily load is expected to be around 35000 supplier information. There is no rate limit impact for using Icertis Business API.
- Recommend to split the full records into multiple batches of 1000-2000 for stability and easier error recover
Error Handling
- The interface incorporates robust error-handling and monitoring to ensure reliable data processing between CPI 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.
- In the event of an error, retry mechanism needs to be in place.
Testing
How to Test
- Create a fullload of supplier details which includes supplier POrg and Supplier Preferred Currency along with Supplier ID.
- Send the load to Icertis from CPI
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
| TC01 | Generate Full Load of Supplier Details | Full load CSV file transformed successfully to Icertis |
| TC02 | Generate daily full load of updated supplier details (POrg and Preferred Currency) | Delta file successfully sent to Icertis |
| TC03 | Partial batch failure due to mandatory fields missing | Fails the entire batch |
Test Considerations/Dependencies
Not Applicable
Other Information
Development Details
Package
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Appendix
See also
Change log
ACN8876