SAP Cloud ALM API – Custom kanban for Agile task management
In this article, you will find guidelines for the new SAP Cloud ALM Projects/Tasks API and the SAP Sample Apps Github repository. If you are interested in Kanban boards for SAP Solution Manager 7.2, you may want to check this blog article.
The official SAP Kanban Board sample app is built with Node 12+, HTML/CSS and jQuery. While I definitely recommend starting from scratch if you want to build a productive application, the sample is still a great tutorial to learn more about the CALM APIs. After a few changes, you can even build something quite user-friendly!
This is what I ended with:
Setup the CALM Projects/Tasks API
First you will need to enable the API itself for your instance. This official SAP Help article gives you the exact step-by-step. However, it should be noted that the Service Key is NOT to be created with an empty JSON. You can find the relevant authorization scope to be added at this step here.
Find the API specifications
All the information relevant to the CALM APIs is available on the SAP API Business Hub. It’s also a great place to test the Service Key you just created. For example, you can try getting the CALM Projects list from here by adding your own environment data first.
If you can execute the request and get a successful response listing your projects, you are good to go! Granted – not all the tasks fields are available in the API schemas (e.g. there is no Workstream data at the moment), but you should still have more than enough to start your project.
What the “kanban4calm” sample offers
Back to the official SAP kanban sample app, you will find a fairly basic example of a Kanban board. You can select one of your CALM projects, create tasks, display some of your existing tasks (not the User Stories, for example) and rename them on the fly.
For those interested in the API references, the sample app is a play on the following requests:
- /api/calm-projects/v1/projects: Get the CALM projects list for the dropdown list.
- /api/calm-tasks/v1/tasks?projectId=: Get the tasks list for a given CALM project.
- /api/calm-tasks/v1/tasks/: Create or update existing tasks.
How much more can you do?
A lot, as it turns out. From a usability perspective, there are simple mechanisms to be implemented, such as theme design, clear loading times or success/error notifications. But you can also add new Kanban features fairly easily! For example:
Display, update or delete tasks (reusing /api/calm-tasks/v1/tasks/).
Filter out some tasks types (custom).
Notify users of CALM instance unavailability (custom).
This is the beginning of a great ALM journey!