Everything in CAP / Java
124 of 738
Domain: 2
Signals
Content: The reasoning
Java: Answers in Java
More: SAP Community
Group by: Capability
Domain Developer ExperienceDomain Data & PersistenceOffers The reasoningSource SAP CommunityClear all
EntryBySignalsLast activity
Analytical queriesUnmapped
Building an Analytical List Page with CAP OData V4Building an Analytical List Page with CAP OData V4The annotations a CAP OData V4 service needs before an Analytical List Page will render — the write-up behind the cap-alp sample indexed here. Candid about its provenance: the author credits a GitHub repository she found the approach in, and notes that the repository is no longer available, which is the whole argument for indexing the reasoning rather than only linking the code.published 2023-06-12
Building an Analytical List Page with CAP OData V4
cap-alp: no published releases, repository quiet for 24 months. Affects A recipe, Runnable code.
Discovering SAP Fiori Elements Analytical functions by implementing SAP Support Message ReportingDiscovering SAP Fiori Elements Analytical functions by implementing SAP Support Message ReportingAnalytical annotations learned by building something the author wanted — a view over SAP support messages — after a conversation in February 2021 that the post dates precisely. Exploration written up as exploration.published 2021-03-14
E2E: SAP Cloud Platform Internet of Things to SAP Analytics CloudE2E: SAP Cloud Platform Internet of Things to SAP Analytics CloudDevice data from ingestion to chart, with CAP occupying the middle: a CDS-defined persistence on HANA Cloud, and an OData service published from it for Analytics Cloud to consume live. The interesting choice is that CAP is used for the model rather than for business logic — there is barely any.Gunter, published 2020-08-31
Empowering Your Data Analytics with GPT-3 and SAP CAP IntegrationEmpowering Your Data Analytics with GPT-3 and SAP CAP IntegrationFree text in, SQL out, answer back in a sentence — the model writes the query, CAP runs it, and the model turns the rows into prose. Written in the GPT-3 window, so the model access has dated, but the three-step shape has not, and it is a different bet from retrieval: nothing is embedded, the schema is the context.Former Member, published 2023-03-10
Fiori Elements Analytical Table with CAP: Does it work with V2 and V4?Fiori Elements Analytical Table with CAP: Does it work with V2 and V4?A question in the title and an answer in the post, with the boundary drawn carefully: this is an analytical table inside a List Report, not the Analytical List Page, and the two protocol versions do not behave the same.published 2023-04-03
Fiori Elements Analytical Table with CAP: Does it work with V2 and V4?
Fiori annotations changed in @sap/cds-dk 9.6.0, 2025-12-17. Affects Runnable code.
Predictive Asset Insights embedded Live analytics using CAP and SACPredictive Asset Insights embedded Live analytics using CAP and SACCAP as the layer between a line-of-business application's data and a live Analytics Cloud story embedded back into it — master data and operational data both. Structured as ten steps, which keeps it honest about how much of this is configuration rather than modelling.Saif, published 2021-07-18
SAP Data and Analytics Showcase - Develop a Machine Learning Application on SAP BTPSAP Data and Analytics Showcase - Develop a Machine Learning Application on SAP BTPThe overview post of a showcase written by three authors, setting out the dataset, the scenario and the solution map before any of it is built. Its job is to say which piece goes where across the SAP data and analytics portfolio; the CAP application is one station on that map rather than the subject.former_member10846, published 2022-08-12
SAP Data and Analytics Showcase – Use SAP Cloud Application Programming Model to Develop a Machine Learning Application on SAP BTPSAP Data and Analytics Showcase – Use SAP Cloud Application Programming Model to Develop a Machine Learning Application on SAP BTPThe instalment where the showcase becomes code: the CAP application built in Business Application Studio, and the sub-scenario it covers implemented step by step. The overview post is the one that says why this piece exists at all.former_member10846, published 2022-08-12
SAP Incentive Management - Understanding of CSN file & CLI Command to generateSAP Incentive Management - Understanding of CSN file & CLI Command to generateCSN met from the far end: not as CAP's compiled model but as the interchange format a product hands to Analytics Cloud so a story knows the shape of the data. Explains what CSN is, why the format matters here, and the command that produces one.Yogananda, published 2024-11-19
AttachmentsSAP only
Building an Attachment Upload and Download Solution Using UploadSetwithTable ControlBuilding an Attachment Upload and Download Solution Using UploadSetwithTable ControlThe successor control to UploadSet posts the file in one request by default, and against CAP that is wrong: the record has to be created first and the content put to it afterwards. The author states the two-step shape plainly and notes it may not apply to an ABAP backend, which is the kind of boundary that usually goes unsaid. Written during a proof of concept for a reusable attachment component, and it carries the problem they hit with the control.published 2025-03-13
Consume SAP Document Management using @cap-js/sdm pluginConsume SAP Document Management using @cap-js/sdm pluginStoring attachments in a SAP Document Management repository from a CAP application, using the official plugin. The point the post makes about the plugin is that it brings its own UI: a user attaches any number of documents and one Save writes them all to the repository, so the application does not build an upload surface of its own.published 2024-08-26
Extend Upload Set to Fiori Elements and utilize Document Management ServiceExtend Upload Set to Fiori Elements and utilize Document Management ServiceWritten two months before there was an official plugin, and the author has left the record of that in the page: an update dated 2024-04-04 noting the CAP team released @cap-js/attachments, and another dated 2024-05-21 saying they tested it and wrote up the Object Store variant separately. The hand-built version underneath is still the answer when the plugin's storage choices do not fit.published 2024-02-25
Extend Upload Set to Fiori Elements and utilize Document Management Service
Attachments has changed 3 times since this was published, most recently in @cap-js/sdm 1.0.0, 2024-06-26. Affects Runnable code.
Extend Upload Set with Table to Fiori Elements and utilize Object StoreExtend Upload Set with Table to Fiori Elements and utilize Object StoreThe Object Store variant of the author's earlier Document Management post, written after testing @cap-js/attachments — a sample managing text and file information together, and offered as something for people new to BTP rather than as a pattern.published 2024-05-21
Extend Upload Set with Table to Fiori Elements and utilize Object Store
Fiori annotations changed in @sap/cds-dk 9.6.0, 2025-12-17. Affects Runnable code.
How to transfer file from CAP backsideHow to transfer file from CAP backsideA PDF arriving from the front end, stored against the record with @Core.MediaType, and then sent on to an external service for parsing. Short, and the second half is the part that is not in the plugin documentation: getting the bytes back out of the model to forward them somewhere else.published 2023-09-14
How to transfer file from CAP backside
Attachments has changed 3 times since this was published, most recently in @cap-js/sdm 1.0.0, 2024-06-26. Affects Runnable code.
Major updates to the Attachments plugin – multi-cloud support, malware scanning and moreMajor updates to the Attachments plugin – multi-cloud support, malware scanning and moreMulti-cloud storage and malware scanning added to the official plugin, framed through CAP's Calesi pattern — the argument being that a service interface is what lets the storage underneath change without the application noticing. The post that a triage bug hid: "attachment" had stopped matching "Attachments".published 2025-12-02
Major updates to the Attachments plugin – multi-cloud support, malware scanning and more
@cap-js/attachments 3.4.0, now 4.0.0, com.sap.cds:cds-feature-attachments 1.2.2. Affects A recipe, Runnable code.
Media Handling in SAP CAPM – Backend and Frontend ImplementationMedia Handling in SAP CAPM – Backend and Frontend ImplementationFiles against a record with the front end included, which most of the attachments writing here leaves out — the entity that stores the content, the custom logic around it, and then the UI5 side that uploads and retrieves. End to end rather than one half.published 2026-03-02
Presenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMSPresenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMSThe author's introduction of the plugin, and unusually clear about its lineage: the idea came from a post about cds.plugins whose example did nothing more than append an emoji to annotated properties, and the groundwork was an earlier library, sap-cloud-cmis-client, that this builds on. Worth reading for how a plugin gets conceived as much as for what it does with Document Management Service.published 2023-10-02
Presenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMS
sap-cap-sdm-plugin is archived. Its last release was 2024-03-24. Affects Runnable code.
Unlocking Efficiency: Leveraging SAP BTP Document Management Service in Fiori Applications # 2Unlocking Efficiency: Leveraging SAP BTP Document Management Service in Fiori Applications # 2Document Management's own Attachment Reuse UI dropped into a Fiori elements List Report, in two variants — OData V2, and OData V4 in a CAP application. The CAP half is one of the two scenarios rather than the subject; the rest of the series is about custom Fiori apps and a process task UI, with no CAP in them.published 2024-12-10
Upload attachments in a Freestyle UI5 and CAP appUpload attachments in a Freestyle UI5 and CAP appAttachments where the UI is freestyle rather than Fiori elements, so none of the generated upload behaviour applies and both ends have to be written.published 2023-12-19
Uploading attachment with cap-js/attachment plugins but via External App/PostmanUploading attachment with cap-js/attachment plugins but via External App/PostmanThe plugin is written for a Fiori elements front end; this is the case where the caller is neither — Postman and a React app. Short, and it exists because the request shape is not obvious from outside the generated UI: what to POST, what to PUT, and in which order.published 2025-07-24
Use SAP Document Management Service Plugin In CAP NODEJS Step by Step GuidanceUse SAP Document Management Service Plugin In CAP NODEJS Step by Step GuidanceThe official plugin is documented in capire; this is somebody who set it up anyway and wrote down where it went wrong. The author says as much — the point is to spare customers the troubles, so the value is in the order of the steps and the prerequisites, not in the API.Jacky_Liu1, published 2025-03-06
Working with the Attachment plugin - Cloud Application ProgrammingWorking with the Attachment plugin - Cloud Application ProgrammingOne instalment of the author's own series working through the CAP plugins one at a time, and it reads as that: what the plugin does, how it does it, and how to put it in a service. Written from the plugin list in capire rather than from a problem, which makes it the plainest introduction here.published 2024-05-18
Working with the Attachment plugin - Cloud Application Programming
@cap-js/attachments has been through 3 major lines since this was published: 2 (2025-03), 3 (2025-10), 4 (2026-08). Affects A recipe, Runnable code.
CachingUnmapped
Performance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAPPerformance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAPSomebody else's account of using the plugin, which is the useful counterpart to its documentation. The case is specific: a master-data entity of more than a million rows, rarely written and constantly read, where the read-heavy shape is what makes caching worth the complexity rather than a general performance wish. Walks through integrating cds-caching into that application and what it changed.NaveenChandar, published 2025-03-04
Performance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAP
cds-caching has been through 4 major lines since this was published, most recently 1 (2025-07), 2 (2026-07), 3 (2026-08). Affects A recipe, Runnable code.
Concurrency controlSAP only
Handling Concurrent Updates in SAP CAP JavaHandling Concurrent Updates in SAP CAP JavaAlice and Bob open the same employee record; Bob saves last and quietly erases Alice's change. The lost-update problem stated concretely and then answered in CAP Java, which is the only entry here on the subject — hence the capability.Anjali_Pathak, published 2026-05-26
Data modellingSAP only
#CAP-TechBytes Input Validation#CAP-TechBytes Input ValidationThe annotations one at a time — @mandatory, @assert.unique, @assert.range including the enum form, @assert.format — each with what it produces. Ends on error handling, which is the part that decides whether any of it is usable from a UI.Thajunniza, published 2023-07-07
A CAP Plugin for Flexible Number Range Management: cds-numberrange-pluginA CAP Plugin for Flexible Number Range Management: cds-numberrange-pluginThe author's own plugin, and the reason given for writing it is about plugins rather than about number ranges: a year of using them convinced them that this was the way to extend CAP without leaving marks on the application. Sequential document numbers are the thing it does; keeping the host project clean is the thing it argues for.abdulbasit, published 2025-06-17
Building an Enterprise Application Using Fiori Elements and CAP - Part 1Building an Enterprise Application Using Fiori Elements and CAP - Part 1Part one of three, and it is all backend: the CAP service the UI will sit on. The author states the constraint the series works under — simple enough for someone new to the stack, without departing from the standard project layout.Farooq, published 2025-12-10
CAP, CDS, CDL, CSN and jq - finding associationsCAP, CDS, CDL, CSN and jq - finding associationsHow associations are actually represented once CDL is compiled into CSN, worked out by parsing the machine-readable form with jq. Useful less as a recipe than as a way in: anything that wants to reason about a CDS model without the compiler has to read CSN, and this is what that looks like from the outside.published 2024-04-16
Computed field example in CAPComputed field example in CAPAn answer to a Community question — how to count the entities on the far side of an association — written up as a short post rather than left in a thread. The answer combines CDS with Node.js service events, which is the seam worth noticing: some of what looks like modelling is expressed in the model and some has to be computed when the request arrives, and the boundary between them is not obvious from either side.published 2019-08-21
Computed field example in CAP
Data modelling has changed 3 times since this was published, most recently in @sap/cds 9.9.0, 2026-04-23. Affects A recipe, Runnable code.
Creating structured types, enums and named aspects using the CDS Graphical ModelerCreating structured types, enums and named aspects using the CDS Graphical ModelerThe modelling constructs that are awkward to draw — structured types, enums, named aspects — done in the graphical modeller rather than in CDL.Xiao-fei_Song, published 2021-05-26
Deep Insert in SAP CAPM Using Composition and Fiori ElementsDeep Insert in SAP CAPM Using Composition and Fiori ElementsParent and children created in one transaction, which composition already gives you in the model — the post is about what Fiori elements does with it, and what the payload looks like when the UI sends both at once.published 2026-05-22
Understanding Projections in CAPM: Select Only What You Need!Understanding Projections in CAPM: Select Only What You Need!One concept, explained by someone who had just learned it and says so — what a projection is, why it matters, and an analogy. The register is unusual here and suits the subject: projections are the first thing that makes CDS feel different from a table.Avisek_, published 2025-06-10
Database connectorsSAP only
Building a CAP App with Fiori Integration – Part 1: Environment & HANA Cloud SetupBuilding a CAP App with Fiori Integration – Part 1: Environment & HANA Cloud SetupA trial account taken from nothing to a CAPM project with a HANA Cloud instance behind it. Everything here is prerequisites, which the author says outright — the application is in the parts that follow.SuryaRamesh, published 2026-04-08
CAP with PostgreSQL DB alternate to HANA Cloud DB - Part 1CAP with PostgreSQL DB alternate to HANA Cloud DB - Part 1Bootstrapping a CAP project on PostgreSQL, framed as a choice that depends on the client rather than on the technology. Short, and part two is where it gets debuggable.ramonlee5, published 2023-10-10
Configure an SAP CAP Application to Connect to an SAP HANA Cloud Database in Another Global Account or SubaccountConfigure an SAP CAP Application to Connect to an SAP HANA Cloud Database in Another Global Account or SubaccountThe case the tooling does not cover: the database is in a different global account, so there is no HDI container to bind and cds deploy cannot do its usual job. Written for exactly that, and it says so in the subtitle — without HDI.JhoelAnthonyRamosRomeroPE, published 2024-10-08
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorConnect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorAn end-to-end route from a CAP Node.js application on Cloud Foundry to a PostgreSQL database that is never made publicly reachable, over BTP Connectivity and the Cloud Connector using a TCP destination and SOCKS5. The part worth having is that it covers the deployer as well as the server: the generated PostgreSQL deployer has to reach the same private database to deploy the CDS model, and a guide that only connects the runtime leaves you with a schema you cannot install.Kalaikovan, published 2026-08-07
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Create a Business Service using CDS, Node.js, SQLite and a OData serviceCreate a Business Service using CDS, Node.js, SQLite and a OData serviceThe stack at its smallest — CDS, Node, SQLite, an OData service — worked through at length. Nothing cloud in it, which is the point: it is the shape of a CAP service before any of the platform arrives.raybanton, published 2021-07-12
Create a Business Service using CDS, Node.js, SQLite and a OData service
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryCreate a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryThe whole lifecycle in one post rather than a series — model, service, HANA binding, build, deploy. Useful as a single reference for the order things have to happen in, which is the part that is easy to get wrong when it is spread over six posts.MaheshSirsat1708, published 2025-11-19
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud Foundry
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioCreating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioHybrid testing is documented for HANA; this is the same profile against a PostgreSQL instance on BTP, driven from a BAS dev space rather than a laptop. Proposed under editor support because of where it runs, but the subject is the binding: what cds bind writes, and what has to be true of the service instance and the tunnel for a local process to reach it.valentincadart, published 2025-10-02
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application Studio
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Deploying CAP services with the in-memory SQLite databaseDeploying CAP services with the in-memory SQLite databaseIn-memory, deployed to Cloud Foundry — so the data is gone on restart, on purpose. For a service whose datastore does not need to survive anything, which is a narrower case than it sounds and a real one.liam_mischewski, published 2021-05-24
Distributed Resiliency of SAP CAP applications using SAP HANA Cloud (Multi-Zone Replication)Distributed Resiliency of SAP CAP applications using SAP HANA Cloud (Multi-Zone Replication)Resilience defined the way an operator would — failures happen in a complex landscape and should go unnoticed by the user — and then what multi-zone replication on HANA Cloud means for the CAP application in front of it.shanthakumar_krishnaswamy, published 2022-11-12
Extend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudExtend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudThe deployment instalment of the author's SuccessFactors extension series — the project already exists and the imported service is already modelled, so this is only the move onto HANA Cloud. Depends on the two posts before it and says so.ale_biagi, published 2022-03-29
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]The first of six, and it does the thing the later parts depend on: build the Incident Management application against SQLite on a laptop, with no cloud database in sight. The series is called decoupled because the front end and the back end are deployed separately, and this part is entirely the back end.sanjucs, published 2026-05-06
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]The cloud database appears: a HANA Cloud instance created on BTP and mapped to a Cloud Foundry space. No application code — this is the part where the platform has to be right before the next part can connect to it.sanjucs, published 2026-05-08
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]The switch from SQLite to HANA and the first deploy of the back end to Cloud Foundry — the point in the series where the persistence stops being a file and the build starts producing HDI artifacts.sanjucs, published 2026-05-12
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Getting started with CAP on PostgreSQL (Node.js)Getting started with CAP on PostgreSQL (Node.js)Running CAP on PostgreSQL locally in 2020, when doing so meant the community packages cds-pg and cds-dbm. It now opens with a banner the author added later: @sap/cds 7.0.0 has native PostgreSQL support, use @cap-js/postgres instead, with a pointer to a step-by-step guide for it. Worth having for that banner as much as for the content — a post that tells you not to follow it is a dated fact about where the answer moved.published 2020-11-16
Getting started with CAP on PostgreSQL (Node.js)
cds-pg. Affects Runnable code.
How I migrated my on-prem xsa cds3+hana solution to cds6+sqliteHow I migrated my on-prem xsa cds3+hana solution to cds6+sqliteThree major CDS versions and a database swap in one move, done to get an old on-premise XSA application running somewhere cheap. The repository is linked, and the interest is in what broke between cds3 and cds6 rather than in the destination.alex_myakinkii, published 2022-08-07
How I migrated my on-prem xsa cds3+hana solution to cds6+sqlite
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
How to create an API to run a HANA Cloud Stored Procedure in Cloud FoundryHow to create an API to run a HANA Cloud Stored Procedure in Cloud FoundryReaching past CDS to the database's own machinery — built-in algorithms, SQLScript procedures and functions — and putting an API in front of them. Long, and it is the case where the model is not where the logic belongs.gonzalo_hernan_sendra, published 2022-12-08
How to create an API to run a HANA Cloud Stored Procedure in Cloud Foundry
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Lets Deep dive into CAPM and HANA Cloud --> HANACapLets Deep dive into CAPM and HANA Cloud --> HANACapShort, and framed as what the author does day to day on BTP rather than as a tutorial: where CAPM meets HANA Cloud and which pieces have to agree.shivamshukla12, published 2023-07-16
Lets Deep dive into CAPM and HANA Cloud --> HANACap
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Lets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProLets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProNatural language against a CAP service on SQLite, with a non-SAP model doing the translation. Written as a learning exercise rather than a pattern, and the choice of Gemini over anything in the AI hub is the interesting part of it.ShivamShuklaSAP, published 2025-04-16
My Learnings in SAP-CAP Using MongoDBMy Learnings in SAP-CAP Using MongoDBCAP against a document database, which the supported list does not include — and the way it gets there is the point. The CDS model and the service definitions stay; the persistence is replaced by handlers calling the mongodb driver, with @sap/cds-odata-v2-adapter-proxy in front so a UI5 application can consume it. Learnings rather than a supported path, and the only MongoDB entry here.published 2021-01-11
My Learnings in SAP-CAP Using MongoDB
sap-cap-mongodb: no published releases, repository quiet for 69 months. Affects Runnable code.
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Opens with the observation the whole series rests on — CAP is usually demonstrated locally, and the interesting part starts when it is deployed. Part one of the run that continues into PostgreSQL and Work Zone.yashbhosle789, published 2026-02-25
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionPart 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionThe middle of a series that runs from database to Work Zone: the CAP application from part one pointed at PostgreSQL on the hyperscaler option, and deployed. The service binding and the build are where it spends its time.yashbhosle789, published 2026-03-04
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler Option
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
PostgreSQL persistence adapter for CAP (Node.js)PostgreSQL persistence adapter for CAP (Node.js)The contradiction the adapter was built to resolve, stated plainly in 2020: CAP's core is open, non-intrusive and platform-agnostic, which is what would let it run outside SAP's world — except that HANA was the only officially supported production persistence and HANA exists only inside BTP. cds-pg is the answer to that, and this is the post that argues for it. Read now as the front end of a story whose other end is the 2023 post recording cds-pg's deprecation in favour of @cap-js/postgres.published 2020-08-20
PostgreSQL persistence adapter for CAP (Node.js)
cds-pg is archived. @cap-js/postgres answers the same capability. Affects Runnable code.
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)The deployment half of the pair, two weeks after the local one, and superseded the same way: it carries the same banner directing readers to @cap-js/postgres and the official documentation. The two together are the community PostgreSQL path as it stood before the core absorbed it.published 2020-11-30
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)
cds-dbm. Affects Runnable code.
Run and Deploy SAP CAP (Java) with PostgreSQL on SAP BTP Cloud FoundryRun and Deploy SAP CAP (Java) with PostgreSQL on SAP BTP Cloud FoundrySuperseded by its own author: the post now opens with a notice that @sap/cds 7.0.0 brought native PostgreSQL support and that @cap-js/postgres should be used instead of the packages described below. Kept because that notice is the record of when the community adapter stopped being the answer.shanthakumar_krishnaswamy, published 2023-04-04
Run and Deploy SAP CAP (Java) with PostgreSQL on SAP BTP Cloud Foundry
cds-pg. Affects Runnable code.
Run and Deploy SAP CAP (Java) with PostgreSQL using Official Database Adapter @cap-js/postgresRun and Deploy SAP CAP (Java) with PostgreSQL using Official Database Adapter @cap-js/postgresThe post that records a handover. The author's earlier writing relied on the community projects cds-pg and cds-dbm; this one states that both were deprecated in favour of the official PostgreSQL support arriving with @sap/cds 7, and rewrites the path around @cap-js/postgres. For CAP Java it takes a different route to the initial schema.sql than the Node.js case, and it is candid that automatic schema deployment is convenient but not always what you want. Dated evidence for why two artifacts here went quiet.shanthakumar_krishnaswamy, published 2023-08-02
Run and Deploy SAP CAP (Java) with PostgreSQL using Official Database Adapter @cap-js/postgres
cds 7, line ended. Affects A recipe, Runnable code.
Run and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud FoundryRun and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud FoundryBoth runtimes in one walkthrough, and it stops on schema evolution — which is the reason to read it rather than one of the several other PostgreSQL posts here, since that is where the PostgreSQL story diverges from HANA's and the deploy stops being automatic.TiaXu, published 2023-07-12
Run and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud Foundry
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
SAP BTP Showcase - Use SAP Cloud Application Programming to do Native Development on HANA CloudSAP BTP Showcase - Use SAP Cloud Application Programming to do Native Development on HANA CloudThe fifth of a seven-post showcase, and the one where CAP is used to reach HANA-native artifacts rather than to avoid them. Long, and it sits inside a series whose other parts are about Data Warehouse Cloud and CI/CD.former_member271284, published 2021-01-31
SAP BTP Showcase - Use SAP Cloud Application Programming to do Native Development on HANA Cloud
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA CloudSAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA CloudA pipeline for the database half of a CAP application, built with cds add pipeline — one command that writes a Jenkinsfile and a .pipeline folder — and then the mta module that makes a database change deploy itself.gcalixtos, published 2021-01-27
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA Cloud
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
SAP Business Application Studio – Using SAP HANA Tools with SAP Cloud Application Programming Model projectsSAP Business Application Studio – Using SAP HANA Tools with SAP Cloud Application Programming Model projectsNative HDB artifacts inside a CAP project — the case where CDS is not enough and something has to be written as a database object. Most of the work is making the two build outputs agree: an HDB module path, a CDS build output directory, and a package.json for the module, before the artifact is added and deployed. Published under an account that has since been closed, so the byline reads Former Member.Former Member, published 2021-01-14
SAP Business Application Studio – Using SAP HANA Tools with SAP Cloud Application Programming Model projects
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
SAP CAP (Java) with Amazon Aurora PostgreSQLSAP CAP (Java) with Amazon Aurora PostgreSQLPostgreSQL, but the hyperscaler's own managed global database rather than BTP's option — Aurora, from CAP Java. One of a pair published the same day, the other being Azure's equivalent.shanthakumar_krishnaswamy, published 2023-08-02
SAP CAP (Java) with Amazon Aurora PostgreSQL
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
SAP CAP (Java) with Azure Cosmos DB for PostgreSQLSAP CAP (Java) with Azure Cosmos DB for PostgreSQLThe Azure half of the pair: Cosmos DB speaking PostgreSQL, used from CAP Java. Same shape as the Aurora post, and reading both is how you see what is actually portable between them.shanthakumar_krishnaswamy, published 2023-08-02
SAP CAP (Java) with Azure Cosmos DB for PostgreSQL
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
SAP CAP Lessons Learned: Run a CAP app using SQLite on SAP BTP - Cloud FoundrySAP CAP Lessons Learned: Run a CAP app using SQLite on SAP BTP - Cloud FoundrySQLite past the point it is meant to go — deployed, not local. Written as a lesson learned rather than a recommendation, and it pairs with the author's own note that SQLite is single threaded.LucasMagriniRigo, published 2024-12-30
SAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the CloudSAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the CloudCAP on HANA 2.0 XSA rather than on BTP — on-premise, and chosen for throughput. Mass ingestion through native stored procedures, which is the point at which CDS stops being the right tool and the post says so.rgadirov, published 2026-03-09
SAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the Cloud
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Sharing SAP HANA Cloud instance to multiple subaccounts and creating HDI containersSharing SAP HANA Cloud instance to multiple subaccounts and creating HDI containersOne HANA Cloud instance, several subaccounts, an HDI container created from each — the arrangement that keeps a landscape from paying for a database per subaccount. Written against a CAP project, so the container mapping is shown from the side that has to consume it.published 2024-03-23
Sharing SAP HANA Cloud instance to multiple subaccounts and creating HDI containers
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Simple steps to deploy your CAP project to HANA cloudSimple steps to deploy your CAP project to HANA cloudWritten from the far side of a failed deploy — the author says these are the troubleshooting steps that ended up working, not a designed procedure. Short, and honest about being a record rather than a recommendation.OmPrakashJha, published 2021-02-11
SQLite as database for a multi-target (/productive) CAP ApplicationSQLite as database for a multi-target (/productive) CAP ApplicationOpens with "Not recommended but possible", and then names the two cases where it is the right call anyway: a showcase, and a landscape with no HANA Cloud available. The caveat is the content.Christopher_Ketzler, published 2024-07-05
SQLite as database for a multi-target (/productive) CAP Application
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewTesting your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewcds.test covers the service; this covers what is underneath it, where the artifact is an hdbprocedure or an hdbview that CDS never sees. That means a real HDI container, so most of the post is about where to get one and how to give CAP access to it — the tests are the easy part once that is true.Tristan, published 2022-08-30
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbview
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects A recipe, Runnable code.
Using HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPUsing HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPEmbeddings generated inside the database rather than fetched from AI Core or an external model — a Q4 2024 HANA Cloud function, used from CAP. The shift it describes is where the embedding step lives, which changes what has to be deployed and what has to be called.published 2025-03-02
Using Postgresql Database in Cloud Application Programming modelUsing Postgresql Database in Cloud Application Programming modelA straight run through the official PostgreSQL guide with the steps spelled out, from initialising the server onward. Says as much itself — it follows the documentation rather than departing from it, which makes it the plainest of the PostgreSQL entries here.published 2024-05-14
Using Postgresql Database in Cloud Application Programming model
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Native SAP HANA artifactsUnmapped
Connecting Two SAP CAP Projects Without Duplicating Your DataConnecting Two SAP CAP Projects Without Duplicating Your DataCross-container HDI synonyms, argued from the alternatives rather than presented as a recipe: copying the table, standing up an API, or hard-coding the values are the three things the author reports seeing teams do, and each is named as working but unclean. With synonyms in place the consuming project queries the owner's HANA tables through ordinary SQL and ordinary CAP service code, with no replication and nothing to drift between environments. Covers the same ground as Mio Yasutake's 2021 post from a different angle — that one enumerates four topologies, this one argues for one of them.Inderpreet, published 2026-07-08
How to share tables across different CAP projectsHow to share tables across different CAP projectsFour scenarios for reading one CAP project's table from another, worked out as a matrix of what each one needs: the same HDI container and namespace, the same container under a different namespace, a different container, and a different Cloud Foundry space. The mechanics change with each step — @cds.persistence.exists on the reused entity throughout, an .hdbsynonym once namespaces diverge, .hdbrole and .hdbgrants once containers do, and a user-provided service built from the grantor's credentials once spaces do. The author flags the caveat themselves: these are learning scenarios, and consuming the OData service is often the better answer than reaching into another project's database. Dated corrections from twelve days after publication sit inline — synonyms need only the name because the configuration comes from .hdbsynonymconfig, SERVICE_REPLACEMENTS in mta.yaml removes the hard-coded service name, and the reused container need not be bound to the srv module.published 2021-10-03
Schema evolutionCommunity only
HANA Database Migration: Handling Incompatible Changes to Existing TablesHANA Database Migration: Handling Incompatible Changes to Existing TablesThe question schema evolution exists for, asked plainly: how do you restructure a table in a production system that already holds live data. Incompatible changes are the ones CAP's own alter path will not make, which is where this starts.Sekar Somasundaram, published 2025-04-16
How I migrated my on-prem xsa cds3+hana solution to cds6+sqliteHow I migrated my on-prem xsa cds3+hana solution to cds6+sqliteThree major CDS versions and a database swap in one move, done to get an old on-premise XSA application running somewhere cheap. The repository is linked, and the interest is in what broke between cds3 and cds6 rather than in the destination.alex_myakinkii, published 2022-08-07
How I migrated my on-prem xsa cds3+hana solution to cds6+sqlite
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Run and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud FoundryRun and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud FoundryBoth runtimes in one walkthrough, and it stops on schema evolution — which is the reason to read it rather than one of the several other PostgreSQL posts here, since that is where the PostgreSQL story diverges from HANA's and the deploy stops being automatic.TiaXu, published 2023-07-12
Run and Deploy SAP CAP (Node.js or Java) with PostgreSQL on SAP BTP Cloud Foundry
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
CI/CD pipelinesSAP only
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA CloudSAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA CloudA pipeline for the database half of a CAP application, built with cds add pipeline — one command that writes a Jenkinsfile and a .pipeline folder — and then the mta module that makes a database change deploy itself.gcalixtos, published 2021-01-27
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA Cloud
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Editor supportSAP and community
Add useful Extensions to Dev spaces in SAP Business Application StudioAdd useful Extensions to Dev spaces in SAP Business Application StudioStarts from the point capire makes — that CAP is editor-agnostic and BAS is the preconfigured option — and then does the thing that undoes preconfiguration: adds two extensions to a dev space for initialising data in a CAP application, with the uninstall procedure as well as the install. The uninstall half is what makes it worth keeping.showkath_naseem, published 2022-11-13
An introduction to CDS Graphical Modeler for SAP Business Application StudioAn introduction to CDS Graphical Modeler for SAP Business Application StudioThe announcement of the graphical modeller, from the team that built it — what it draws, how to get a dev space that has it, and what it is for. The starting point for the two posts that follow it, and the record of when this became part of the editor rather than an idea.Xiao-fei_Song, published 2021-04-23
Creating structured types, enums and named aspects using the CDS Graphical ModelerCreating structured types, enums and named aspects using the CDS Graphical ModelerThe modelling constructs that are awkward to draw — structured types, enums, named aspects — done in the graphical modeller rather than in CDL.Xiao-fei_Song, published 2021-05-26
Develop CAP Project with Lazyvim in DockerDevelop CAP Project with Lazyvim in DockerA Docker image running Lazyvim with language server support for CDS, TypeScript and JSON, so a CAP project can be developed with an editing experience comparable to VS Code without leaving the keyboard. Narrow by intent, and the useful general point underneath it is that CAP's editor support reaches anything that speaks LSP.published 2024-03-28
Developing CAP applications in SAP Business Application StudioDeveloping CAP applications in SAP Business Application StudioThe overview written at the point BAS replaced Web IDE, and it is structured as a comparison — each step of building a CAP application, with the difference from the Web IDE experience called out beside it. Useful now mostly for what it records: which parts of CAP development the editor took over, and when.liat_b, published 2020-07-06
Get familiar with your first CAPM project using CDS graphic modelerGet familiar with your first CAPM project using CDS graphic modelerThe modeller as an entry point rather than an aid — a first CAPM project built by drawing it, for the developer who has not yet internalised CDL, annotations and metadata.Jyoti_ranjan, published 2025-07-05
Making CAP Application Development Easier and Faster with the Help of Storyboard in SAP Business Application StudioMaking CAP Application Development Easier and Faster with the Help of Storyboard in SAP Business Application StudioThe Storyboard from the other side — someone who came across it while learning the high-productivity tools, rather than someone who shipped it. It follows the whole arc a CAP project takes through the tool: entities, relationships, services, sample data, a UI, roles, and external resources, each as a thing the diagram can add rather than a file you open.Aryan_Raj_Sinha, published 2023-09-20
Migrating Your CAP Applications from SAP Web IDE to SAP Business Application StudioMigrating Your CAP Applications from SAP Web IDE to SAP Business Application StudioA migration checklist, and a reminder of how much of a CAP project used to be editor-specific: Web IDE configuration files to delete, a build to move to the Cloud MTA Build Tool, a CAP Java version to raise. Historical — Web IDE is gone — but it is the clearest list of what the tooling boundary used to include.liat_b, published 2020-07-09
Migrating Your CAP Applications from SAP Web IDE to SAP Business Application Studio
Editor support changed in @sap/cds-dk 8.8.0, 2025-03-04. Affects A recipe.
Part 1: How to create CAPM project in BASPart 1: How to create CAPM project in BASThe claim in the opening is the interesting part — database, service and UI without switching technologies — and then the project that follows from it. Part one, and it stops at a project that runs.Vennilla00, published 2026-03-05
Part 1: How to create CAPM project in BAS
Generators changed in @sap/cds-dk 10.0.3, 2026-07-02. Affects A recipe.
Running CAP Node Applications in SAP Business Application StudioRunning CAP Node Applications in SAP Business Application StudioThe Run Configurations tool, which is where binding and mocking live in BAS rather than in a terminal. Three things it does: several named configurations per application in a tree, dependencies bound to real service instances, and OData dependencies mocked. The author notes the configurations are standard launch entries underneath, which is the detail that lets you leave the tool behind if you want to.liat_b, published 2020-10-22
SAP CAP: Best VSCode extensions for TypeScript development (UI5 & NodeJS)SAP CAP: Best VSCode extensions for TypeScript development (UI5 & NodeJS)A working editor setup for CAP with TypeScript, listed extension by extension across the Node.js and UI5 halves. The kind of post that ages by attrition rather than by being wrong — the reasoning about what an editor needs to know about a CDS project outlives any particular extension in the list.published 2024-04-29
SAP CAP: Best VSCode extensions for TypeScript development (UI5 & NodeJS)
Editor support changed in @sap/cds-dk 8.8.0, 2025-03-04. Affects Runnable code.
Storyboard for cloud business applications using CAP in SAP Business Application StudioStoryboard for cloud business applications using CAP in SAP Business Application StudioThe first release of the Storyboard, written by the team shipping it. Where the graphical modeller draws the data model, this draws the application: its logical components and the connections between them, alongside an application explorer enhanced in the same release. Short, and it reads as an announcement — the fuller account of using it is Aryan_Raj_Sinha's post two years later.liat_b, published 2021-02-15
Streamlining CAP Development with CDS Graphical Modeler in SAP Business Application StudioStreamlining CAP Development with CDS Graphical Modeler in SAP Business Application StudioThe case for the graphical modeller stated as a scale problem rather than a preference: a model held only as code gets hard to keep in your head once it is large, and the diagram is a second view of the same file. The most recent write-up of the tool here, and the one that treats it as an everyday working aid rather than as a new feature.Jyoti_ranjan, published 2025-07-16
Tips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiesTips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiesFour settings, from somebody who works on the annotation language server. The premise is the interesting part: CAP's annotation syntax is looser than ABAP CDS or EDMX — a record can be written with or without an explicit type — so the completion has to guess how verbose you want it, and this is where you tell it. Then filtering the completion list, reading the icons, ordering diagnostics by severity, and turning i18n problems on only when you want them.maryana_naboka, published 2021-10-25
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one goUse Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one gocds watch serves the service and the app folder but not the approuter, so anything needing a JWT means a second terminal started by hand. This replaces that with a VS Code task definition — the tasks.json is in the post — so the whole local stack comes up on one command.pieterjanssens, published 2021-04-09
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one go
Local development has changed twice since this was published, most recently in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
GeneratorsSAP and community
CAP Initializr: Generate SAP CAP Projects in SecondsCAP Initializr: Generate SAP CAP Projects in SecondsA hosted project generator for CAP in the shape of Spring Initializr — pick the structure, dependencies and configuration in a browser and download the result, rather than running cds init and then wiring the facets by hand. The post is an MVP announcement asking for feedback, and the tool lives at a Cloud Foundry trial URL rather than on npm, so it is a direction being tested in public rather than something to depend on.Saptarshi017, published 2026-03-23
cf-create-app: Create End-to-End apps and deploy to Cloud Foundry in minutescf-create-app: Create End-to-End apps and deploy to Cloud Foundry in minutesA generator from 2020 that goes further than scaffolding — an end-to-end application created and deployed to Cloud Foundry in one run. Predates most of what cds add now does.former_member604013, published 2020-07-29
cf-create-app: Create End-to-End apps and deploy to Cloud Foundry in minutes
Generators has changed twice since this was published, most recently in @sap/cds-dk 10.0.3, 2026-07-02. Affects A recipe, Runnable code.
Part 1: How to create CAPM project in BASPart 1: How to create CAPM project in BASThe claim in the opening is the interesting part — database, service and UI without switching technologies — and then the project that follows from it. Part one, and it stops at a project that runs.Vennilla00, published 2026-03-05
Part 1: How to create CAPM project in BAS
Generators changed in @sap/cds-dk 10.0.3, 2026-07-02. Affects A recipe.
Prompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesPrompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesA user story in, a scaffolded full-stack CAP application out, through SAP Build Code and Joule. The question it is actually asking is how much of the foundational code is worth generating, and it answers by generating all of it.AnuradhaDhingan, published 2025-12-11
加速开发和部署的CAP CDS和Fiori一些实用命令加速开发和部署的CAP CDS和Fiori一些实用命令In Chinese. A command reference rather than a walkthrough — cds import, cds compile, cds deploy --to sqlite, cds add hana, cds add xsuaa — grouped by what they are for. The kind of page that is more useful than a tutorial once you already know what you are doing.TiaXu, published 2022-10-21
加速开发和部署的CAP CDS和Fiori一些实用命令
Generators has changed twice since this was published, most recently in @sap/cds-dk 10.0.3, 2026-07-02. Affects A recipe, Runnable code.
LintingCommunity only
Introducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationIntroducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationThe author's own announcement, and precise about scope: today it catches deprecated key/value entries in CAP's JSON configuration, and the ambition is that it grows into best practices, suggestions and autofixes the way any ESLint plugin does. The implementation detail worth knowing is that it uses modern ESLint's JSON language support rather than a generic parser, which is what makes linting a configuration file rather than source code work at all.published 2025-09-08
Local developmentSAP only
A Fiori Launchpad Sandbox for all your CAP-based projects - OverviewA Fiori Launchpad Sandbox for all your CAP-based projects - OverviewWhere cds-launchpad-plugin came from, told as a learning exercise: the author wanted a real problem to teach himself TypeScript on, and picked the thing he kept redoing in every CAP project — a launchpad to see all the UI applications in one place. The origin post for an entry whose 2023 update is also indexed here.published 2022-03-14
A Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupA Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupThe hands-on half published the same day as the overview: the launchpad module wired into the CAP sample repository, step by step from a global cds-dk install. Same-day pairs like this are worth keeping together — the overview argues, this one is the thing you follow.published 2022-03-14
Avoid design time CAP server restarts when maintaining local data filesAvoid design time CAP server restarts when maintaining local data filescds watch restarting on every file change is the feature; this is the case where it is not. Editing a CSV seed file mid-edit restarts the server against half-finished data, and the post is about suppressing that without giving up the watch loop. A small friction most people work around silently rather than fix.published 2024-04-26
Avoid design time CAP server restarts when maintaining local data files
Local development changed in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
BTP CAP : How to Connect to Remote Services Locally in CAP ApplicationBTP CAP : How to Connect to Remote Services Locally in CAP ApplicationThe same problem four years earlier: a CAP application that consumes a remote service, running locally against the real thing rather than against a mock.showkath_naseem, published 2022-12-12
CAP Typescript + Fiori Typescript + live reload Initial app setupCAP Typescript + Fiori Typescript + live reload Initial app setupA full-stack TypeScript starting point recorded as it was arrived at — the terminal commands and the configuration files, in order, for the CAP side, the conversion to TypeScript, and then the Fiori side. The author is explicit that it takes a while to go through, which is the honest framing for a setup that has this many steps.Christophe_SW, published 2023-06-18
CAP Typescript + Fiori Typescript + live reload Initial app setup
TypeScript patterns changed in @cap-js/cds-typer 0.5.0, 2023-07-25. Affects Runnable code.
cds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async Launchpadcds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async LaunchpadThe maintainer on a set of changes rather than on the plugin's original purpose, which is indexing every SAPUI5 project in a workspace into one sandbox launchpad so all of them can be tested together. What moved: it became a CAP plugin, gained UI5 Tooling support, and moved to the async launchpad — each framed as keeping pace with where SAPUI5 itself is going rather than as a feature.published 2023-12-11
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioCreating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioHybrid testing is documented for HANA; this is the same profile against a PostgreSQL instance on BTP, driven from a BAS dev space rather than a laptop. Proposed under editor support because of where it runs, but the subject is the binding: what cds bind writes, and what has to be true of the service instance and the tunnel for a local process to reach it.valentincadart, published 2025-10-02
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application Studio
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Develop CAP Project with Lazyvim in DockerDevelop CAP Project with Lazyvim in DockerA Docker image running Lazyvim with language server support for CDS, TypeScript and JSON, so a CAP project can be developed with an editing experience comparable to VS Code without leaving the keyboard. Narrow by intent, and the useful general point underneath it is that CAP's editor support reaches anything that speaks LSP.published 2024-03-28
Develop SAP CAP apps inside a VS Code Docker ContainerDevelop SAP CAP apps inside a VS Code Docker ContainerA VS Code dev container configuration with everything a CAP project needs already in it, published as a repository rather than as instructions. The 2020 half of a pair whose other half, four years later, does the same for Lazyvim — the same author solving the same problem twice as his editor changed.published 2020-02-20
Develop SAP CAP apps inside a VS Code Docker Container
Local development has changed twice since this was published, most recently in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
Establishing connectivity between a local CAP runtime and on-premise systemsEstablishing connectivity between a local CAP runtime and on-premise systemsReaching S/4HANA, an on-premise HANA or any HTTP service from a CAP process running on your laptop — the case where the connectivity proxy the platform provides is not there and the tunnel has to be arranged.vLeonkev, published 2025-10-15
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]The first of six, and it does the thing the later parts depend on: build the Incident Management application against SQLite on a laptop, with no cloud database in sight. The series is called decoupled because the front end and the back end are deployed separately, and this part is entirely the back end.sanjucs, published 2026-05-06
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
How to Call a Remote OData API from Your Local CAP Java ProjectHow to Call a Remote OData API from Your Local CAP Java ProjectThe Business Accelerator Hub sandbox called from a CAP Java project on a laptop, with a concrete finish line — a localhost URL that returns business partners. Everything needed to get there is listed, Maven and JDK versions included.Umezuki, published 2025-08-11
Remote Debugging of SAP CAPM App - NodejsRemote Debugging of SAP CAPM App - NodejsDebugging a CAP Node.js application that is not on your machine, built up from cds init and a custom action so there is something to breakpoint. The part people need is at the end; the beginning is there so the end is reproducible.darshanv23, published 2025-06-05
Running CAP Node Applications in SAP Business Application StudioRunning CAP Node Applications in SAP Business Application StudioThe Run Configurations tool, which is where binding and mocking live in BAS rather than in a terminal. Three things it does: several named configurations per application in a tree, dependencies bound to real service instances, and OData dependencies mocked. The author notes the configurations are standard launch entries underneath, which is the detail that lets you leave the tool behind if you want to.liat_b, published 2020-10-22
SAP Tech Bytes: Using the SAP Approuter at dev time - a full-stack journey with UI5 and CAPSAP Tech Bytes: Using the SAP Approuter at dev time - a full-stack journey with UI5 and CAPGetting UI5 Tooling and the CAP server onto one port under one command, using cds-plugin-ui5 — which the post presents as the thing that removes the proxy and destination configuration a full-stack dev setup otherwise needs. Part one of a journey that goes on to put the approuter in front at development time.published 2023-10-13
SAP Tech Bytes: Using the SAP Approuter at dev time - a full-stack journey with UI5 and CAP
cds-plugin-ui5 has been through 11 major lines since this was published, most recently 0.15 (2025-11), 0.16 (2025-12), 0.17 (2026-03). Affects Runnable code.
Set up VS Code on Chrome OS for local Application Programming Model developmentSet up VS Code on Chrome OS for local Application Programming Model developmentA CAP development environment on a Chromebook, written from preference rather than constraint — the author sets out why Chrome OS is his primary machine before showing the setup. Carries its own updates section noting what has changed since, which for a 2018 post about an operating system is most of it. The interest now is that local CAP development was portable this early.published 2018-10-16
Set up VS Code on Chrome OS for local Application Programming Model development
Local development has changed twice since this was published, most recently in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
Use SCP CF Destination service in NodeJs locallyUse SCP CF Destination service in NodeJs locallyReading a destination from a laptop, where the environment variable the destination service normally provides does not exist. A small gap with a real cost, since the alternative is deploying to test every change to a remote call.WouterLemaire, published 2020-05-28
Use SCP CF Destination service in NodeJs locally
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects Runnable code.
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one goUse Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one gocds watch serves the service and the app folder but not the approuter, so anything needing a JWT means a second terminal started by hand. This replaces that with a VS Code task definition — the tasks.json is in the post — so the whole local stack comes up on one command.pieterjanssens, published 2021-04-09
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one go
Local development has changed twice since this was published, most recently in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
XSUAA Local TestingXSUAA Local TestingAdding XSUAA to a CAP project two ways, and then the part that is usually missing: getting the authorisation to behave on a laptop rather than only after deployment. The default authentication mechanism is the easy half; testing it without a landscape is the reason this exists.ManasaManu, published 2024-10-17
XSUAA Local Testing
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
加速开发和部署的CAP CDS和Fiori一些实用命令加速开发和部署的CAP CDS和Fiori一些实用命令In Chinese. A command reference rather than a walkthrough — cds import, cds compile, cds deploy --to sqlite, cds add hana, cds add xsuaa — grouped by what they are for. The kind of page that is more useful than a tutorial once you already know what you are doing.TiaXu, published 2022-10-21
加速开发和部署的CAP CDS和Fiori一些实用命令
Generators has changed twice since this was published, most recently in @sap/cds-dk 10.0.3, 2026-07-02. Affects A recipe, Runnable code.
Plugin authoringSAP only
Reusable components for CAP with cds-pluginReusable components for CAP with cds-pluginThe post that taught the mechanism, and it teaches it by picking a requirement small enough to be absurd: every string a service returns should end in a random emoji. Working through that on the bookshop example leaves nothing to argue about except the plumbing, which is the point — what a cds-plugin is, where it hooks in, and why packaging it beats copying it into the next project. Vinícius Barrionuevo credits this post as the thing that gave him the idea for sap-cap-sdm-plugin, and it is hard to read the plugin ecosystem in this graph without it.published 2023-04-30
Seed dataCommunity only
Add useful Extensions to Dev spaces in SAP Business Application StudioAdd useful Extensions to Dev spaces in SAP Business Application StudioStarts from the point capire makes — that CAP is editor-agnostic and BAS is the preconfigured option — and then does the thing that undoes preconfiguration: adds two extensions to a dev space for initialising data in a CAP application, with the uninstall procedure as well as the install. The uninstall half is what makes it worth keeping.showkath_naseem, published 2022-11-13
Avoid design time CAP server restarts when maintaining local data filesAvoid design time CAP server restarts when maintaining local data filescds watch restarting on every file change is the feature; this is the case where it is not. Editing a CSV seed file mid-edit restarts the server against half-finished data, and the post is about suppressing that without giving up the watch loop. A small friction most people work around silently rather than fix.published 2024-04-26
Avoid design time CAP server restarts when maintaining local data files
Local development changed in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
Avoiding Data Loss When Loading Initial Data with CSV Files in CAPAvoiding Data Loss When Loading Initial Data with CSV Files in CAPcds add tiny-sample gives you a CSV in db/data and it loads on deploy, which looks like a way to seed a productive application. The catch, stated plainly: change the CSV or the schema and HANA is reinitialised from the file, taking whatever users had entered with it.MioYasutake, published 2025-09-15
Handling CSV Data Deployment in CAP HDI Without Data LossHandling CSV Data Deployment in CAP HDI Without Data LossThe same trap from the HDI side: .hdbtabledata hands the container full ownership of the data, so the next deployment overwrites the table from the file. Two independent posts three months apart on the same sharp edge, which is a fair signal about how sharp it is.Sekar_Somasundaram, published 2025-06-04
ISO content for common CAP typesISO content for common CAP typesThe npm package that supplies ISO-standard content — countries, languages, currencies, timezones — for CAP's common types, and how it works underneath. The author flags the length and the reason for it up front, having followed the mechanism further than the question required, which is what makes it worth reading rather than a package announcement.published 2024-03-14
ISO content for common CAP types
Seed data changed in @sap/cds-dk 7.9.1, 2024-05-02. Affects Runnable code.
TestingSAP and community
CAP: Unit Testing using Mocha and ChaiCAP: Unit Testing using Mocha and ChaiUnit tests added to an existing CAP service rather than written alongside a new one, which is the harder and more common case. Mocha and Chai wired up by hand, from a time before cds.test was the obvious answer.jhodel18, published 2020-05-31
CAP: Unit Testing using Mocha and Chai
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects Runnable code.
Enhancing Unit Testing in SAP CAP Java Applications with GitHub CopilotEnhancing Unit Testing in SAP CAP Java Applications with GitHub CopilotBuilt on SAP's own CAP Java unit-testing guide, and the question is narrow: how much of that does an assistant actually write for you. The author's own getting-started post is the one to read first.Anjali_Pathak, published 2025-09-04
Getting Started with Unit Testing in SAP CAP Java ApplicationsGetting Started with Unit Testing in SAP CAP Java ApplicationsThe plain introduction: what the CAP Java framework gives you to test against, and how to start. Prerequisite to the same author's Copilot post.Anjali_Pathak, published 2025-07-28
Getting Started with Unit Testing in SAP CAP Java Applications
Testing changed in @cap-js/cds-test 1.0.0, 2026-04-23. Affects Runnable code.
How to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpHow to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpEntities are exposed with full CRUD by default, and this is how to take operations away again — @Capabilities for Insert, Update and Delete individually, @readonly for the blunt version. Tested with .http files rather than a UI, which keeps the check on the service.DeepaRagho, published 2026-05-22
Integration Tests in a Cloud Foundry Java App using SAP Cloud Application Programming ModelIntegration Tests in a Cloud Foundry Java App using SAP Cloud Application Programming ModelIntegration rather than unit tests, and from 2020 — the earliest testing entry here, and a reminder of what had to be assembled by hand before the framework had an answer.former_member428487, published 2020-02-23
Integration Tests in a Cloud Foundry Java App using SAP Cloud Application Programming Model
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects Runnable code.
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewTesting your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewcds.test covers the service; this covers what is underneath it, where the artifact is an hdbprocedure or an hdbview that CDS never sees. That means a real HDI container, so most of the post is about where to get one and how to give CAP access to it — the tests are the easy part once that is true.Tristan, published 2022-08-30
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbview
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects A recipe, Runnable code.
TypeScript patternsDoes not apply
CAP Typescript + Fiori Typescript + live reload Initial app setupCAP Typescript + Fiori Typescript + live reload Initial app setupA full-stack TypeScript starting point recorded as it was arrived at — the terminal commands and the configuration files, in order, for the CAP side, the conversion to TypeScript, and then the Fiori side. The author is explicit that it takes a while to go through, which is the honest framing for a setup that has this many steps.Christophe_SW, published 2023-06-18
CAP Typescript + Fiori Typescript + live reload Initial app setup
TypeScript patterns changed in @cap-js/cds-typer 0.5.0, 2023-07-25. Affects Runnable code.
CDS-TS-Dispatcher: Simplifying SAP CAP TypeScript DevelopmentCDS-TS-Dispatcher: Simplifying SAP CAP TypeScript DevelopmentThe first of a pair introducing the author's own libraries, and it states what it is reacting to: CAP derives OData services from a CDS model, but the communication between business logic, service and persistence layers is left to you, and the earlier attempt at the service-layer half, cds-routing-handler, appeared unmaintained against newer CAP. The dispatcher is the answer offered for that layer.published 2023-11-13
CDS-TS-Dispatcher: Simplifying SAP CAP TypeScript Development
@dxfrontier/cds-ts-dispatcher has been through 6 major lines since this was published, most recently 4 (2025-01), 5 (2025-07), 6 (2026-07). Affects Runnable code.
CDS-TS-Repository: Simplify SAP CAP Entity persistance with BaseRepositoryCDS-TS-Repository: Simplify SAP CAP Entity persistance with BaseRepositoryThe persistence half of the same pair, three days later: a BaseRepository putting entity access behind a typed repository rather than CQN written inline in a handler. Shares its opening argument with the dispatcher post — the layer between business logic and persistence is the part CAP leaves open — and the two are designed to be used together.published 2023-11-16
CDS-TS-Repository: Simplify SAP CAP Entity persistance with BaseRepository
@dxfrontier/cds-ts-repository has been through 9 major lines since this was published, most recently 5 (2024-12), 6 (2025-07), 7 (2026-07). Affects Runnable code.
Full Stack TypeScript App for Cloud Foundry - Sample RepositoryFull Stack TypeScript App for Cloud Foundry - Sample RepositoryA whole repository rather than a snippet: a CAP Node.js service and a freestyle SAPUI5 application, both in TypeScript, arranged for Cloud Foundry. The build process gets its own section, which is where a TypeScript full-stack project usually goes wrong.former_member66, published 2021-12-09
Full Stack TypeScript App for Cloud Foundry - Sample Repository
TypeScript patterns changed in @cap-js/cds-typer 0.5.0, 2023-07-25. Affects A recipe, Runnable code.
Quick Implementation of DI/DI Container on SAP CAP: Node.js Hands-on PartQuick Implementation of DI/DI Container on SAP CAP: Node.js Hands-on PartThe hands-on half of a pair — the theory is in the author's earlier post — built on the official bookshop sample with the directories flattened so the pattern is visible rather than the scaffolding. Assumes CAP and TypeScript already.Umezuki, published 2025-05-02
SAP CAP: Controller - Service - Repository architectureSAP CAP: Controller - Service - Repository architectureThe pattern the author's two libraries exist to support, set out as a whole rather than one package at a time: a controller layer receiving the request, a service layer holding business logic, and a repository layer owning persistence — the separation CAP leaves to the developer once a model has produced an OData service. Read after the dispatcher and repository posts, or before them as the argument for both.published 2024-04-22
SAP CAP: Controller - Service - Repository architecture
@dxfrontier/cds-ts-dispatcher has been through 4 major lines since this was published, most recently 4 (2025-01), 5 (2025-07), 6 (2026-07). Affects Runnable code.
Taking CAP to the next level - with TypeScriptTaking CAP to the next level - with TypeScriptThe author's own two packages introduced together, and they are two halves of one idea: cds2types generates TypeScript from the CDS model, cds-routing-handlers arranges the handlers that use them. Published in 2020, years before cds-typer, which makes it the earliest answer in the graph to a question the core answered later.published 2020-05-22
Taking CAP to the next level - with TypeScript
cds-routing-handlers: release and repository quiet for 46 months. Affects Runnable code.
Use TypeScript with the SAP Cloud Application Programming ModelUse TypeScript with the SAP Cloud Application Programming ModelWritten from the position of someone who avoided JavaScript for years and then had to cover CAP, which gives it a useful angle: what TypeScript buys a person arriving from a typed language, and where to start rather than how to finish. Ends on a worked example rather than a survey.KevinR, published 2024-06-24
TypingSAP only
TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)The middle part of three, and the one about SAP: where TypeScript is supported across a side-by-side extension on BTP, as of July 2023. It says the SAP Cloud SDK already generates OData clients as .ts files and UI5 ships types for its controls and modules, the ground of TypeScript support in UI5, while CAP offers standard types and the new @cap-js/cds-typer generates types for a service, which is typing, with the caveat that running cds-ts commands could overwrite what cds-typer generated.MikeDoyle, published 2023-07-05