| 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 |
| 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 through GIF integration
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 splits the file into batches of 5000 and follows the naming convention | SupPorg_YYYYMMDDHHMMSS (eg: SupPorg_20260121HHMMSS) |
2 | CPI pushes the files to below blob storage Container Name– integration Storage account name – syensqodevintegration | The batch files are uploaded to blob storage SAS URL is shared privately |
3 | Icertis will the files and update Supplier Purchase Org and Currency master using standard GIF integration | Create/Update of the supplier master records in Icertis will be done using GIF integration |
Assumptions
- Supplier ID is unique and consistent across SAP and Icertis.
Dependencies
- Supplier integration from Ariba to Icertis should be executed before this load is executed
Security, Integrity and Controls
- CPI uses a time-limited, permission-scoped Shared Access Signature (SAS) token to authenticate with Azure Blob Storage. This ensures only authorized uploads are allowed, and the token cannot be used beyond its expiry date.
- The SAS token is scoped to the specific container and operation (write-only if possible), minimizing risk if the token is exposed.
- Unique, datestamped file names (e.g.,
SupPorg_DDMMYYYYHHMMSS.csv) prevent overwrites and support traceability. - Only CPI (and authorized users/services) have the SAS token, and the token is rotated before expiry.
Configuration Requirements
Technical Configuration
Azure Blob Storage
- Storage account:
syensqodevintegration - Container:
integration - SAS URL (container‑scoped, HTTPS) - shared separately
- Storage account:
- Payload Preparation & Batching
- CSV payload: Supplier ID, POrg Code/Description, Preferred Currency, Status (Active/Inactive via ECC deletion flag).
- Batching: Split into 5,000‑record files to align with GIF ingestion and operational limits
Functional Configuration
- Supplier Purchase POrg and Currency Masterdata Configuration must be created as per FS ERP-731
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 |
|---|---|---|---|---|---|---|
| Unique Key | This is the unique key to be created by Syniti for all the records. The unique key should be created using combination "Supplier ID-Purchase Org Code | NA | NA | NA | Unique Key | Q0000383-YAE9 |
| Supplier ID | SAP ID of the supplier pulled from ECC systems | LFM1 | LIFNR | LIFNR | Supplier | Q0000383 |
| Purchase Org Code | Syniti to extract Purchase Org Code | LFM1 | EKORG | EKORG | Purchasing Organization | YAE9 |
| Purchase Org Description | Purchase Org Description. This will be combination of Purchase Org Code and Description | LFM1 | EKORG | EKORG | Purchasing Organization | YAE9 -SYENSQO TMS |
| Preferred Currency | Preferred currency of the Supplier | LFM1 | WAERS | WAERS | Order Currency | EUR |
| Status | Status of the masterdata record | LFM1 | LOEVM | LOEVM | Deletion flag purchasing organization | Yes - for Active No - for Inactive (marked for deletion) |
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 |
|---|---|---|---|---|
| Unique Key (Name) | The unique key should be created using combination "Supplier ID-Purchase Org Code | String | 1000 characters | Q0000383-YAE9 |
| Supplier ID (ICMSupplierID) | SAP ID of the supplier pulled from ECC systems | String | 1000 characters | Q0000383 |
| Purchase Org Code (ICMPurchaseOrgCode) | Syniti to extract Purchase Org Code | String | 1000 characters | YAE9 |
| Purchase Org Description (ICMSupplierPurchaseOrg) | Purchase Org Description. This will be combination of Purchase Org Code and Description | String | 1000 characters | YAE9 -SYENSQO TMS |
| Preferred Currency (ICMPreferredCurrencyUniqueName) | Preferred currency of the Supplier | String | 1000 characters | EUR |
| Status (Status) | Status of the Master Data record | Label | NA | Yes or No |
File Structure
Processing Logic
- SAP CPI receives the inbound Supplier POrg and Currency csv file from Syniti
- CPI will split the files in batches of 5000 records each.
- The naming convention will be SupPorg_YYYYMMDDHHMMSS
- The processed data is transmitted to the Blob Storage Container
- 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
CPI to process the file into multiple batches of 5000 records and send it to blob container
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:
- Failure while uploading file to blob
- Email notification to be sent to IT Support Admin incase of upload failure
- Monitoring tools (middleware logs) should notify:
- Integration support team
- 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
- Not Applicable
Error Handling
- Not Applicable
Testing
How to Test
- Split the csv received from Syniti into multiple batches of 5000 records each, push it to Blob Container
- Send full load of csv without splitting into baches and send it to Blob Container
- Naming convention of the files are generated correctly
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
| TC01 | Split the csv received from Syniti into multiple batches of 5000 records each, push it to Blob Container | Batches of 5000 records should be successfully placed in Blob |
| TC02 | Send the full load of csv to Blob - Negative | Full load should fail in Icertis |
| TC03 | Validate naming convention of the file | File naming convention should be SupPorg_YYYYMMDDHHMMSS |
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
