Easily consume external services - e.g. S/4HANA or other web services
Security built-in: role-based access control, data encryption, and secure communication protocols.
Plugins are being developed by SAP and Partners (making it extensible)
Messaging with Apache Kafka
Attachments (blob store)
Change tracking
Send notifications to SAP Build Work Zone
ABAP RFC functions
How - "The Golden Path"
Pre-requisites
VS Code (node installed etc)
SAP Business Application Studio (free trial available)
Define your data model
Use common types for consistency from @sap/cds/common - for interoperability and conciseness.
Common re-use aspects
"managed" - adds four elements to capture created by/at and latest modified by/at management information for records
"cuid" - add universally unique primary keys to your entity definitions.
"temporal" - validfrom and validto fields to the entity
Common re-use types
Country
CodeList - (ID, name. descr)
Currency
Language
Provide initial data, place CSV files in a folder called csv next to your data models
Add translated texts by *_texts.csv
Prebuilt content for countries, currencies, languages is available.
npm add @sap/cds-common-content --save
using from '@sap/cds-common-content';
Define your services
Expose your data via service models
Actions
Add or modify data - called via a POST (have side effects)
Functions
Retrieve data from server - via a GET
Add custom logic
Build custom operations to support your use case
You can use CQL as a language to interact with DB / Models
Add Fiori UIs
SAP Fiori elements apps are generic front ends, which construct and render the pages and controls based on annotated metadata documents.
Write less code and be more consistent!
Fiori Elements Floorplans
Use the Fiori Application Generator and select a floorplan which suits your usecase.
Set up navigation in Fiori launchpad
Define annotations to help define see UI Vocabulary
Re-use existing services
How much does it cost?
Complex question, as portions of the framework are open source, but to deploy in run in a production scenario typically would mean running inside BTP and HANA.
SAP BTP is ideal target destination (Cloud Foundry) but can also be deployed to Kyma (kubernetes)
HANA is preferred persistence layer ($$) however postgres can be used (cheaper)
Cost Components
Runtime
BTP Cloud Foundry
BTP Kyma
Persistence Layer
BTP on HANA
BTP on Postgres Hyperscalar
BTP on SQL Lite
SAP Business Application Studio license (free trial is available)
Who uses CAP?
SAP themselves (obviously) -> SAP Privacy Governance, SAP Financial Compliance Management, SAP Cloud for utilities and many more.
SAP Customers that have chosen BTP as their extension platform
What skills do I need?
Developer with JavaScript of Java background
SQL and DB knowledge
Web Application Development (Fiori) and UX skills
Links and Resources
Main Help Files
Main Documentation (CAPire)
UI5 Fiori Elements
Communities
A lot of SAP community has moved to the Blueskye app (twitter clone)
Conferences
Re>CAP (
Videos from 2024 Conference
SAP TechEd
Developer Productivity with CAP
Blogs
DJ Adams Blog Series
CDS Fundamentals and working with OData
Deploying an App on Cloud Foundry
Deploying CAP application to Kyma runtime
CAP Programming model - local development hurdles
Understanding CQL Queries
Multitenant SaaS applications on SAP BTP using CAP?
What is the CAP programming model?
Breathe Life into Your Services by Using Actions and Functions in CAP
Domain modelling in CAP
SAP CAP Types & tools
Send a SMS via Twilio from CAP
Making REST calls with CAP
Cheat Sheet for URI Patterns in OData actions and functions
Videos
SAP CAP Models Beginner to Advanced
My personal CAP Playlist
Youtube Hands On Dev video recordings
CAPM Conference in July 2023 (need S-User)
Presentations
ABAP is Dead - long live SAP CAPM (2019)
Books
Developing Applications with the SAP Cloud Application Programming Model ($)
SAP UI Framework for enterprise developers ($)
Code References
SAP Samples in GitHub
SAP Fiori Elements showcase
Learning
Build a App using CAP for Node.js
CAP for ABAP Programmers
Take a deep dive into OData
Developing a Fiori Elements App based on CAP OData v4
UX405 - Fiori Elements Simulations
Set up trial account with cloud identity service
Tooling
SAP Fiori Tools
The SAP Fiori tools extensions help you create applications, visualize navigation, automatically generate code, and more. Used in combination with SAP Fiori elements, these extensions can increase your development productivity, ensure the consistency of experience between applications, and help you build a scalable experience
SAP Business Application Studio
CDS has a REPL env, from terminal -> "cds repl" to test the CDS facade object