High- Level Specification
| Parameter | Value |
|---|---|
| Application System (Source) | Ariba Guided Sourcing |
| Application System ( Target) | Keelvar |
| Business Process Reference | 03.03.03.01. Manage Sourcing Projects |
Functional Overview
Ariba Guided Sourcing is interfaced with SAP ECC system (PRS) to sync Supplier Master Data. Bidders and Supplier Contacts Master Data is maintained in Ariba Guided Sourcing directly. The Supplier Master Data (including Bidders) along with Supplier Contact information is interfaced with Keelvar as well to allow the Sourcing Specialists the flexibility to invite participants to Keelvar Event. Ariba Supplier ID (System ID) is maintained as External ID in Keelvar ensuring the sync between the two systems. Whenever a supplier or Bidder is deactivated in Ariba Guided Sourcing, the supplier is also archived in Keelvar.
Scope and Objectives
The scope of this Functional Specification is to describe the interface between Ariba and Keelvar for synchronizing Supplier Master Data. Whenever a supplier/bidder is created in Ariba Guided Sourcing, the supplier will be pushed to Keelvar using Keelvar Supplier Management API. Similarly, whenever, a supplier/bidder is deactivated in Ariba, the Keelvar supplier record will be archived. Ariba Master Data API for Sourcing will be used to extract the data from Ariba Guided Sourcing
Process Flow Diagram
Step | Description | Comment |
|---|---|---|
1 | Supplier is created or deactivated in Ariba Guided Sourcing based on SAP ECC details using an Integration Event. Alternatively, a Bidder is created/deactivated in Ariba Guided Sourcing by Sourcing Specialist. | |
2 | A Scheduled Task picks up the list of all Suppliers modified since the last run | |
3 | SCPI extracts the delta vendor load using Ariba Master Data API for Sourcing and creates a payload for Keelvar Supplier Management API | |
4 | SCPI pushes the payload to Keelvar | |
5 | Keelvar creates new supplier records or updates the existing Supplier records or deactivates the supplier records based on the vendor active flag in Ariba Guided Sourcing |
Assumptions
- Following three fields have been added to the Supplier object in Keelvar:
| Field Name | Field Type | Required |
|---|---|---|
| Contact Name | Text | Yes |
| Contact Email | Text | Yes |
| Contact ID | Text | Yes |
Dependencies
- Depending on the build of ERP-116 Integration of Suppliers from SAP PRS (ECC) into Ariba
Security, Integrity and Controls
The following are the Security and Authorization considerations for this interface:
- Access to Ariba and Keelvar 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 Keelvar are being addressed by Keelvar standard security controls. Only authorized persons with Keelvar Organization User role can access/ change the Keelvar authorization token.
Configuration Requirements
In order to activate the Master Data API for Soru, following steps need to be completed:
- Click Create application from the home page.
- Fill out the Create a new application form by entering an application name and description, then click Submit.
- This generates an Application key that identifies your application within the system. Every API request your application makes must include this key as the value of the apiKey parameter.
- Ask your organization admin to request API access for your application by displaying the application in My applications and clicking .
- A user with the Organization Admin role requests approval for API access.
- SAP Ariba assesses the request, and once processed and approved, the Organization Admin user receives email with an OAuth client ID for the application.
- A user with the Organization Admin role generates the OAuth secret and base64-encoded client and secret.
In order to activate Keelvar API, following steps need to be completed:
- Log into Keelvar Portal
- Go to Account settings and navigate to API Keys section
- Click New token button and provide the name and Expiration of the token. Click create to get the token details.
Ariba Guided Sourcing configuration details are described as under:
Supplementary | Test | Production | |
Ariba Technical User | R_BTP_ARB_ADMIN | ||
Ariba Realm ID | 745255310-SS-T | 745255310-T | 745255310 |
OAuth URL | |||
Request URL |
Keelvar configuration is described below:
Special Requirements
Not Applicable
Design Rationale
The Supplier Master Data along with Contact details must be in sync between Ariba Guided Sourcing and Keelvar
Data Structure
Source Structure
The following fields will be used to provide the required information for this interface:
| Field | Description |
|---|---|
| organization - Name_en | The name of the Supplier Organization |
| organization - SystemID | The ERP vendor ID of the supplier or the Ariba System ID of the Bidder |
users - Name_en | The name of the Supplier Contact |
users - EmailAddress | The email address of the Supplier Contact |
users - UniqueName | The User ID of the Contact User |
Target Structure
The following fields will be used to provide the required information for this interface:
| Field | Description |
|---|---|
| name | The name of the Supplier Organization |
| external_id | The ERP vendor ID of the supplier or the Ariba System ID of the Bidder |
| fields/Contact Name | The name of the Supplier Contact |
| fields/Contact Email | The email address of the Supplier Contact |
| fields/Contact ID | The User ID of the Contact User |
Mapping and Calculation
| API or Portlet Name | Source Field | Required (Y/N) | Description | API or Portlet Name | Target Field | Required (Y/N) | Description | Rule Type | Rule Instruction |
|---|---|---|---|---|---|---|---|---|---|
| Entity Type - organizations | Name_en | Y | The name of the Supplier Organization | /manage/supplier_changes | name | Y | The name of the Supplier Organization | ||
| Entity Type - organizations | SystemID | Y | The ERP vendor ID of the supplier or the Ariba System ID of the Bidder | /manage/supplier_changes | external_id | Y | The ERP vendor ID of the supplier or the Ariba System ID of the Bidder | ||
| Entity Type - organizations | Name_en | Y | The name of the Supplier Contact | /manage/supplier_changes | fields/Contact Name | Y | The name of the Supplier Contact | ||
| Entity Type - users | EmailAddress | Y | The email address of the Supplier Contact | /manage/supplier_changes | fields/Contact Email | Y | The email address of the Supplier Contact | ||
| Entity Type - users | UniqueName | Y | The User ID of the Contact User | /manage/supplier_changes | fields/Contact ID | Y | The User ID of the Contact User |
Processing Logic
Processing within Source
Not Applicable
Processing within Middleware
A Scheduled Task in SCPI should run and extract all supplier updated in Ariba since the last run as under:
curl --location 'https://eu.openapi.ariba.com/api/sourcing-mds-search/v1/prod/entities/organizations?%24filter=((TimeUpdated%20gt%20dateTime))&%24includeInactive=true' \
--header 'Accept-Language: en' \
--header 'X-Realm: ARIBA_REALM_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ARIBA_TOKEN' \
--header 'apiKey: ARIBA_API_KEY'
For each of the supplier, the logic is as under:
- If 'Active= true' extract the Supplier Contact Details from Ariba as under:
curl --location 'https://eu.openapi.ariba.com/api/sourcing-mds-search/v1/prod/entities/users?%24filter=(PasswordAdapter%20eq%20%27SourcingSupplierUser%27%20and%20Organization.SystemID%20eq%20%27<SystemID>%27)& \
--header 'Accept-Language: en' \
--header 'X-Realm: ARIBA_REALM_ID' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 2ARIBA_TOKEN' \
--header 'apiKey: ARIBA_API_KEY'
The first user object available in the response payload along with the first organization payload should be used to create a request payload to Keelvar as under:
Sample JSON for the payload is available here -
Then, a request to Manage Supplier Change request should be made as under:
curl --location 'https://test.keelvar.dev/api/manage/supplier_changes' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw 'PAYLOAD_CREATED_AS_ABOVE_JSON';
- If 'Active= true' a payload should be created with the Organization ID as under:
Sample JSON for the payload is available here -
Then, a request to Manage Supplier Change request should be made as under:
curl --location 'https://test.keelvar.dev/api/manage/supplier_changes' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw 'PAYLOAD_CREATED_AS_ABOVE_JSON';
Add logic for Supplier User update.
Processing within Target
Not Applicable
Interface Dependency
- This interface should always be run after the ERP-116 Integration of Suppliers from SAP PRS (ECC) into Ariba interface has been completed
Interface Constraints
Rate Limit for Ariba Event Management API - (Requests): 5/second, 80/minute, 3500/hour
Rate Limit for Keelvar create/update Event API - Burst (120/hour), sustained (500/day)
Rate Limit for Keelvar Job API - Burst (30/min), sustained (600/hour)
Delivery Requirements
Following scheduled tasks should be configured to run every 10 minutes:
- Scheduled Task to retrieve changes to all Supplier created or updated since the last run.
- Scheduled Task to retrieve changes to all Supplier Users created or updated since the last run
Delta or Full Load Requirements
All requests for creation and update of sourcing events are done via delta load since last run.
Interface Alert & Monitoring
The following should be monitored:
- API endpoints are available.
- Keelvar token expiration.
- Failures on inbound processing and outbound side need to be handled . Please check the Error Handling section.
- Messages are processed in reasonable time (XX elapse time).
Interface Reporting
Not Applicable
Language Requirements
Not Applicable
User Interface Requirements
Not Applicable
Volumetrics
Initial Load will have large data volume. Expected load for subsequent loads - 25 updates per day
Performance Consideration
Not Applicable
Error Handling
- SAP Cloud ALM (CALM) will be used to capture integration execution errors.
- To correct the error, the Ariba Administrator must ensure that the data inconsistency is resolved in the concerned system. Corrections done in Ariba Guided Sourcing will be picked up in the next Schedule Job cycle.
- Refer to the link below to troubleshoot Error Messages Returned by the Event Management API.
Error Messages Returned by the Event Management API
- Refer to the Link below to troubleshoot Error Message Returned by Keelvar API
Testing
How to Test
- Create a new Bidder and Bidder Contact in Ariba
- Deactivate a new Bidder and/or Bidder Contact in Ariba
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
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 |
|---|---|---|---|