Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Xavier
Product and Topic Expert
Product and Topic Expert
1,558
Let’s see how to interact with the different APIs of SAP Cloud ALM.

 

Get the URL Tokens


As already seen in the previous blog, service instances are created in SAP BTP to allow external applications to consume services from SAP Cloud ALM.

 

The Service keys contains 3 parts:

  • clientID: public identifier for the service instances

  • clientSecret:  known only to the BTP service broker and the authorisation server.

  • tokenURL: give users access permission for SAP Cloud ALM


let tokenUrl = pm.environment.get("TOKEN_URL");
let clientId = pm.environment.get("CLIENT_ID");
let clientSecret = pm.environment.get("CLIENT_SECRET");

 

Before consumers can access SAP Cloud ALM API, you must obtain an access token that grants access to that API.
let getTokenRequest = {
method: "POST",
url: token_URL,
header: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: {
mode: "urlencoded",
urlencoded: [
{ key: "grant_type", value: "client_credentials" },
{ key: "scope", value: "" },
{ key: "client_id", value: clientId },
{ key: "client_secret", value: clientSecret },
],
},
};

 

The access token responses contain the list of scopes attached to the service instance. An optional scope request parameter can be passed to filter the scopes response.
pm.sendRequest(getTokenRequest, (err, response) => {
let jsonResponse = response.json(),
accessToken = jsonResponse.access_token;
pm.environment.set("TOKEN", accessToken);
pm.variables.set("TOKEN", accessToken);
});

 

 

Understand SAP Cloud ALM endpoints


SAP Cloud ALM APIs endpoints are based on the following pattern:

 

  • region: SAP BTP region (ex: eu10, eu20, ...)

  • api_name: name of the API. (ex: calm-tasks, calm-analytics, ...)

  • version: version of the API (ex: v1)

  • resources: API resources (ex: tasks, providers, ...)


 

Examples
https://eu10.alm.cloud.sap/api/calm-analytics/v1/providers
https://eu10.alm.cloud.sap/api/calm-tasks/v1/tasks
https://eu10.alm.cloud.sap/api/calm-projects/v1/projects

 

 

Working with resources


SAP Cloud ALM Projects


GET:  https://eu10.alm.cloud.sap/api/calm-projects/v1/projects

Description:  Get the list of projects.

API HUB: https://api.sap.com/api/CALM_PJM/resource

Headers: authorisation Bearer{{TOKEN}}

Request:

Response:
[
{
"id": "35b22fcc-cd63-4d6f-97ba-3a2be95a7367",
"name": "Demo create with timebox",
"status": "C"
},
{
"id": "92adaa5a-2c76-48c5-8855-53efe3b8ec0d",
"name": "demo with ms",
"status": "O"
},
]

 

 

SAP Cloud ALM Tasks


GET:  https://eu10.alm.cloud.sap/api/calm-tasks/v1/tasks?projectId=35b22fcc-cd63-4d6f-97ba-3a2be95a7367

Description:  Get the list of tasks assigned to a specific project.

API HUB: https://api.sap.com/api/CALM_TKM/resource

Headers: authorisation Bearer{{TOKEN}}

Request:

Response:
[
{
"id": "0034f9f2-b187-486b-8b97-92b349b19520",
"projectId": "35b22fcc-cd63-4d6f-97ba-3a2be95a7367",
"title": "Setup Project",
"type": "CALMTMPL",
"status": "CIPTKOPEN",
"externalId": null,
"dueDate": null
},
{
"id": "660a3ad4-5c2d-45ea-97d7-94f016502670",
"projectId": "35b22fcc-cd63-4d6f-97ba-3a2be95a7367",
"title": "Setup Central Business Configuration Integration (Optional)",
"type": "CALMTMPL",
"status": "CIPTKOPEN",
"externalId": null,
"dueDate": null
}
]

 

 

 

SAP Cloud ALM Analytics


GET: https://eu10.alm.cloud.sap/api/calm-analytics/v1/analytics/providers/data

Description: Get time-series for the last X Days for the Demo Tasks data provider.

API HUB: https://api.sap.com/api/CALM_ANALYTICS/resource

Headers: authorisation Bearer{{TOKEN}}

Request:
{
"format": "time_series",
"timeRange": {
"semantic":"L60D"
},
"queries": [
{
"name": "legend1",
"provider": "DEMO_TASKS",
"version":"V1",
"columns": {
"dimensions": [
"project"
],
"metrics": [
{
"measure": "Count"
}
]
},
"filters": [
{
"key":"project",
"value":["CRM"]
},
{
"key":"AggregatedStatus",
"value":["closed"]
}
]
}
]
}

 

 

Response:
[
[
{
"serieName": "legend1",
"totalCount": 2,
"group": "legend1",
"measure": "Count",
"attributes": [],
"dataPoints": [
[
0,
20210618000000
],
[
0,
20210617000000
]
],
"message": ""
}
]
]

 

 

In the next blog, we will discuss how to build a Digital Boardroom with the SAP Analytics Cloud.

Thanks for reading.