| Status | Approved |
|---|---|
| Owner | |
| Stakeholders | RAI-ext, Praveen BAVISKAR-ext, Amit |
| Jira Request ID | ERP-738 - Getting issue details... STATUS |
| Jira Development ID | ERP-765 - Getting issue details... STATUS |
High-Level Specification
| Parameter | Value |
|---|---|
| Application System (Source) | Ariba |
| Application System (Target) | Icertis |
| Source System Interface | Ariba |
| Target System Interface | Icertis |
| Business Process Reference | 03.03.04.05. Manage Contract Master Data |
Functional Overview
To ensure consistent and automated management of supplier records across systems, a custom integration and job scheduling solution will be implemented. This solution will:
- Automate the synchronization of supplier status data between Ariba and Icertis.
- Ensure alignment of supplier deactivation in Icertis with the current status maintained in Ariba.
- Reduce manual intervention and the risk of data discrepancies between the two platforms.
- Support compliance and operational efficiency by maintaining accurate and up-to-date supplier information across systems.
Scope and Objectives
- Custom Time-Based Job in Icertis
A configurable job will be implemented in Icertis to initiate the supplier deactivation synchronization process on a scheduled basis.
The scheduled job uses a cron expression to control execution frequency and timing, allowing easy adjustments without code changes. - Supplier Status Check in Ariba
The job will connect to Ariba via API to retrieve supplier records, identify those marked as inactive, and process delta updates accordingly for synchronization. - Supplier Deactivation in Icertis
Inactive suppliers identified from Ariba will be deactivated in Icertis using the Business Bulk API, ensuring data consistency, integrity, and audit traceability.
Objectives
- Automate the synchronization of supplier deactivation status between Ariba and Icertis.
- Ensure daily alignment of inactive supplier records using a configurable time-based job in Icertis.
- Retrieve and process only newly deactivated suppliers from Ariba via API to optimize performance.
- Maintain data integrity and audit traceability during supplier deactivation in Icertis.
Process Flow Diagram
Step | Description | Comment |
|---|---|---|
1 | Schedule Job in Icertis | A configurable daily job triggers the synchronization process (delta update) |
2 | Connect to Ariba via API | The job establishes a connection to Ariba |
3 | Retrieve Inactive Supplier Records | Fetches data from inactive suppliers from Ariba |
4 | Deactivate suppliers in Icertis via Business Bulk API | Uses Business bulk API to update the status |
5 | Ensure data integrity | Mark identified suppliers as Deactivated in Icertis |
Assumptions
- Supplier status (Active/Inactive) in Ariba is always up-to-date and reflects the correct business decision before synchronization.
- Job should run outside the business hours, parallel job run should be avoided to not impact the performance
- Supplier information is already created in Icertis using standard Ariba Adaptor
- Supplier is deactivated: - Icertis Standard Approach for existing agreements
- If an agreement is in Draft status and the associated supplier is deactivated, the supplier may be replaced within that agreement.
- If the agreement status is Approved or Executed, a new agreement must be created to reflect the change.
- Similarly, if an existing agreement requires an amendment, a new agreement should be initiated rather than modifying the original.
- Multiparty agreements: in this case the deactivated suppliers needs to be replaced.
- Supplier reactivation will be done through Standard Ariba Adaptor integration
Dependencies
Supplier should be created in Icertis - Supplier Master through standard Icertis - Ariba Adaptor integration
Security, Integrity and Controls
Not Applicable
Configuration Requirements
- Technical Configuration - Job Scheduling in Icertis
Frequency: Daily execution
Execution Time: Adjustable to align with system maintenance windows or business hours
Retry Logic: Define retry attempts* and intervals for failed runs. *) Best practice is a maximum of 3 attempts.
Notification Settings: Notifications for will be send for job failure event. - API Connectivity with Ariba
API Credentials: Secure storage and management of authentication tokens is ensured. Icertis securely stores all configuration data required to invoke Ariba APIs..
Endpoint Configuration: URLs for supplier data retrieval (full list and delta updates).
Special Requirements
Not Applicable
Design Rationale
- Current Gap: Supplier information is not being updated in Icertis, leading to inconsistencies in contract and vendor data.
- Integration Approach: Implement a direct API-based solution to ensure real-time and consistent updates without relying on middleware.
- Simplification Goal: Avoid additional layers of complexity by eliminating middleware.
Data Structure
Source Structure
System Roles: In this integration, SAP Ariba serves as the source and leading system for supplier status, while Icertis acts as the target system, receiving and updating supplier records based on the status maintained in Ariba.
The following field within the payload will be used to provide the required information for this interface:
| Field | Description |
|---|---|
| Active (Boolean field) | Active: Active = "True" Inactive: Active = "False" |
Target Structure
The following field within the table ICMSupplierMaster will be used to provide the required information for this interface:
| Field | Description |
|---|---|
| Status (String field) | Active: Status = "Created" Inactive: Status = "Deactivated" |
Mapping and Calculation
In this integration, the Active field from Ariba (a boolean) will be mapped to the Status field in Icertis (a string). The mapping logic is as follows:
If Active = FALSE, then Status = "Deactivated".
This transformation ensures compatibility between the data models of both systems and supports accurate status representation during synchronization.
| Source Table | API or Portlet Name | Source Field | Required (Y/N) | Description | Target Table | API or Portlet Name | Target Field | Required (Y/N) | Description |
|---|---|---|---|---|---|---|---|---|---|
| Supplier Master | Master Data Retrieval API for Sourcing | Active Active: Active = "True" | Y | ICMSupplierMaster | /v{version}/bulk/masterdata | Status Active: Status = "Created" Inactive: Status = "Deactivated" | Y |
Processing Logic
Processing within Source
- Initial Full Load: Initial sync of supplier status to be done manually using bulk update masterdata
- Delta Updates: Enable incremental fetch based on last successful "TimeUpdated" timestamp.
Processing within Middleware
Not Applicable
Processing within Target
- Bulk API Settings in Icertis: Batch size limits, concurrency settings for deactivation.
APIs Used:
Ariba Supplier API (for inactive supplier retrieval) : Master Data Retrieval API for Sourcing
Icertis Business Bulk API (for supplier deactivation) : POST/v{version}/bulk/masterdata
Ariba Supplier API (for Inactive supplier retrieval) Master Data Retrieval API for Sourcing request looks like below:
SAP API developer portal: https://eu.developer.ariba.com/api/apis This site requires access as a developer or admin.
Note that this API directly filters the suppliers and provide only inactive suppliers.
curl --location 'https://eu.openapi.ariba.com/api/sourcing-mds-search/v1/prod/entities/organizations?$filter=(Active eq false and TimeUpdated gt 2025-11-25T00:00:00Z)&%24includeInactive=true' \ --header 'Accept-Language: en' \ --header 'X-Realm: 745255310-SS-T' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <Your Auth Token>' \ --header 'apiKey: VJfuIdNt5gi5DqkNOFdXMv92HWGaA81j'
The example looks like:
{
"DynamicProfileSyncStatus": "0",
"IsCustomer": "false",
"MinorityOther": "",
"MinorityNativeAmerican": "false",
"CorporatePhone": "",
"Name_en": "Ariba P2P Test Supplier",
"CorporateURL": "",
"SystemID": "sid111",
"SystemId": "AN11228658404-T",
"IsOrgApproved": "2",
"AODMigrationStatus": "0",
"OrganizationType": "",
"TimeUpdated": "2025-10-04 00:31:30.811",
"TimeCreated": "2025-05-25 21:17:29.899",
"CorporateEmailAddress": "",
"AODDataSyncScn": "0",
"HasTradingRelationship": "false",
"Active": "false",
"HierarchyPath": "/CCNSAINDMDGykWJ",
"IsSupplier": "true",
"StateOfIncorporation": "",
"CorporateFax": "",
"IsManaged": "0"
}
Icertis Business Bulk API (for supplier deactivation) : POST /v{version}/bulk/actions/trigger
Sample payload:
{
"Data": {
"TypeOfContract": "Masterdata",
"ContractTypeName": "ICMAccountEntityMaster",
"JobItems": [
{
"RequestIdentifier": "MD123",
"Id": "739caf5b-2c9b-4ba0-9dc7-b4cfbd0cf4b3",
"Action": "Deactivate",
"EndpointVersion": 2,
"UseExternalId": true,
"RequestBody": {
"EntityName": "ICMAccountEntityMaster",
"Id": "739caf5b-2c9b-4ba0-9dc7-b4cfbd0cf4b3",
"Note": "Test Bulk Action",
"IsPrivate": true,
"ReasonCode": {
"UniqueValues": [
"763A18D2-63DB-4E39-8500-0B8BBB3697E7"
],
"DisplayValue": "01",
"ExternalId": null
}
}
}
]
}
}
Interface Dependency
Supplier master sync will happen using standard Icertis-Ariba Adaptor
Interface Constraints
Not Applicable.
Delivery Requirements
- Frequency: Daily execution
- Execution Time: Adjustable to align with system maintenance windows or business hours.
Delta or Full Load Requirements
- Initial Full Load: Initial sync of supplier status to be done manually using bulk update masterdata
- Delta Updates: Enable incremental fetch based on the last successful "TimeUpdated' timestamp. Icertis will include a "
SYNC"timestamp in the master data payload of the bulk API.
Interface Alert & Monitoring
- If supplier deactivation job fails, then retry for 3 times
- If retry fails, send an email notification to Icertis IT Support admin user group with failure details
Interface Reporting
Not Applicable
Language Requirements
Not Applicable
User Interface Requirements
Not Applicable
Volumetrics
- The integration job runs daily and retrieves only changes (deltas) compared to the previous run, including newly deactivated vendors.
The Bulk API limits on ICI areResource Type Max items per job Master Data 5000 - Process: The API queries Icertis for vendors deactivated after the last TimeUpdated timestamp.
If no changes occurred since the previous day, the API returns an empty set and no updates are processed.
Delta records since the last run job.
Performance Consideration
The execution of the scheduled job in Icertis should be carefully timed to avoid overlap with other system batch processes and to minimize impact during peak business hours. Scheduling should take into account system maintenance windows and existing job loads to ensure optimal performance and reliability.
Further considerations: Ariba Rate Limit (Requests): 10/sec, 40/minute, 200/hour, 1000/day - The rate limit will consume the bandwidth for the standard MD if both share the same application.
Error Handling
SAP Ariba API Errors
If the API call to SAP Ariba fails, an email notification should be sent to Icertis IT Support Admin user group.
Icertis Bulk API Invocation Errors
If the invocation of the Icertis Business Bulk API fails,an email notification should be sent to Icertis IT Support Admin user group.
Icertis Bulk API Processing Errors
If errors occur during the processing of supplier records via the Bulk API, an email notification should be sent to Icertis IT Support Admin user group
Testing
How to Test
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
| 1 | Daily Delta Update |
|
| 2 | Supplier Reactivation in Ariba |
|
| 3 | API Connectivity Failure Ariba API is unavailable during job execution. |
|
| 4 | Data Integrity Check Supplier record in Icertis already marked inactive before job runs. |
|
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 |
|---|---|---|---|