Introduction
What exciting times at the end of 2022:
SAP TechEd has just kicked-off and of course the
SAP Cloud Application Programming Model (CAP) played a prominent role there and was covered in many sessions - incl. the
keynote by SAP's CTO Jürgen Müller.
This article points to some CAP related TechEd recordings and summarizes selected key announcements and latest news around CAP.
In case you missed it - check-out the lecture by Christian Georgi which gives a nice overview about many topics covered in this article:
Discover the Latest Innovations in SAP Cloud Application Programming Model
Other sessions with (or based on) CAP are e.g.
Develop Full-Stack Applications in SAP Business Application Studio or
Compose Enterprise-Grade Mobile Apps on SAP BTP.
CAP gets more and more popular
It's fair to state that CAP has developed into the de-facto (backend) programming model for Cloud development on the SAP Business Technology Platform (BTP) for non-ABAP based development projects. The feature richness as well as the adoption have grown tremendously in the recent years: More than 100 projects use CAP within SAP, at least the same number of customers and partners use CAP to develop Cloud apps and services, the
downloads from NPM and
Maven Central increased to around 150k per week, more than
600 blog posts cover CAP or closely related topics.
CAP is a key pillar for professional development on SAP BTP and the foundation for
low-code development with the SAP Business Application Studio (BAS).
Feature Toggles and Extensibility
Extensibility remains a crucial requirement for many customers as well as SaaS providers and CAP delivers built-in options on different levels:
- CDS Models: Add new fields, entities, relationships, and annotations for SAP Fiori Elements
- Custom Logic (Node.js): Add own custom input validations, emit custom events, etc. with JavaScript.
- Custom Data: Provide customized sets of initial content for pick lists.
- Translations: Add new languages or change labels to custom ones.
Points 2 to 4 are currently in the making and planned to released soon, stay tuned for further updates.
Verticalization & Customization
CDS Aspects allow to easily extend existing models with new fields, entities, relationships, or new or overridden annotations.
As illustrated in the graphic above, different parties can build and deploy CDS based extensions:
- Customizations — Customers of SaaS solutions (i.e. subscribers of which) need options to tailor these to their needs, again using CDS Aspects to add custom fields and entities.
- Toggled Features — SaaS providers can offer pre-built enhancement features, for example, specialization for selected industries, which can be switched on selectively per tenant using Feature Toggles.
- Composition — Finally, 3rd parties can provide pre-built extension packages for reuse, which customers can pick and compose into own solutions (see image below).
- Verticalization — 3rd parties can provide verticalized versions of a given base application, which they can in turn operate as verticalized SaaS apps.
Reuse packages and services to compose your apps
Learn more about extensibility, verticalization, customization, feature toggles, compositions... in the Extensibility Cookbook incl. the new guide for extending SaaS apps.
Kyma Runtime & Kubernetes
Next to
Cloud Foundry CAP applications can be deployed to the
Kyma Runtime of SAP BTP. The Kyma Runtime is the SAP-managed offering for the Kubernetes based Kyma cloud-native application runtime.
CAP on Kyma supports “extension” projects: single-tenant, SAP HANA DB, SAP Fiori Elements or SAPUI5 freestyle UI, XSUAA authentication and connectivity to cloud and on-premise systems. Beyond technical enablement, CAP tries to ease the way to bring your apps to the Kyma runtime.
Find more information in Uwe's Blog and the CAP documentation.
Typescript & IntelliSense Support
While CAP for Node.js itself is written in
JavaScript, it’s possible to use
TypeScript within your project as
described here.
The CAP Tools team developed a new tool called "
CDS Type Generator for JavaScript" which is planned to be released as Open Source component soon. It does enable better editor support (incl. code completion) for your JavaScript code. It will come as a slim standalone tool with small footprint and can quickly generate auxiliary typescript files.
To fully complete the picture: CAP Java also offers
typed access to data and fluent code completion in the query builder API via
generated accessor and builder interfaces.
OpenAPI (Swagger) Export
You can convert CDS models to the
OpenAPI Specification, a widely adopted API description standard.
Find more information in the CAP documentation.
By the way: It's also possible to import OpenAPI specification files (JSON) into CSN via
cds import or
programmatically.
GraphQL Support for Node.js
It's possible to serve your APIs (besides
OData and REST) using
GraphQL.
The new adapter is generally available (still in an early stage) and was made available as one of the first
open source components of the CAP team in the recent days. So check it out on
Github and start contributing!
Find more information in the CAP documentation.
CAP goes Open Source
Almost as old as CAP itself is the active discussion (shout-outs to
vobu &
gregorw) on how and when CAP will be open sourced. The good news: It's coming. Well, at least partially. Even better: it has started already. The
CAP sample apps are out there since 2019. We added the new Node.js
GraphQL adapter for TechEd. And more will follow soon: The documentation, the "CDS Typer" (Typescript), PostgreSQL... As we already received quite some contributions from within SAP, we are in the process of scanning those projects and most probably open source some of them as well.
The philosophy: It's not a big bang, we go step-by-step. We'll start with the "periphery" of CAP for Node.js, the "core" framework or parts of it might follow later. Why? The potential for an active community and contributions is biggest in the surroundings: new DB adapters, new protocol adapters... you name it.
What's Next?
This article only covers a small portion of the features the CAP team delivered in the past months. Make sure to always check-out our
Release Notes to get all the updates and changes.
Don't miss-out our next
Customer Roundtable in January 2023 where we will cover selected topics in more detail.
michael.hellenschmidt will announce it here and we will also post it on our
events &
community pages - stay tuned!