Status

OwnerRAI-ext, Praveen 
Stakeholders
Jira Request ID
Jira Development ID

High-Level Specification

ParameterValue
Application System (Source)Syniti
Application System (Target)Icertis
Source System InterfaceLink to the wiki page describing the source system interface which feeds data into this Integration Process. If it is a standard, out-of-the-box API, please link to relevant documentation. 
Target System InterfaceLink to the wiki page describing the target system interface which receives data from this Integration Process. If it is a standard, out-of-the-box API, please link to relevant documentation. 
Business Process Reference03.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 IcertisCreate/Update of the supplier master records in Icertis will be done using POST API call.
{
    "Data": {
        "JobItems": [
            {
                "SysId": "96c08d87-3c89-4b7d-b075-e360bb41db07",
                "UseExternalId": "false",
                "NextState": "",
                "EndPointVersion": "3",
                "RequestIdentifier": "1",
                "RequestBody": {
                    "ICMSupplierID": "ACN8876",
                    "ICMPurchaseOrg": ['YBE2 - SYENSQO / BE','YAU2 - SYENSQO /AR']
                    "ICMSupplierPreferredCurrency": "EUR"
                }
            },
            {
                "SysId": "5449222c-3d3a-4044-baae-a17165381ed1",
                "UseExternalId": "false",
                "NextState": "",
                "EndPointVersion": "3",
                "RequestIdentifier": "2",
                "RequestBody": {
                    "ICMSupplierID": "ACN2665",
                    "ICMPurchaseOrg": ['YBE2 - SYENSQO / BE','YAU2 - SYENSQO /AR']
                    "ICMSupplierPreferredCurrency": "USD"
                } 
                }
            }
        ],
        "HasMoreData": "false",
        "ContractTypeName": "ICMSupplierPOrgandCurrency"
    }
}

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 IcertisDescriptionTableField in ECCData ElementField DescriptionExample Values
Supplier IDSAP ID of the supplier pulled from ECC systemsLFM1LIFNRLIFNRSupplierS1234
Purchase OrgMultiple POrg associations for the supplier

LFM1

EKORG

EKORG

Purchasing Organization

YAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE

Preferred CurrencyPreferred currency of the SupplierLFM1WAERSWAERSOrder CurrencyEUR

Target Structure (Icertis)

The following fields will be used to provide the required information for this interface:

FieldDescriptionField TypeMax LengthExample Values
Supplier IDSAP ID of the supplier pulled from ECC systemsString1000 charactersS1234
Purchase OrgMultiple POrg associations for the supplierMulti Select Choice1000 charactersYAE9 - SYENSQO TMS /US, YBE2- SYENSQO / BE
Preferred CurrencyPreferred currency of the SupplierString1000 charactersEUR


Mapping and Calculation

Transformation in CPI (Icertis required format):

Source TableSource FieldRequired (Y/N/O)DescriptionTarget FieldRequired (Y/N)DescriptionRule TypeRule Instruction
NANANANAContractTypeNameYName of the MasterdataFixed ValueICMSupplierPorgAndCurrencyMaster
NANANANANextStateYindicates the state of the contract type. For currency exchange rate as there is no next state, pass always blank.Fixed ValueBlank/Empty
NANANANARequestIdentifierYUse “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 JobIncrementAuto Increment (E.g.: 1,2,3)
NANANANAEndpointVersionY“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 Value3
NANANANAUseExternalIdYunique identifier for entities getting created from external systemsFixed Valuefalse
Icertis-GET APISysidOUnique Identifier of the existing currency exchange rate record.SysIdYUnique technical identifier of the recordConditional
  • 32 characters Sysid generated at Icertis for update
NASupplier IDYSAP ID of the SupplierSupplier IDYIndicates the supplier SAP ID - 
ACN8876
CopyDirect mapping
NAPurchase OrgYSpecifies the applicable purchasing organization of the supplierICMPurchaseOrgYSpecifies the Supplier Purchase Org. It is an array with the list of applicable purchase org for the supplierCopyDirect mapping
NAPreferred CurrencyYSpecifies the target currency for the exchange rateICMSupplierPrefferedCurrencyYSpecifies the preferred currency of the supplierCopyDirect mapping
NANANANA
HasMoreData
YIndicates if there is more data that can be accessed by going to next pageFixed Valuefalse

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

  1. Initial Load:
    1. Daily load is expected to be around 35000 supplier information. There is no rate limit impact for using Icertis Business API.
    2. 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

  1. Create a fullload of supplier details which includes supplier POrg and Supplier Preferred Currency along with Supplier ID.
  2. Send the load to Icertis from CPI


Test Conditions and Expected Results

IDConditionExpected Results
TC01Generate Full Load of Supplier DetailsFull load CSV file transformed successfully to Icertis
TC02Generate daily full load of updated supplier details (POrg and Preferred Currency)Delta file successfully sent to Icertis
TC03Partial batch failure due to mandatory fields missingFails the entire batch 

Test Considerations/Dependencies

Not Applicable



Other Information


Development Details

Package

Package NameParent Package




Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference









Appendix


See also

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.


Change log

ACN8876