Setu Recipes: reusable digital workers across every app.Browse templates

Integrations / SAP Ariba Approvals

SAP Ariba Approvals

Read sourcing request and project workspaces through SAP Ariba's External Approval API for Sourcing and Supplier Management, plus a guarded read for other paths of that API and the Document Approval API. Read only: there is no approve or reject action, because those paths are not verified. Use it to look at what is waiting for approval, together with the reporting toolkit that finds the ids. You supply your own Ariba API application credentials (client id and secret, application key) for the approval API, your realm and your data centre's gateway and token addresses. Setu has not verified this against a live Ariba realm.

3 actions token_login 3 read0 write Calls openapi.ariba.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "sap_ariba_approvals" });
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

Get sourcing request workspacereadsap_ariba_approvals.get_sourcing_workspaceSAP Ariba External Approval API for Sourcing and Supplier Management: reads one sourcing request or project workspace by its id (for example SR30406740): name, description, state, owner, regions, departments, commodities and custom fields. A sourcing request is a buyer's internal request to start sourcing something; this shows its details for review before or after approval. It does not approve or reject anything. 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.
InputTypeDescription
workspace_idstringRequiredWorkspace id such as a sourcing request number, e.g. SR30406740 (find ids with the reporting toolkit's ProjectAuditInfo view)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "sap_ariba_approvals.get_sourcing_workspace",
  input: {
    "workspace_id": "<workspace_id>"
  },
});
Read any document approval path (guarded)readsap_ariba_approvals.read_document_approval_apiGeneric guarded GET to a path of the Document Approval API (paths starting /api/approval/), which handles approvals of Ariba documents such as requisitions: for example to read pending approvables or an approval flow. None of its paths are verified here (the official sample code does not use it); take them from the Ariba API reference and treat answers with care. This toolkit has no approve or reject action on purpose. 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.
InputTypeDescription
pathstringRequiredPath starting with /api/approval/, e.g. /api/approval/v2/prod/...
queryobjectOptionalPlain query parameters (text or numbers), if the API defines any
TypeScript
await setu.execute({
  userId: "user_1",
  action: "sap_ariba_approvals.read_document_approval_api",
  input: {
    "path": "<path>"
  },
});
Read any sourcing approval path (guarded)readsap_ariba_approvals.read_sourcing_approval_apiGeneric guarded GET to another path of the External Approval API for Sourcing and Supplier Management (paths starting /api/sourcing-approval/). Only the Workspace read is verified; any other path comes from the Ariba API reference and is not verified here. This toolkit has no approve or reject action on purpose. 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.
InputTypeDescription
pathstringRequiredPath starting with /api/sourcing-approval/, e.g. /api/sourcing-approval/v2/prod/Workspace/SR30406740
queryobjectOptionalPlain query parameters (text or numbers), if the API defines any
TypeScript
await setu.execute({
  userId: "user_1",
  action: "sap_ariba_approvals.read_sourcing_approval_api",
  input: {
    "path": "<path>"
  },
});