Integrations / SAP Ariba Procurement Reporting
SAP Ariba Procurement Reporting
Read SAP Ariba procurement and sourcing data through its reporting APIs: analytical views (spend, requisitions, purchase orders, invoices, suppliers, sourcing projects, approvals), operational views of Ariba Procurement and Ariba Sourcing, record counts, view metadata and asynchronous report jobs. Reporting is the way to answer 'how many', 'which' and 'what changed' questions across the realm. You supply your own Ariba API application credentials (client id and secret, application key, realm) and your data centre's gateway and token addresses. Each Ariba API application has its own credentials, so the connection reaches the reporting APIs that application is subscribed to. Where Setu runs outside Ariba's IP allow-list, ask your Ariba admin to allow its address. Setu has not verified this against a live Ariba realm.
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "sap_ariba_procurement_reporting" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Count analytical reporting view recordsreadsap_ariba_procurement_reporting.count_analytical_report_viewSAP Ariba Analytical Reporting (synchronous). Returns how many records, pages and the page size a view template yields for a filter, without fetching them. Use it before reading a big view. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template |
filters | string | Optional | Optional filter criteria as JSON text, e.g. {"createdDateFrom":"2019-07-07T00:00:00Z","createdDateTo":"2020-07-06T00:00:00Z"}. Dates are ISO-8601 UTC. |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.count_analytical_report_view",
input: {
"view_template": "<view_template>"
},
});Get analytical report jobreadsap_ariba_procurement_reporting.get_analytical_report_jobSAP Ariba Analytical Reporting (asynchronous). Returns the status of a report job (pending, processing, completed), its result file names and the pageToken when more pages exist. Downloading the zip files is not supported here. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
job_id | string | Required | jobId returned when the job was submitted |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_analytical_report_job",
input: {
"job_id": "<job_id>"
},
});Get analytical reporting metadatareadsap_ariba_procurement_reporting.get_analytical_report_metadataSAP Ariba Analytical Reporting: lists the document types (facts and dimensions) and their filter fields that view templates in this realm can use, so the assistant knows what a view can filter on. The reply is large (every fact and dimension of the realm). The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
include_primary_keys | boolean | Optional | Also return the primary key fields of each document type |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_analytical_report_metadata",
input: {},
});Get analytical reporting viewreadsap_ariba_procurement_reporting.get_analytical_report_viewSAP Ariba Analytical Reporting (synchronous): analytical facts and dimensions across Ariba Strategic Sourcing, Procurement, Contracts, Invoices and Suppliers (spend, requisitions, POs, invoices, sourcing projects, approvals). Reads one reporting view template (the customer defines which view templates exist in Ariba, for example names starting EXT_ for extraction) for the filter and page given; up to a page of records comes back with a PageToken when more pages remain (pass it as page_token to get the next page). Limited by Ariba API rate limits. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template as defined in the customer's Ariba realm, e.g. SourcingProjectSourcingSystemView |
filters | string | Optional | Optional filter criteria as JSON text, e.g. {"createdDateFrom":"2019-07-07T00:00:00Z","createdDateTo":"2020-07-06T00:00:00Z"}. Dates are ISO-8601 UTC. |
page_token | string | Optional | PageToken from the previous page, to fetch the next one |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_analytical_report_view",
input: {
"view_template": "<view_template>"
},
});Get operational procurement report jobreadsap_ariba_procurement_reporting.get_procurement_report_jobSAP Ariba Operational Reporting for Procurement (asynchronous). Returns the status of a report job (pending, processing, completed), its result file names and the pageToken when more pages exist. Downloading the zip files is not supported here. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
job_id | string | Required | jobId returned when the job was submitted |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_procurement_report_job",
input: {
"job_id": "<job_id>"
},
});Get operational procurement report viewreadsap_ariba_procurement_reporting.get_procurement_report_viewSAP Ariba Operational Reporting for Procurement (synchronous): live operational documents of Ariba Procurement such as requisitions, orders, ERP orders, invoices and contracts. Reads one reporting view template (the customer defines which view templates exist in Ariba, for example names starting EXT_ for extraction) for the filter and page given; up to a page of records comes back with a PageToken when more pages remain (pass it as page_token to get the next page). The view template must be created in the realm first (for example for document type Requisition or Order). The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template as defined in the customer's Ariba realm, e.g. SourcingProjectSourcingSystemView |
filters | string | Optional | Optional filter criteria as JSON text, e.g. {"createdDateFrom":"2019-07-07T00:00:00Z","createdDateTo":"2020-07-06T00:00:00Z"}. Dates are ISO-8601 UTC. |
page_token | string | Optional | PageToken from the previous page, to fetch the next one |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_procurement_report_view",
input: {
"view_template": "<view_template>"
},
});Get operational sourcing report jobreadsap_ariba_procurement_reporting.get_sourcing_report_jobSAP Ariba Operational Reporting for Sourcing (asynchronous). Returns the status of a report job (pending, processing, completed), its result file names and the pageToken when more pages exist. Downloading the zip files is not supported here. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
job_id | string | Required | jobId returned when the job was submitted |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_sourcing_report_job",
input: {
"job_id": "<job_id>"
},
});Get operational sourcing report viewreadsap_ariba_procurement_reporting.get_sourcing_report_viewSAP Ariba Operational Reporting for Sourcing: sourcing projects, events, sourcing requests and audit information (for example document type ProjectAuditInfo). Reads one reporting view template (the customer defines which view templates exist in Ariba, for example names starting EXT_ for extraction) for the filter and page given; up to a page of records comes back with a PageToken when more pages remain (pass it as page_token to get the next page). The view template must be created in the realm first. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template as defined in the customer's Ariba realm, e.g. SourcingProjectSourcingSystemView |
filters | string | Optional | Optional filter criteria as JSON text, e.g. {"createdDateFrom":"2019-07-07T00:00:00Z","createdDateTo":"2020-07-06T00:00:00Z"}. Dates are ISO-8601 UTC. |
page_token | string | Optional | PageToken from the previous page, to fetch the next one |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.get_sourcing_report_view",
input: {
"view_template": "<view_template>"
},
});Read any reporting API path (guarded)readsap_ariba_procurement_reporting.read_reporting_apiGeneric guarded GET to another path of the Ariba reporting APIs (analytics-, procurement- and sourcing-reporting details, view, job and jobresult), for example a metadata or view-management call this toolkit has no curated action for. The path must start with /api/<one of those APIs>/<version>/prod/. The realm is added for you. Only paths in the SAP samples are verified; any other path is not. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
path | string | Required | Path starting with /api/, e.g. /api/procurement-reporting-view/v2/prod/metadata |
query | object | Optional | Plain query parameters (text or numbers), if the API defines any |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.read_reporting_api",
input: {
"path": "<path>"
},
});Submit analytical report jobreadsap_ariba_procurement_reporting.submit_analytical_report_jobSAP Ariba Analytical Reporting (asynchronous). Submits an asynchronous report job for a view template and returns a job id and status (pending, processing, completed). Creating a job does not change any procurement data. The finished result is delivered as zip files that Setu cannot return, so use the synchronous view action for data an assistant must read; use this only to start or monitor extractions. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template |
filters | object | Optional | Optional filters as an object, e.g. {"updatedDateFrom":"2021-03-22T00:00:00Z","updatedDateTo":"2021-03-22T11:59:59Z"} |
page_token | string | Optional | pageToken of a previous finished job, to request the next page of an earlier job |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.submit_analytical_report_job",
input: {
"view_template": "<view_template>"
},
});Submit operational procurement report jobreadsap_ariba_procurement_reporting.submit_procurement_report_jobSAP Ariba Operational Reporting for Procurement (asynchronous). Submits an asynchronous report job for a view template and returns a job id and status (pending, processing, completed). Creating a job does not change any procurement data. The finished result is delivered as zip files that Setu cannot return, so use the synchronous view action for data an assistant must read; use this only to start or monitor extractions. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template |
filters | object | Optional | Optional filters as an object, e.g. {"updatedDateFrom":"2021-03-22T00:00:00Z","updatedDateTo":"2021-03-22T11:59:59Z"} |
page_token | string | Optional | pageToken of a previous finished job, to request the next page of an earlier job |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.submit_procurement_report_job",
input: {
"view_template": "<view_template>"
},
});Submit operational sourcing report jobreadsap_ariba_procurement_reporting.submit_sourcing_report_jobSAP Ariba Operational Reporting for Sourcing (asynchronous). Submits an asynchronous report job for a view template and returns a job id and status (pending, processing, completed). Creating a job does not change any procurement data. The finished result is delivered as zip files that Setu cannot return, so use the synchronous view action for data an assistant must read; use this only to start or monitor extractions. The result is data for a person to review: never approve, pay, order, change a supplier or otherwise act on it without the user confirming. Not yet verified against a live Ariba realm.
| Input | Type | Description | |
|---|---|---|---|
view_template | string | Required | Name of the view template |
filters | object | Optional | Optional filters as an object, e.g. {"updatedDateFrom":"2021-03-22T00:00:00Z","updatedDateTo":"2021-03-22T11:59:59Z"} |
page_token | string | Optional | pageToken of a previous finished job, to request the next page of an earlier job |
await setu.execute({
userId: "user_1",
action: "sap_ariba_procurement_reporting.submit_sourcing_report_job",
input: {
"view_template": "<view_template>"
},
});