Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Status

Page Status

Owner
StakeholdersRAI-ext, Praveen BAVISKAR-ext, Amit 
Jira Request ID

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-738

Jira Development ID

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-765

High-Level Specification

ParameterValue
Application System (Source)Ariba
Application System (Target)Icertis
Source System InterfaceAriba
Target System InterfaceIcertis
Business Process Reference03.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

  1. Custom Time-Based Job in Icertis
    • A configurable
    , daily-scheduled
    • job will be
    developed
    • implemented in Icertis to
    trigger
    • initiate the supplier deactivation synchronization process
    , with flexibility to adjust
    • on a scheduled basis.
      The scheduled job uses a cron expression to control execution frequency and timing, allowing easy adjustments without code changes. 
  2. 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.
  3. 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.
  4. Last Run Time Stamp in Icertis
    • Maintain a last run time stamp in Icertis ensure only unprocessed or missed records are picked in subsequent runs.
  5. Manage Offset
    1. A 24‑hour offset parameter will be maintained. During each execution of the supplier deactivation job, records will be fetched not only based on the Last Run Timestamp but also for the additional duration defined by the offset to avoid missing any updates.

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

draw.io Diagram
bordertrue
diagramNameDiagramme sans nom-1761829478250
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth771511
height191271
revision213


Step

Description

Comment

1

Schedule Custom Job in Icertis queries Inactive suppliers

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 Supplier Records

Fetches supplier data from Ariba

4

Check supplier Active Flag

Evaluates which suppliers are inactive

5

Identify Inactive Suppliers

Filters suppliers marked as inactive

Receives inactive suppliers from Ariba MDS API

Fetches data from inactive suppliers from Ariba

36

Deactivate suppliers in Icertis via Business Bulk API

Uses Business bulk API to update the status

7

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.

      Dependencies

        • If an agreement is in Draft status and the associated supplier is deactivated, the supplier may be replaced within that agreement manually.
        • 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.
      • Supplier reactivation will be done through Standard Ariba Adaptor integration.

      Dependencies

      Supplier should be created in Icertis - Supplier Master through standard Icertis - Ariba Adaptor integrationNot Applicable

      Security, Integrity and Controls

      Not Applicable

      The following are the Security and Authorization considerations for this interface:

      • Access to Ariba APIs is limited via a shared secret to secure End Point connection
      • Access to API authorization in SAP Ariba Sourcing are being addressed by Ariba standard security controls. Only authorized persons with Ariba administrator’s role can access/ change API OAuth Keys.
      • Similarly, access to API authorization in Icertis are being addressed by Icertis standard security certification. 
      • Icertis authentication is done through certification method as the task resides in Icertis environment. 

      Configuration Requirements

      • Technical Configuration - Job Scheduling in Icertis
        • Frequency: Daily execution
        (configurable to weekly or custom intervals).
        • Execution Time:
        Adjustable to align with system maintenance windows or business hours.
        • As mentioned in the Job Register
        • Retry Logic: Define retry attempts* and intervals for failed runs. *) Best practice is a maximum of 3 attempts.
        • Notification Settings:
        Email or system alerts
        •  Notifications will be sent for job
        success/failure
      • 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 deactivation status is not being updated in Icertis, leading to inconsistencies in Supplier data in Ariba and Icertis.
    • Integration Approach: Implement a direct API-based solution to ensure real-time and consistent updates of supplier status
    Not Applicable

    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

    fields

    field within the payload will be used to provide the required information for this interface:

    FieldDescription
    Active (Boolean field)Active: when Active = "True" 
    Inactive: Active = "False"
    Status => in Suppler MasterActive = Created / Inactive = Deactivated


    Target Structure

    The following fields field within the table ICMSupplierMasterwill be used to provide the required information for this interface:

    FieldDescription
    Status (String field)

    Active: Status = "Created" 

    Inactive: Status = "Deactivated"

    TypeOfContractStatic value - Masterdata
    ContractTypeNameStatic value - ICMSupplierMaster
    RequestIdentifierAuto Increase - eg: MD123 (format MDXXX)
    IdSysid of the ContractTypeName
    ActionStatic value - Deactivate
    EndpointVersionStatic value - 2
    UseExternalIdStatic value - true
    EntityNameStatic value - ICMSupplierMaster
    IdSysid of the ContractTypeName
    NoteStatic Value - "Bulk Action - Supplier Deactivation"
    IsPrivateStatic value - true
    UniqueValuesSysid of the Bulk Action Record
    DisplayValueStatic Value - 01
    ExternalIdStatic value - null

    Mapping and Calculation

  • Ariba Supplier API (for supplier status retrieval) : AribaMDSOrganization

  • Icertis Business Bulk API (for supplier deactivation) : POST/v{version}/bulk/masterdata

    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 TableAPI or Portlet NameSource FieldRequired (Y/N)DescriptionTarget
    Field
    TableAPI or Portlet NameTarget FieldRequired (Y/N)Description
    Rule TypeRule Instruction
    Supplier MasterMaster Data Retrieval API for Sourcing

    Active

    Active: Active = "True"
    Inactive: Active = "False"

    Y
    ICMSupplierMaster/v{version}/bulk/masterdata

    Status

    Active: Status = "Created" 

    Inactive: Status = "Deactivated"

    YIf Active = FALSE, then Status = "Deactivated".
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    TypeOfContract

    YStatic value - Masterdata
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    ContractTypeName

    YStatic value - ICMSupplierMaster
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    RequestIdentifier

    YAuto Increase - eg: MD123 (format MDXXX)
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    Id

    YSysid of the ContractTypeName
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    Action

    YStatic value - Deactivate
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    EndpointVersion

    YStatic value - 2
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    UseExternalId

    YStatic value - true
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    EntityName

    YStatic value - ICMSupplierMaster
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    Id

    YSysid of the ContractTypeName
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    Note

    YStatic Value - "Bulk Action - Supplier Deactivation"
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    IsPrivate

    YStatic value - true
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    UniqueValues

    YSysid of the Bulk Action Record
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    DisplayValue

    YStatic Value - 01
      




    ICMSupplierMaster/v{version}/bulk/masterdata

    ExternalId

    YStatic value - null

    Processing Logic

    Processing within Source

    • Initial Full Load: Configuration for first-run logic to deactivate all inactive suppliers.Initial sync of supplier status to be done manually using bulk update masterdata
    • Delta Updates: Enable incremental fetch based on last successful run "TimeUpdated" and Offset timestamp.

    Processing within Middleware

    Not Applicable

    Processing within Target

    • Bulk API Settings in Icertis: Batch size limits , concurrency settings for deactivation.(Offset settings and Batch size limit to be discussed with Icertis) 
    • APIs Used:

      • Ariba Supplier API (for inactive supplier status retrieval) : AribaMDSOrganization 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 Sourcingrequest 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.

    Code Block
    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:

    Code Block
    {
            "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:

    Code Block
    languagejs
    {
      "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 Create and Change is managed using standard Icertis-Ariba Adaptor (ERP-247). Supplier  Deactivation will be done through this custom interface (ERP-765) and re-activation will be done through standard integration (ERP247)."

    Interface Constraints

    Not Applicable.

    Delivery Requirements

    • Frequency: Daily execution (configurable to weekly or custom intervals).execution 
    • Execution Time: Adjustable to align with system maintenance windows or business hours.

    Delta or Full Load Requirements

    • Initial Full Load: Configuration for first-run logic to deactivate all inactive suppliers.Initial sync of supplier status to be done manually using bulk update masterdata
    • Delta Updates: Enable incremental fetch based on the last successful run timestamp"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  support.integration@syensqo.com with failure details. Integration support team can then reach out to Ariba (if Ariba API's are down) or Icertis (if Icertis Bulk API has issues)
    • To validate the successful records, Navigate to Icertis→ Configure->Masterdata→ Supplier Master, Add Filters - Modified Date <Enter Date>Status: "Deactivated". This will give the records deactivated successfully on a given day

    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 are 
      Resource TypeMax items per job
      Master Data5000
    • 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

    Timeout & Error Handling: Define thresholds for API response and fallback mechanisms.

    SAP Ariba API Errors
    If the API call to SAP Ariba fails, an email notification should be sent to  support.integration@syensqo.com.


    Icertis Bulk API Invocation Errors
    If the invocation of the Icertis Business Bulk API fails, an email notification should be sent to support.integration@syensqo.com.


    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  support.integration@syensqo.com.

    After Retry is exhausted

    If all retires are exhausted during API/System outage (both Ariba and Icertis), we are maintaining Last Run Date which only captures the successful last run, the next job will be executed from the last run date and will sync the missed records as well


    Testing

    How to Test

    Test Conditions and Expected Results

    IDConditionExpected Results
    1Initial Full Load
    First run of the job with full supplier list from Ariba.
  • All suppliers marked as inactive in Ariba are deactivated in Icertis.
  • Audit log captures all changes.
  • Job completes without errors.
  • 2

    Daily Delta Update
    Job runs after initial load; Ariba has newly deactivated suppliers

    • Only newly inactive suppliers since last run are deactivated in Icertis.
    • No changes to active suppliers.
    • Audit log shows only delta updates.
    3

    No Changes Scenario

    Supplier previously inactive is reactivated in Ariba

    • No updates made in Icertis.
    • Job completes successfully with “No changes” status.
    • Audit log reflects zero updates.
    24Supplier Reactivation in Ariba
    • Reactivation handled by standard integration adaptor (not custom job).
    • Custom job does not attempt to reactivate supplier.
    • Audit log confirms no action taken.
    53API Connectivity Failure
    Ariba API is unavailable during job execution.
    54

    Data Integrity Check

    Supplier record in Icertis already marked inactive before job runs.

    • Job skips redundant deactivation.
    • Audit log notes skipped records.
        • No duplicate actions performed.
    5

    Record Validation

    Navigate to Icertis→ Configure->Masterdata→ Supplier Master

    Add Filters - Modified Date <Enter Date>

    Status: "Deactivated"

    • User can see how many records were deactivated on a given day
    6

    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


    Attachments
    previewfalse
    patterns^(?!.*\.(png|jpg|jpeg|svg)$).*
    sortOrderdescending

    Change log

    Change History
    limit10