BrowseAll ecosystems
Everything in the atlas
131 of 2341
Domain: 2
Signals
Content
More: 4
Group by: Capability
Domain Learning & ReferenceDomain Developer ExperienceSource capireSource SAP BTP AI Best PracticesSource SAP CommunitySource Software-HeroesClear all
EntryBySignalsLast activity
How to consume UI5 custom libraries in BAS or VS CodeHow to consume UI5 custom libraries in BAS or VS CodeConsuming a custom UI5 library from a UI5 application locally, using yarn workspaces to resolve the dependency instead of adjusting the project before every deploy. The post is honest about its own history: the author had asked the question on SAP Community, found a workaround that needed a pre-deploy edit, and only later learned the workspace approach that removes it. Generator-based setup throughout, and 2021-vintage — yarn workspaces, generator-ui5-library and generator-easy-ui5.published 2021-04-06
How to Use NPM Modules Like crypto-js in SAPUI5 Using UI5 Tooling ModulesHow to Use NPM Modules Like crypto-js in SAPUI5 Using UI5 Tooling ModulesWalks through adding ui5-tooling-modules to a SAPUI5 project on UI5 Tooling v3: installing the npm package crypto-js alongside it, then wiring a ui5-tooling-modules-task builder task and a ui5-tooling-modules-middleware dev-server middleware into ui5.yaml so the UI5 module loader can resolve it. A controller then loads crypto-js/sha256 through sap.ui.define and calls it like any other AMD dependency, with the stated limit that the pattern works only inside a controller or other AMD-style module, not through a top-level import or require().DakshKumarSingh, published 2025-09-04
UI Composition with Application Frontend ServiceUI Composition with Application Frontend ServiceWhy shared UI code is hard, and what Application Frontend changes about it. The piece first lays out the three usual answers and what each costs — copying files at development time and repatching every consumer, publishing an npm package and rebuilding every consumer, or hosting the code separately and paying for it in CORS and session handling, or in an extra network hop through a server-side proxy. It then shows a fourth that only this service can do: runtime server-side composition without the hop, configured through routes in the consuming application's xs-app.json, across three cases — a reusable application embedded in a consumer, and two further composition shapes. Read alongside the generator, which scaffolds the mta.yaml, xs-app.json and zipper configuration this model needs.Vadim Tomnikov, published 2026-05-18
Multi-Origin Service Testing and Troubleshooting in SAP GatewayMulti-Origin Service Testing and Troubleshooting in SAP GatewayWalks through testing a multi-origin OData service in SAP Gateway by passing the $system parameter against a System Alias defined in /IWFND/MAINT_SERVICE, verified with the SAP Gateway Client (/IWFND/GW_CLIENT) and from outside the system with a browser or Postman. Covers three recurring failures — an ignored $system, a 500 from an unconfigured RFC destination or inactive backend service, and a 403 from a missing backend authorization — and how to confirm which alias and backend a request actually hit with /IWFND/TRACES.Ravikumar_H1, published 2025-08-19
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.
ABAP - Create dumpABAP - Create dumpShows how to terminate an ABAP program on purpose with RAISE SHORTDUMP — from a freshly created exception instance, or one already caught in a TRY/CATCH where continuing no longer makes sense — so a hard-to-diagnose failure leaves a dump behind instead of running on silently. The second half reads that dump back in ABAP Development Tools for Eclipse: the Feed Reader notification, the compressed view against the classic ST22-style view, and sections such as Active Calls and Source Code Extract, the same ADT troubleshooting path debugging places alongside the ABAP Debugger for ABAP Cloud.Björn S., published 2026-09-11
debug a CAP app with UI5 TypeScript UI component with VS Codedebug a CAP app with UI5 TypeScript UI component with VS CodeDebugging both runtimes at once — the CAP server and a UI5 component written in TypeScript, the latter stepped through in its own sources rather than in the transpiled output. Written when TypeScript for UI5 had just become possible, and the combination it sets up is the one CAP's app folder invites.published 2021-11-16
Debugging in ABAP Development Tool (Part 1)Debugging in ABAP Development Tool (Part 1)A walkthrough of the ABAP Debugger inside ABAP Development Tools: setting a toggle (hard) breakpoint versus a soft breakpoint that only fires once a session is already active, running up to four debugging sessions on the same program, reading the call stack, and debugging an update function module. It also covers watchpoints with their recent and current values, conditional and user-specific breakpoints, activating and deleting breakpoints, and adding variables such as SY-INDEX to the variables tab.M_Sumaiya_Khatoon, published 2025-09-02
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
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesSurviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesThree hurdles in running a CAP application locally: services mocked with cds run --with-mocks return no data across OData associations until the ON clause is hand-written into the imported CDS, an on-premise API reached through the SAP Cloud Connector times out because its proxy is part of destinations and connectivity and reachable only from inside SAP BTP, and a Fiori frontend served from the HTML5 Application Repository needs the HTML5 Repo Mock to reach a local backend at all. It closes with the launch configurations the author uses for debugging cds watch locally and attaching to a running Cloud Foundry instance.maxstreifeneder, published 2023-02-02
ABAP + MCP: Let AI Do Real Development in Your SAP SystemABAP + MCP: Let AI Do Real Development in Your SAP Systemabap-adt-mcp is an open-source MCP server that gives an AI agent full ABAP development capability over ADT: it searches, reads, edits, activates and unit-tests objects, and runs ATC checks, on a connected S/4HANA Cloud or on-premise system, acting as the signed-in developer. It runs on abap-adt-api, the same REST client Eclipse's own ADT tooling uses, and sits beside SAP's own ADT MCP Server, shipped with ADT for VS Code and Eclipse under a different server key, and marianfoo's abap-docs, a read-only server over the ABAP Keyword Documentation and Clean ABAP. Each destination carries a policy — read-only, allowed packages, denied tables and tools — the server checks before every call, and an optional audit file logs each tool call with its outcome and policy gate.Willian_Saez, published 2026-09-03
ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!Announces the marketplace release of ABAP development tools for Visual Studio Code, an extension that works against any ABAP system already reachable from ADT for Eclipse and is focused on RAP UI service development, so the Fiori/SAPUI5 frontend and the ABAP backend can be built in the same tool. It ships a built-in ADT MCP Server, disabled by default and switched on from the extension settings, and points readers to a documentation template for capturing ABAP-specific rules in a project's AGENTS.md file for chat agents such as Microsoft Copilot.thomasalexander_ritter, published 2026-06-01
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 new services using the CDS Graphical Modeler for SAP Business Application StudioCreating new services using the CDS Graphical Modeler for SAP Business Application StudioThe worked half of the introduction, published the same day: a service defined by drawing rather than by typing, projections included. Assumes the setup from the introduction and does not repeat it, so the two are one piece split in two.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
HANA SQL NOTEBOOKS in SAP BUILD / Business Application Studio(BAS) / Visual Studio CodeHANA SQL NOTEBOOKS in SAP BUILD / Business Application Studio(BAS) / Visual Studio CodeWalks through SAP HANA SQL Notebooks, a .notebook file opened inside a dev space of SAP Business Application Studio (also reached from SAP Build and Visual Studio Code), that mixes CODE and MARKDOWN blocks and needs the project's mta and hana facets added first with cds add. A CODE block's connection-management mode uses a '#' syntax to list, select and show the active SAP HANA connection, drawn from the HANA Database Explorer's saved connections or the project's own Cloud Foundry connection, so any valid SQL statement can then run against the project's HDI container.published 2025-01-01
Importing @sap/cds common.cds to your CAP project using the CDS Graphical ModelerImporting @sap/cds common.cds to your CAP project using the CDS Graphical ModelerPulling the common aspects and code lists from @sap/cds into a model through the modeller, so the reuse types appear in the diagram rather than only in the file.Xiao-fei_Song, published 2021-05-06
Importing an external data model using CDS Graphical Modeler for Visual Studio CodeImporting an external data model using CDS Graphical Modeler for Visual Studio CodeWalks through the CDS Graphical Modeler for Visual Studio Code: creating a "Customers" entity, importing an external OData model from an edmx file into the CDS model, and drawing a managed association from the new entity to an entity from the imported namespace. The import happens through the modeler's GUI rather than the cds import command, and the imported edmx becomes a CDS file the modeler can open directly.Xiao-fei_Song, published 2022-05-09
Importing external edmx files to your CAP project using the CDS Graphical ModelerImporting external edmx files to your CAP project using the CDS Graphical ModelerAn EDMX downloaded from the API hub — API_BUSINESS_PARTNER in the example — imported into the CDS model and its entities exposed as projections, done through the graphical modeller rather than cds import. Barely a page long.Xiao-fei_Song, published 2021-05-19
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
S/4HANA公有云版的内部ABAP拓展S/4HANA公有云版的内部ABAP拓展Argues that S/4HANA Cloud public edition's in-app ABAP extensibility is still real ABAP development, just under stricter rules: developer extensions require ABAP Development Tools rather than SAP GUI transactions, data models are defined as CDS views instead of SE11 tables, business logic is a RAP behavior definition instead of a function module, and service exposure is an auto-generated OData service from a Service Definition instead of a hand-built RFC/BAPI. The piece walks a worked example — a Fiori app that triggers the Purchase Requisition API — through CDS, RAP, OData activation on SAP Gateway, and authorization via business catalogues, and frames the whitelist of released APIs and CDS views as upgrade-safety rather than a restriction.ArthurYang, published 2025-11-24
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.
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
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
The fastest and easiest way to run full-stack applications in SAP Business Application StudioThe fastest and easiest way to run full-stack applications in SAP Business Application StudioThe gap between a mocked local run and a real one, and the tooling that closes it — live data, remote services, defaults overridden. The same author's Run Configurations post is the reference for the tool; this is the case it was built for.liat_b, published 2023-08-02
The Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilotsThe Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilotsA walkthrough of ABAP Development Tools for VS Code's general-availability release: connecting to an on-premise or BTP ABAP system, editing classes, CDS and RAP objects, and turning on the extension's built-in ADT MCP Server. Enabled, it lets a co-pilot such as GitHub Copilot or SAP Joule for Developers, ABAP AI capabilities read code, trace dependencies, and run ABAP Unit and ATC checks against the real system rather than guessing from training data.lpodile, published 2026-06-01
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
Tips: VS Code ExtensionsTips: VS Code ExtensionsA short list of the VS Code extensions worth having for this stack, from 2020. Dated by definition and still the kind of page people go looking for.jhodel18, published 2020-07-13
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.
Building an SAP BTP Agent Architecture from Scratch: Python + CAP + HANABuilding an SAP BTP Agent Architecture from Scratch: Python + CAP + HANAA first-person build log of a Flask orchestrator on Cloud Foundry that reduces a question to keywords, searches a Node.js service's Documents entity, and passes what it finds to Claude for a grounded answer. Getting there means learning that HANA's fuzzy .search() matches one word but not a full sentence, fixed by splitting the query into terms and merging the per-term hits, and that provisioning SAP HANA Cloud hits a database-level free-tier quota rather than an HDI-container one, with a stopped instance needing to be resumed first. It also covers @sap/cds-dk needing to sit in dependencies rather than devDependencies, since Cloud Foundry's buildpack skips the latter, before cds deploy --to hana can run as part of the push.neilaspin, published 2026-07-28
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
CAP Now Supports ReactJS - With working demo + UI5 Web componentsCAP Now Supports ReactJS - With working demo + UI5 Web componentsA walkthrough of scaffolding a React front end onto a CAP Bookshop project with cds add react --into <app>, wiring UI5 Web Components for React to the generated OData service, then adding further facets one command at a time — cds add app-frontend, cds add ias or cds add xsuaa, and cds add hana — before cds up deploys the result with IAS authentication and a HANA Cloud database. Each command expands the project by one facet rather than scaffolding everything up front, the grow-as-you-go shape generators describes.published 2026-06-09
CAPM Basics - Part 2CAPM Basics - Part 2Walks through deploying a CAP application to SAP BTP, Cloud Foundry Runtime: provisioning a SAP HANA Cloud instance and HDI container, then running cds add hana and cds add xsuaa --for production, cds build --production, and an MTA build and deploy. Tests the deployed service in Postman with an OAuth 2.0 client credentials token from the XSUAA binding (SAP Authorization and Trust Management service), explicitly leaving out any role templates or scopes.archisman92, published 2025-02-28
CAPM Basics - Part 4CAPM Basics - Part 4Part 4 of a CAPM Basics series binds the deployed XSUAA and SAP HANA Cloud service instances with cds bind and runs the project against them from a laptop via cds watch --profile hybrid, the hybrid-testing loop @sap/cds-dk provides. It then restricts the service with @restrict (READ granted to a Viewer role, full access to Admin) and adds OData Capabilities restrictions plus @odata.draft.enabled so a Fiori elements client renders create, update and delete without UI code. It closes by adding a UI module with the SAP Fiori Generator, wiring an approuter via cds add approuter to forward the auth token, and updating the SAP Authorization and Trust Management service instance with the generated redirect URI before redeploying.archisman92, published 2025-05-10
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.
Deploying a CAP app with Fiori app standalone (HTML5 Repo Host)Deploying a CAP app with Fiori app standalone (HTML5 Repo Host)A step-by-step alternative to deploying a CAP app's Fiori frontend through SAP Workzone or Launchpad: exposing it to the SAP HTML5 Application Repository service for SAP BTP instead of serving it straight from @sap/approuter, for zero-downtime content updates, versioning and permissions. It builds a sample with @sap/cds-dk's cds add hana,html5-repo,approuter,mta and cds add xsuaa --for production, generates the Fiori app through Business Application Studio's module wizard, then wires the app router's xs-app.json routes, the mta.yaml service binding and SAP Authorization and Trust Management service before building with mbt and deploying to SAP BTP, Cloud Foundry Runtime.Christopher_Ketzler, published 2025-04-22
First Java Cap ApplicationFirst Java Cap ApplicationA step-by-step walkthrough of a first CAP Java project: com.sap.cds:cds-services-archetype scaffolds the initial Maven project, and the domain model is then rewritten in the db folder with entities, the cuid and managed aspects, associations, compositions and a CodeList, so a hand-coded event handler serving a single entity gives way to a service that CAP's generic persistence handling serves without custom code. It deploys that model to SQLite for local development — cds deploy --to sqlite, then a Spring profile pointing at the generated database file — and ends by adding an index.cds so the model and service can be published as a reusable npm module.bruce_wang3, published 2020-12-08
Give Your AI Agent Some Tools: Introducing the UI5 MCP ServerGive Your AI Agent Some Tools: Introducing the UI5 MCP ServerAnnounces @ui5/mcp-server, SAP's open-source MCP server for UI5 development, and walks through its initial six tools. get_project_info, get_api_reference and run_ui5_linter (which applies UI5 linter fixes) read the project's own version, manifest and code rather than an LLM's training data, which is what agent access to your code explains. create_ui5_app scaffolds a new JavaScript or TypeScript project, standalone or inside an existing CAP application, from templates with pre-configured OData model setups, which is generators.published 2025-09-03
Joule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたJoule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたA walkthrough of building a custom Joule Studio skill on a CAP bookshop app: cds add sample and cds add mta scaffold the project and its deployment descriptor, cds compile srv/ --to xsuaa generates the role template behind the @requires: 'admin' check on AdminService from the SAP Authorization and Trust Management service (XSUAA), and mbt build packages the app for deployment to the SAP BTP, Cloud Foundry Runtime. The skill reaches the deployed OData API through the SAP Destination service, configured with the OAuth2 Client Credentials grant using the client ID, secret and token endpoint from the app's XSUAA service key, so Joule answers a natural-language question about a book by its ID.takayuki_tanaka, published 2025-07-30
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
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
Receive Events from Event Mesh of Integration Suite to CAP Node.js ApplicationsReceive Events from Event Mesh of Integration Suite to CAP Node.js ApplicationsWalks a CAP Node.js application through consuming events from SAP Integration Suite, Event Mesh: adding the messaging and xsuaa services with cds add, writing messaging.on handlers for named topics, and building and deploying the service as an MTA to Cloud Foundry. Documents a mismatch between Cloud Foundry's automatic queue provisioning and Event Mesh's management API, worked around by pointing the service key's management URI at a mock endpoint that always returns 201.KevinWang_ST_Consultancy, published 2026-02-13
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
SAP Fiori Application Generator Available in Open SourceSAP Fiori Application Generator Available in Open SourceThe SAP Fiori tools team announces that the code behind @sap/generator-fiori has moved entirely to open source, and names the packages it is built from: writers that output SAP Fiori elements and freestyle SAPUI5 application files, inquirer prompts for picking a back end, and ABAP deploy tasks, coordinated by a sub-generator. Before publishing, the team broke up what had been a monolith, added TypeScript typings and raised test coverage.jlong, published 2025-05-27
UI5 MCP Server Got Extended for UI Integration Cards GenerationUI5 MCP Server Got Extended for UI Integration Cards GenerationVersion 0.2.1 of the UI5 MCP Server adds three tools for UI Integration Cards: get_integration_cards_guidelines feeds an agent current best practices and API versions, create_integration_card scaffolds a new card project, and run_manifest_validation checks the generated manifest against the schema. The post frames these as closing the same gaps as the server's existing tools — an LLM's outdated or wrong card API knowledge — this time for scaffolding and validating a card rather than a full app.daniel_vladinov, published 2026-01-22
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
加速开发和部署的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.
Building Secure SAPUI5 Applications: Best Practices for DevelopersBuilding Secure SAPUI5 Applications: Best Practices for DevelopersA developer-facing rundown of secure coding habits for SAPUI5 apps: typed bindings and custom formatters to reject bad input before it reaches a handler, encodeHTML() instead of rendering untrusted HTML, keeping tokens and URLs out of local and session storage, and CSRF token handling on the ODataModel. It sets up linting with ESLint and an eslint-config-ui5 rule set to catch unsafe DOM access, eval calls and unused imports as part of CI, alongside the same input validation instinct: reject invalid input early rather than trust the backend to catch it.Manisha_19, published 2025-12-10
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
Migrate your code with UI5 linter – Autofix has landedMigrate your code with UI5 linter – Autofix has landedUI5 linter v1.12.0 adds an initial autofix, reached with ui5lint --fix, and the post walks through it end to end: the tool first reports a deprecated global reference (sap.ui.model.json.JSONModel), then the fix rewrites it into the equivalent module import and local variable. This first version only handles that one class of deprecation — replacing deprecated globals with imports — with more fix types left for later releases tracked on the tool's GitHub roadmap.published 2025-03-19
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 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
CAP PostgreSql setup local debugging using Docker - Part 2CAP PostgreSql setup local debugging using Docker - Part 2PostgreSQL in a container so the local loop matches the deployed one — the thing SQLite quietly stops you doing. Short, and it assumes the project from part one already runs.ramonlee5, published 2023-11-22
CAP PostgreSql setup local debugging using Docker - Part 2
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
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.
CAP with Local App Previews – Tips for Smooth DevelopmentCAP with Local App Previews – Tips for Smooth DevelopmentUI5's virtual endpoints remove the sandbox files a local preview used to need, and this is what that means for a CAP project specifically. Tips from trying it rather than an announcement of it.MioYasutake, published 2025-08-16
CAPM Basics - Part 4CAPM Basics - Part 4Part 4 of a CAPM Basics series binds the deployed XSUAA and SAP HANA Cloud service instances with cds bind and runs the project against them from a laptop via cds watch --profile hybrid, the hybrid-testing loop @sap/cds-dk provides. It then restricts the service with @restrict (READ granted to a Viewer role, full access to Admin) and adds OData Capabilities restrictions plus @odata.draft.enabled so a Fiori elements client renders create, update and delete without UI code. It closes by adding a UI module with the SAP Fiori Generator, wiring an approuter via cds add approuter to forward the auth token, and updating the SAP Authorization and Trust Management service instance with the generated redirect URI before redeploying.archisman92, published 2025-05-10
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.
Don't Wait for SAP: Unlocking MCP Servers in BAS Right NowDon't Wait for SAP: Unlocking MCP Servers in BAS Right NowA workaround post with a grievance behind it: MCP servers were promoted heavily at SAP TechEd, most IDEs support them, and Business Application Studio limits you to Joule. This is how to run them there anyway. Worth reading as evidence of where the tooling gap sits rather than only for the recipe, which by nature has a shelf life.published 2025-11-27
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
How to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASHow to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASA specific npm failure when creating a CAP app from a template, and the post now opens with its own July 2025 update saying the version has been published so this instance is gone. It stays useful because the cause — a dependency pointing at a version nobody published yet — recurs, and the unblocking steps are general.Ryota_Ito, published 2025-07-28
Hybrid testing using PostgreSQL on SAP BTP, hyperscaler optionHybrid testing using PostgreSQL on SAP BTP, hyperscaler optionA short note rather than a guide — the author says they came across the feature reading someone else's post on PostgreSQL with Kyma. Hybrid testing against a real PostgreSQL instance, which until then people assumed meant HANA.martinfrick, published 2023-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
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 CAP Lessons Learned: SQLite is single threaded, HANA is notSAP CAP Lessons Learned: SQLite is single threaded, HANA is notA page long, and one of the more useful pages here: the local database serialises what the deployed one runs in parallel, so concurrency bugs are invisible until they are not. Filed by the author as something the tutorials do not make clear.LucasMagriniRigo, published 2025-01-22
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
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.
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesSurviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesThree hurdles in running a CAP application locally: services mocked with cds run --with-mocks return no data across OData associations until the ON clause is hand-written into the imported CDS, an on-premise API reached through the SAP Cloud Connector times out because its proxy is part of destinations and connectivity and reachable only from inside SAP BTP, and a Fiori frontend served from the HTML5 Application Repository needs the HTML5 Repo Mock to reach a local backend at all. It closes with the launch configurations the author uses for debugging cds watch locally and attaching to a running Cloud Foundry instance.maxstreifeneder, published 2023-02-02
The fastest and easiest way to run full-stack applications in SAP Business Application StudioThe fastest and easiest way to run full-stack applications in SAP Business Application StudioThe gap between a mocked local run and a real one, and the tooling that closes it — live data, remote services, defaults overridden. The same author's Run Configurations post is the reference for the tool; this is the case it was built for.liat_b, published 2023-08-02
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.
Diagrams related to OData entities (CAP & ECC)Diagrams related to OData entities (CAP & ECC)Builds a small CAP service that uses the framework's reflection API to read an OData entity's elements and associations and emits PlantUML diagram source for it, as a hand-rolled alternative to the OpenAPI/Yuml-based diagram export capire documents. The author contrasts the PlantUML result with the OpenAPI/Yuml diagram, calling it more detailed and giving more control over orientation, colors and links. Part 1 of a two-part series; part 2 covers the same idea for ECC/ABAP.Pierre_Godart, published 2022-09-06
BTP CAP : Custom plugin to separate generic change log capture logicBTP CAP : Custom plugin to separate generic change log capture logicWalks through building a custom [CAP](ecosystem:cap) plugin that centralises change-log capture: on cds.once('served') it collects entities annotated @audit, then hooks srv.before('UPDATE') to read the existing record, diff it field by field against the incoming payload, and record old/new values with the user and timestamp. It also documents a cds build failure packaging the plugin's own directory into gen/srv for MTA deployment, fixed by adding it as a copyfiles build-parameter step in mta.yaml.sreehari_vpillai, published 2023-05-10
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 build reusable plugin components for CAP Java applicationsHow to build reusable plugin components for CAP Java applicationsA companion to Daniel Schlachter's Reusable components for CAP with cds-plugin, showing the same mechanism on CAP Java: a plugin ships as its own Maven artifact with an event handler and a CdsRuntimeConfiguration implementation, registered through the JDK's ServiceLoader rather than any CAP-specific wiring. The walkthrough builds a cds-emoji-plugin-java jar that decorates @emoji-annotated fields on read, installs it to the local Maven repository, and adds it as a runtime dependency to a cds init --add java bookshop application. It argues the plugin mechanism was not new to CAP Java, just previously undocumented.robinjayasinghe, published 2023-05-16
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
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
A Handy Custom Report to Scan SAP CDS Views for Usage of Search StringsA Handy Custom Report to Scan SAP CDS Views for Usage of Search StringsA custom SE38 report, ZSCAN_CDS_VIEWS, reads each Z-prefixed CDS view's DDL source through the function module /ABEX/SEFW_MOD_CVA_HANA and scans it for a list of search strings, listing the view and matching code line in an ALV grid. The author built it because ABAP Development Tools for Eclipse's ABAP Source Search, the code search SAP ships, is unwieldy for scanning many custom views at once or searching several strings together.shasankgupta024, published 2026-01-08
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
CAP: Consume External Service - Part 1CAP: Consume External Service - Part 1Builds a CAP Node.js service from scratch that consumes the public NorthWind OData V4 service: cds import turns its EDMX metadata into a CSN model under srv/external, and a CatalogService projects Products from it with a custom READ handler that runs the request through cds.connect.to('NorthWind'). Shows the same projection working two ways — against a CSV mocked under srv/external/data with the <service>-<entity>.csv naming the framework expects, then against the real service once credentials.url is added to the CAP configuration and @sap-cloud-sdk/http-client is installed — and defers routing that connection through the Cloud Foundry Destinations service to the next post in the series.published 2020-05-26
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.
New tutorial for UI5 Middleware FE MockserverNew tutorial for UI5 Middleware FE MockserverA step-by-step tutorial accompanying a Devtoberfest session walks through @sap-ux/ui5-middleware-fe-mockserver across nine exercises: zero-config mock data generated from OData metadata, custom JSON datasets with consistent IDs and referential keys, JavaScript actions, multi-service and cross-service scenarios, tenant isolation through sap-client, returning 400/404/422/500/501 responses for UI error-handling tests, and offline end-to-end tests run with wdi5. A companion tool, ui5-middleware-odata-recorder, captures real backend OData traffic to generate the mock datasets used for offline replay.published 2025-10-14
Random Numbers and Probability Distributions in the ABAP Environments for 2508Random Numbers and Probability Distributions in the ABAP Environments for 2508Introduces CL_ABAP_PROB_DISTRIBUTION and CL_ABAP_PROB_DISTRIBUTION_DF34, new ABAP system classes that generate random numbers from a distribution — normal, lognormal, exponential, gamma, chi-squared, Poisson, binomial, Student's t, hypergeometric, geometric — rather than only the uniform spread CL_ABAP_RANDOM gives. The worked example builds customer payment dates clustered around a due date instead of spread evenly across it, which is the shape seed data needs to look real rather than merely present; the same classes also compute CDFs and quantiles for statistical tests like a t-test on payment lateness. SAP plans this for on-premise and the private cloud with the 2025 major S/4HANA release, subject to change.kilian_kilger, published 2025-08-18
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
Claude ported ABAP functions to new APIClaude ported ABAP functions to new APIA first-person account of using Claude Code, driven through the sapcli command line, to install and repair RFC function modules that let a CI pipeline control abapGit and gCTS remotely, rather than treating git as a way to read ABAP source. Instead of trusting a local checkout, Claude read the abapGit login manager class and queried the target system's own type catalogue through sapcli, then used what it found to update a renamed API method and swap a TABLES parameter's structure for the table type BAPIRET2_T.jakub_filak, published 2026-03-16
How to extend ABAP Test Cockpit on SAP BTP for custom use casesHow to extend ABAP Test Cockpit on SAP BTP for custom use casesWalks through the released, C1-contract APIs and CDS views for extending ABAP Test Cockpit on SAP BTP: the single entry point CL_SATC_API=>CREATE_API_FACTORY, reading a run's findings and headers through SATC_API_FINDINGS and SATC_API_RESULT_HEADERS, starting synchronous local ATC runs for a transport, approving or rejecting exemptions programmatically, configuring approver responsibility areas without a UI, and implementing a custom check through IF_CI_ATC_CHECK. Code snippets show each API in use, including the CDS views that join ATC results to the Custom Code Migration app's own findings.OlgaDolinskaja, published 2026-05-20
How to Scan Custom ABAP for Security Issues in Eclipse (Step-by-Step)How to Scan Custom ABAP for Security Issues in Eclipse (Step-by-Step)Written by someone who works on the tool, this is a setup walkthrough for the RedRays ABAP Scanner Eclipse plugin: get a demo API key, install the plugin via an update site, point it at a backend, and scan an ABAP object from the Project Explorer. Findings for SQL/ADBC injection, OS command execution, path traversal, missing AUTHORITY-CHECK and similar are grouped by severity with a CVSS score and an automated exploitability check, and a REST API extends the same scan to a CI/CD allow/block gate on a transport.vahagn, published 2026-07-03
Taking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsTaking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsWalks through how SAP's standard path classifies custom ABAP extensions into Clean Core Levels A through D, running ABAP Test Cockpit against the Cloudification Repository's release status for each SAP object an extension touches, then feeding results into the RISE with SAP Methodology Dashboard in SAP Cloud ALM. Contrasts that with Project Kernseife, an open-source custom ATC check that lets a team override SAP's classification with project-specific rules, define its own successor objects (including custom wrappers), and expose a Score and Potential Score per finding through a CDS view for prioritizing cleanup — at the cost of owning and maintaining that classification. States which situations favor each: Kernseife where the standard rules are too rigid for the project's reality, the standard dashboard where cross-system comparability and low maintenance effort matter more.LBretschneider, published 2025-11-04
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
CAP full-stack testing with BDD flavourCAP full-stack testing with BDD flavourIntroduces Behavior-Driven Development for CAP applications: specifications written in Gherkin against a running app, validated by Cucumber, using cds-cucumber's ready-made step definitions for SAP Fiori elements and OData screens. The library handles service lifecycle — starting the app, assigning a port, driving the browser and authenticating a named user — and its OData steps know the service's entities and fields from the CDS model itself, so a scenario can open a list report, search it and assert row counts without hand-written glue code.published 2023-10-10
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.
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
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.
New tutorial for UI5 Middleware FE MockserverNew tutorial for UI5 Middleware FE MockserverA step-by-step tutorial accompanying a Devtoberfest session walks through @sap-ux/ui5-middleware-fe-mockserver across nine exercises: zero-config mock data generated from OData metadata, custom JSON datasets with consistent IDs and referential keys, JavaScript actions, multi-service and cross-service scenarios, tenant isolation through sap-client, returning 400/404/422/500/501 responses for UI error-handling tests, and offline end-to-end tests run with wdi5. A companion tool, ui5-middleware-odata-recorder, captures real backend OData traffic to generate the mock datasets used for offline replay.published 2025-10-14
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
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 Postman for API Testing with XSUAAUsing Postman for API Testing with XSUAAA way to get a JWT without routing traffic through the approuter and picking the token out of it. The author walks the alternatives first — redirect through the router, intercept the token — and says what is wrong with each, before requesting the token from the service directly.mariusobert, published 2020-03-02
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.
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
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.
How to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSHow to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSA dependency that is ESM-only inside a project that is CommonJS, and the author's judgement that converting the project was too risky. What follows is the esbuild workaround, which is the honest answer when the ecosystem has moved and your codebase has not.Jacky_Liu1, published 2025-08-01
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
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
A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 3/3A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 3/3The SAPUI5 frontend of the sample, and mostly an argument for writing UI5 in TypeScript: ES imports in place of sap.ui.define, a class with real private members in place of the underscore convention, and the service types generated from the CDS model copied into the UI package, so one IChats interface types the OData object the controller reads. The second half is structure — a formatter class and a singleton LayoutManager called from the XML view through core:require, a confirmation helper taking a callback, a dialog class resolving a promise, a generic createEntity<T> on a service class — all of it to keep every controller under 100 lines. What it says about arranging a UI5 app holds whatever model sits behind the chat; the tooling around it is of its date, and the post calls UI5's TypeScript support experimental.published 2023-02-27
A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 3/3
cds2types. Affects Runnable code.
debug a CAP app with UI5 TypeScript UI component with VS Codedebug a CAP app with UI5 TypeScript UI component with VS CodeDebugging both runtimes at once — the CAP server and a UI5 component written in TypeScript, the latter stepped through in its own sources rather than in the transpiled output. Written when TypeScript for UI5 had just become possible, and the combination it sets up is the one CAP's app folder invites.published 2021-11-16
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
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.
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
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
By-passing function modules in aunitsBy-passing function modules in aunitsWalks through registering a function module as a test double with CL_FUNCTION_TEST_ENVIRONMENT inside an ABAP Unit test class: class_setup names the function module to replace, an input configuration matches on the importing parameters, and an output configuration sets what the double returns before the calling class is asserted against it. The Function Test Double Framework is presented as ABAP Unit's way of testing code that calls a function module — procedural, without a class's native test-double support — without triggering the database, RFC or BAPI calls the real function module would make.Jagadish_R31, published 2026-06-01
051: ABAP Cleaner in VS Code - Installation and Guide051: ABAP Cleaner in VS Code - Installation and GuideWalks through installing ABAP Cleaner inside ABAP Development Tools for VS Code and setting it as the default formatter in place of ADT's Pretty Printer, then using its interactive rule view to compare unformatted and cleaned code and configure which rules run, at class, component or method scope. A worked example applies Clean ABAP rules to one method: removing a redundant me-> self-reference and an unneeded EXPORTING keyword, and restructuring a CHECK statement that the styleguide disallows once other statements precede it.Björn S., published 2026-08-17
⚡Unlocking the Power of LLMs in CAP: Understanding llms.txt and llms-full.txt⚡Unlocking the Power of LLMs in CAP: Understanding llms.txt and llms-full.txtllms.txt and llms-full.txt for CAP — a plain-text map of the documentation, written for an agent that arrived by fetching a URL rather than one somebody configured. The convention the atlas uses for itself, applied to capire.Yogananda, published 2025-05-18
ABAP + MCP: Let AI Do Real Development in Your SAP SystemABAP + MCP: Let AI Do Real Development in Your SAP Systemabap-adt-mcp is an open-source MCP server that gives an AI agent full ABAP development capability over ADT: it searches, reads, edits, activates and unit-tests objects, and runs ATC checks, on a connected S/4HANA Cloud or on-premise system, acting as the signed-in developer. It runs on abap-adt-api, the same REST client Eclipse's own ADT tooling uses, and sits beside SAP's own ADT MCP Server, shipped with ADT for VS Code and Eclipse under a different server key, and marianfoo's abap-docs, a read-only server over the ABAP Keyword Documentation and Clean ABAP. Each destination carries a policy — read-only, allowed packages, denied tables and tools — the server checks before every call, and an optional audit file logs each tool call with its outcome and policy gate.Willian_Saez, published 2026-09-03