BrowseAll ecosystems
Everything in the atlas
31 of 2341
Domain: 2
Signals
Content: 2024
More
Group by: Capability
EntryBySignalsLast activity
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
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.
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
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.
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
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
SAP CAP(Cloud Application Programming)开发框架概述SAP CAP(Cloud Application Programming)开发框架概述A Chinese-language walkthrough of CAP built mainly from CAPire's own "About CAP" page: CDS entities, associations, compositions and aspects for data modelling, with an extend Books with @restrict: [{ grant:'WRITE', to:'admin' }] aspect as its authorization example; CQL and CQN queries shown against both a local service and OData's $select/$expand; and the service-and-event model — this.on, this.emit, srv.on — that carries CAP's async processing. It closes with the author's own setup: installing @sap/cds-dk, scaffolding a bookshop project with cds init, and running it with cds watch against local SQLite, mocked authentication and file-based messaging standing in for HANA Cloud, IAS and Kafka.ArthurYang, published 2024-01-07
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
2024/01最新版!Productivity Toolsを使ったCAPバックエンド開発②~HANA Cloud編~2024/01最新版!Productivity Toolsを使ったCAPバックエンド開発②~HANA Cloud編~In Japanese, and the second of a pair — database connection through to calling the API from outside, with authorisation in between. The author dates the screenshots explicitly and warns that the UI may have moved since, which is the right disclaimer for a click-through guide.takayuki_tanaka, published 2024-01-09
2024/01最新版!Productivity Toolsを使ったCAPバックエンド開発②~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.
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
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
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.
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.
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.
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
How to mass upload from a spreadsheet file into an SAP Fiori app in SAP BTP ABAP Environment Part 1How to mass upload from a spreadsheet file into an SAP Fiori app in SAP BTP ABAP Environment Part 1Part 1 of a three-part series on mass-uploading records from a spreadsheet into a RAP business object in the SAP BTP ABAP environment, using the XCO XLSX module to parse an uploaded Excel file without any open-source library. It reads a named worksheet by its column-and-row coordinates into an internal table through the row-stream operation, then creates or updates records with the EML MODIFY ENTITIES statement, and reserves the Fiori elements custom-action wiring and the download/template generation for Parts 2 and 3.DebrajManna87, published 2024-08-08
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
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
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.
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
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.
CAP for nodejs安全的暴露接口练习CAP for nodejs安全的暴露接口练习Starting from the risk-management sample, the walkthrough adds an open ExternalAPI service beside the existing RiskService, then moves every security annotation into a separate service-auth.cds file: @requires: authenticated-user on one entity, role-scoped @restrict grants for RiskViewer and RiskManager on another. It tests the unprotected action locally with cds watch, calling it from Postman with the session cookie read out of SAP Business Application Studio's preview tab. It then deploys to BTP and reads Risks with a client-credentials OAuth token fetched from a service key of the cpapp-auth instance, after changing that entity's READ grant from RiskViewer to authenticated-user, which the post, citing capire's CDS-based Authorization page, describes as a grant for a technical user integrating systems rather than for access from a front end.ArthurYang, published 2024-12-10
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
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
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.
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3Building on Reusable components for CAP with cds-plugin by Daniel Schlachter, this part walks through a custom CAP plugin — a cds-plugin.js plus a lib_cap_dox.js helper — that authenticates against SAP's Document Information Extraction (DOX) service and calls its schema and job-status APIs to fill an entity from extracted document fields. It covers reading the service key from Cloud Foundry (cf service-key) for the OAuth token endpoint, and dynamically mapping DOX's header and line-item output onto CAP entity properties.sabarna17, published 2024-06-11
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.
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.
Using the UI5 Mockserver for Client-Specific Data and TestingUsing the UI5 Mockserver for Client-Specific Data and TestingWalks through a same-day feature in @sap-ux/ui5-middleware-fe-mockserver, 'Support autoloading mockdata file for specific tenants', which loads a <Entity>-<client>.json file keyed to the sap-client URL parameter and falls back to the entity's plain JSON file when no client-specific one exists. Shows the setup replacing generated mock data with hand-written JSON, then drives the same sap-client parameter through separate package.json scripts so wdi5 end-to-end tests can run against distinct tenant datasets.published 2024-11-18
Simplifying SAP BTP Authentication in Pipelines with SAP Passport and PlaywrightSimplifying SAP BTP Authentication in Pipelines with SAP Passport and PlaywrightClient-certificate login to BTP works locally and has historically not worked in automated pipelines. The post uses Playwright's then-new client certificate support to close that, which is a sideways use of a browser automation library and the reason it is worth recording — the constraint it removes is a CI constraint, not a testing one.published 2024-11-08
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
How we could potentially have nestjs as runtime for SAP CAPHow we could potentially have nestjs as runtime for SAP CAPA proof-of-concept that swaps @sap/cds's ApplicationService and ODataAdapter dispatch for NestJS controllers, providers and interceptors, built by the author to learn NestJS rather than to ship a runtime. It works through CAP's run-dispatch-handle loop and AsyncLocalStorage-based transaction boundaries in detail before mapping them onto NestJS dependency injection and interceptors — one community answer to the controller-service-repository layering question core TypeScript support leaves open. The author's own conclusion is that the result reimplements CAP Java in Node.js, and they do not plan to take it further.alex_myakinkii, published 2024-09-19
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.
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
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-tsExploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-tsPart one of two: a bookshop project built in TypeScript from cds init, with cds-typer added as a development dependency and the surrounding tools — cds-ts and node-ts — put in place so the project runs locally. A setup walkthrough rather than an argument about typing, and it stops at the point where the application works on a laptop; deployment is part two.satya-dev, published 2024-07-08
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-ts
@cap-js/cds-typer has been through 18 major lines since this was published, most recently 0.39 (2026-05), 0.40 (2026-06), 0.41 (2026-08). Affects A recipe, Runnable code.
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-ts Part - 2Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-ts Part - 2Part two takes the TypeScript project from part one to Cloud Foundry: cds add mta, then the parts of the generated descriptor the author singles out as needing attention for a TypeScript build rather than a JavaScript one. The pair together is the whole path — typed model locally, then deployed — which is where a typing walkthrough usually stops short.satya-dev, published 2024-07-19
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-ts Part - 2
@cap-js/cds-typer has been through 17 major lines since this was published, most recently 0.39 (2026-05), 0.40 (2026-06), 0.41 (2026-08). Affects Runnable code.
Using the UI5 Mockserver for Client-Specific Data and TestingUsing the UI5 Mockserver for Client-Specific Data and TestingWalks through a same-day feature in @sap-ux/ui5-middleware-fe-mockserver, 'Support autoloading mockdata file for specific tenants', which loads a <Entity>-<client>.json file keyed to the sap-client URL parameter and falls back to the entity's plain JSON file when no client-specific one exists. Shows the setup replacing generated mock data with hand-written JSON, then drives the same sap-client parameter through separate package.json scripts so wdi5 end-to-end tests can run against distinct tenant datasets.published 2024-11-18