What’s new in SAP Cloud Application Programming Model? TechEd 2022 Edition.


Introduction

What exciting times at the end of 2022: SAP TechEd has just kicked-off and of course the SAP 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 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:

  1. CDS Models: Add new fields, entities, relationships, and annotations for SAP Fiori Elements
  2. Custom Logic (Node.js): Add own custom input validations, emit custom events, etc. with JavaScript.
  3. Custom Data: Provide customized sets of initial content for pick lists.
  4. 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%20packages%20and%20services%20to%20compose%20your%20apps

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 Volker Buzek & Gregor Wolf) 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!