BrowseAll ecosystems
Everything in the atlas
135 of 2341
Domain
Signals
Content: 4
More
Group by: Capability
EntryBySignalsLast activity
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
Adding Immutable Blockchain Proofs to SAP With CAP - Cardano and OData V4Adding Immutable Blockchain Proofs to SAP With CAP - Cardano and OData V4The write-up behind ODATANO, by its author: how a public blockchain gets reachable from CAP as an ordinary OData V4 service rather than through a bespoke client. The premise it starts from is worth the read on its own — SAP systems are trusted but mutable, which is what an immutable anchor is for — and Cardano is chosen for peer-reviewed research and formal methods rather than for popularity. Written as an experiment with feedback invited, not as a recommendation.maxalexweber, published 2026-05-15
Calling bound / unbound CAP actions from Fiori elements application.Calling bound / unbound CAP actions from Fiori elements application.invokeAction from the Fiori elements Edit flow API, with the difference between bound and unbound actions spelled out first because the call shape differs. Under three thousand characters and it answers exactly one question.vidhyasagarmule, published 2024-09-07
Add MCP capabilities to a CAP serviceAdd MCP capabilities to a CAP serviceA fifteen-minute walkthrough of turning a plain CAP service into an MCP server: annotate the service with @mcp, install @cap-js/mcp, and it is served alongside OData at /mcp/<path>. The part worth reading it for is what happens next — cds watch writes the endpoint into the local agent's own configuration file, so OpenCode or Claude Code can call the service without anyone editing JSON by hand. It is built on the tiny-sample facet, so there is nothing to prepare, and it shows the protocol traffic rather than only the result. Written while the adapter was in beta, and it says so.published 2026-08-13
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
AI-native North Star architecture — Platform LayerAI-native North Star architecture — Platform LayerThe platform layer of SAP's North Star architecture, the chapter that says where agents run and what a developer builds them with. It names an AI Golden Path built on the SAP Cloud Application Programming Model, the ABAP Cloud development model with RAP and the SAP Fiori design system, and a managed agent runtime on SAP BTP that is designed to provide software development kits for building agents in any framework, an agent sandbox, container-hosted execution, a skills registry and continuous evaluations, which is the ground agent tooling covers. Agents are extended without changing their code through four patterns, the first of them tool extensibility through the Model Context Protocol, the concern MCP servers is named for; the process-layer chapter adds that a pro-code path with a standardised agent SDK and a prompt-driven path through the Joule Studio solution produce the same code artifact on the same runtime. It describes a design SAP intends rather than products that exist, and the SDK and the registry it names have no entry here yet.published 2026-05-13
AI-native North Star architecture — Platform Layer
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A reference.
Building MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectBuilding MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectArgues that the tool design, not the connection, is the hard part of putting an API in front of an agent. Works one request — create a customer — through eight endpoint-shaped tools, where the agent carries ids between calls and rebuilds the business rules each run, then through a single intent-shaped create_customer that hides the sequence; and says what separates the two: a business operation for a name, parameters a caller can supply without a lookup, the rules in the server rather than the prompt, and a description written for an agent choosing a tool. The SAP Integration Suite half is short — three creation paths, an iFlow behind the API artifact when a tool has to cross systems — and it closes on a checklist to run before publishing.published 2026-07-07
Create an MCP Server for Enterprise AI AgentsCreate an MCP Server for Enterprise AI AgentsWraps the preceding supply-risk graph from API Composition as an MCP server in Integration Suite, with API Management activated as a prerequisite. The walkthrough selects retrieval tools, deploys on Integration Cell, publishes a product in Developer Hub, creates an agent subscription and invokes the tools in MCP Inspector; its companion tutorial uses mock backends.Shyam, published 2026-09-23
HANA AI Toolkit — Local MCP ServerHANA AI Toolkit — Local MCP ServerAn MCP server that turns the hana-ml Python library into governed tools an agent can call against a HANA Cloud instance, shipped in the hana-ai toolkit and exposed over stdio, SSE and streamable HTTP. Its one firm rule is attributable execution: an audit module writes the MCP-side identity — agent, model, session, tool, redacted arguments — into the HANA connection before any SQL runs, and fails the call if that write fails. A worked example of governance on an MCP tool surface, from SAP's data side rather than CAP's.published 2026-06-15
MCP Server for SAP Incentive ManagementMCP Server for SAP Incentive ManagementA proof of concept putting SAP Incentive Management behind MCP so an agent can reach it, spanning the server, the backing APIs and SAP Advanced Workflow. The post opens with an unusually explicit disclaimer — personal capacity, no organisation's architecture or policies represented, and any real implementation needing customer and SAP review first — which is itself the useful part of reading it: it is a shape to think with, not a design to deploy.published 2026-07-16
Natural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesNatural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesThe division of labour is the argument, and it is in the subtitle: the model turns English into a CDS query and CDS runs it, so nothing generates SQL and nothing hallucinates a join. Schema annotations do the resolving. Long, with the package, the repository and the MCP registry entry all linked.Shahid, published 2026-06-25
The Easiest Way to Expose a CAP Node.js Project as an MCP ServerThe Easiest Way to Expose a CAP Node.js Project as an MCP ServerFrom cds init to a running MCP server in a handful of steps, ending at the MCP Inspector so the result is something you can see rather than something you have to trust. The claim it makes for the plugin is the absence of work: no REST wiring by hand, the CAP application exposed as a server because the package is installed. A walkthrough rather than an argument — the reasoning about what should be exposed lives elsewhere.Jacky Liu, published 2026-07-03
UI5 Has Entered the Chat: Building Interactive MCP Apps for SAPUI5 Has Entered the Chat: Building Interactive MCP Apps for SAPMCP Apps let an MCP tool point at a ui:// resource that a compatible host renders in a sandboxed iframe, and the post walks through the five samples of UI5con_2026_MCPApps, built with Mike Zaschka for UI5con, from a plain HTML time tool through UI5 Web Components and UI Integration Cards to UI5 lint findings from @ui5/mcp-server and an ARC-1 transport review. In the samples the model selects the tool and does not generate the interface, the prebuilt kind of generative UI, and the subject is the server side of MCP servers: register the resource, link it from the tool's _meta.ui.resourceUri, return text content as a fallback beside structuredContent, call callServerTool() only for tools of the server that owns the app, and send a message to the host when another server such as ARC-1 has to act. It stops at the host, whose support differs by client and whose iframe sandbox is not a complete security model, and Joule support for MCP Apps could not be verified at the time of writing.published 2026-07-13
Real-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSocketsReal-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSocketsThe other half of the author's own industrial-data post: mass ingestion is only useful if the screen keeps up, so background jobs push progress to the UI over WebSockets instead of the user reloading. Written from a mission-critical case rather than a demo.rgadirov, published 2026-03-12
Real-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSockets
Async processing changed in @sap/cds 10.0, 2026-07-02. Affects A recipe.
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
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.
Media Handling in SAP CAPM – Backend and Frontend ImplementationMedia Handling in SAP CAPM – Backend and Frontend ImplementationFiles against a record with the front end included, which most of the attachments writing here leaves out — the entity that stores the content, the custom logic around it, and then the UI5 side that uploads and retrieves. End to end rather than one half.published 2026-03-02
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.
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
Transforming Enterprise Data Strategy with SAP Business Data CloudTransforming Enterprise Data Strategy with SAP Business Data CloudSAP's layered picture of SAP Business Data Cloud, from lake storage and compute up to a knowledge core and agents, with eight sub-pages that each work one part through. The data products page is the cataloguing and lineage part: datasets described by Open Resource Discovery metadata, listed in the BDC catalog and shared over Delta Sharing to SAP Databricks and SAP HANA Cloud, with SAP Datasphere as a consumer on the intelligent content page; other pages install intelligent content, bring SAP BW data in through the Data Product Generator, provision groups by SCIM from Cloud Identity Services into SAP Databricks, which is identity provisioning, and train predictive models in SAP Databricks that SAP AI Core then serves for batch and real-time scoring. The main page states direction more than mechanism, and the BW page marks SQL Share for derived and OData for analytical data products as to be available.published 2026-05-12
Handling Concurrent Updates in SAP CAP JavaHandling Concurrent Updates in SAP CAP JavaAlice and Bob open the same employee record; Bob saves last and quietly erases Alice's change. The lost-update problem stated concretely and then answered in CAP Java, which is the only entry here on the subject — hence the capability.Anjali_Pathak, published 2026-05-26
Federating, Replicating, and Caching Remote Data in CAP — Part 2Federating, Replicating, and Caching Remote Data in CAP — Part 2The practical half of the pair. Where Part 1 sets out the terminology, what CAP does out of the box and where the gaps are, this one builds a small application that federates, replicates and caches remote data, one step at a time, with the finished project published as sales-cockpit so a reader can either follow along or start from the end. It began as a twenty-minute reCAP talk, which the author says was only room for the intro.published 2026-07-17
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
Deep Insert in SAP CAPM Using Composition and Fiori ElementsDeep Insert in SAP CAPM Using Composition and Fiori ElementsParent and children created in one transaction, which composition already gives you in the model — the post is about what Fiori elements does with it, and what the payload looks like when the UI sends both at once.published 2026-05-22
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.
A Use Case for HANA Cloud Knowledge Graph: AI‑Driven Tender AnalysisA Use Case for HANA Cloud Knowledge Graph: AI‑Driven Tender AnalysisMatching unstructured text against internal data, using both HANA engines at once — the Knowledge Graph for the relationships and the Vector Engine for similarity — with CAP holding the application and its data. Notes that the Knowledge Graph Engine is off by default and has to be enabled when the instance is created, which is the kind of thing that stops a weekend.giacomo_dantonio, published 2026-03-19
Building a CAP App with Fiori Integration – Part 1: Environment & HANA Cloud SetupBuilding a CAP App with Fiori Integration – Part 1: Environment & HANA Cloud SetupA trial account taken from nothing to a CAPM project with a HANA Cloud instance behind it. Everything here is prerequisites, which the author says outright — the application is in the parts that follow.SuryaRamesh, published 2026-04-08
Configure an SAP CAP Application to Connect to an SAP HANA Cloud Database in Another Global Account or SubaccountConfigure an SAP CAP Application to Connect to an SAP HANA Cloud Database in Another Global Account or SubaccountThe case the tooling does not cover: the database is in a different global account, so there is no HDI container to bind and cds deploy cannot do its usual job. Written for exactly that, and it says so in the subtitle — without HDI.JhoelAnthonyRamosRomeroPE, published 2024-10-08
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorConnect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorAn end-to-end route from a CAP Node.js application on Cloud Foundry to a PostgreSQL database that is never made publicly reachable, over BTP Connectivity and the Cloud Connector using a TCP destination and SOCKS5. The part worth having is that it covers the deployer as well as the server: the generated PostgreSQL deployer has to reach the same private database to deploy the CDS model, and a guide that only connects the runtime leaves you with a schema you cannot install.Kalaikovan, published 2026-08-07
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]The first of six, and it does the thing the later parts depend on: build the Incident Management application against SQLite on a laptop, with no cloud database in sight. The series is called decoupled because the front end and the back end are deployed separately, and this part is entirely the back end.sanjucs, published 2026-05-06
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]The cloud database appears: a HANA Cloud instance created on BTP and mapped to a Cloud Foundry space. No application code — this is the part where the platform has to be right before the next part can connect to it.sanjucs, published 2026-05-08
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]The switch from SQLite to HANA and the first deploy of the back end to Cloud Foundry — the point in the series where the persistence stops being a file and the build starts producing HDI artifacts.sanjucs, published 2026-05-12
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Opens with the observation the whole series rests on — CAP is usually demonstrated locally, and the interesting part starts when it is deployed. Part one of the run that continues into PostgreSQL and Work Zone.yashbhosle789, published 2026-02-25
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionPart 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionThe middle of a series that runs from database to Work Zone: the CAP application from part one pointed at PostgreSQL on the hyperscaler option, and deployed. The service binding and the build are where it spends its time.yashbhosle789, published 2026-03-04
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler Option
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
SAP CAP Lessons Learned: Run a CAP app using SQLite on SAP BTP - Cloud FoundrySAP CAP Lessons Learned: Run a CAP app using SQLite on SAP BTP - Cloud FoundrySQLite past the point it is meant to go — deployed, not local. Written as a lesson learned rather than a recommendation, and it pairs with the author's own note that SQLite is single threaded.LucasMagriniRigo, published 2024-12-30
SAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the CloudSAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the CloudCAP on HANA 2.0 XSA rather than on BTP — on-premise, and chosen for throughput. Mass ingestion through native stored procedures, which is the point at which CDS stops being the right tool and the post says so.rgadirov, published 2026-03-09
SAP CAP on HANA XSA: Scaling Industrial Data Applications Beyond the Cloud
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Setting Up PostgreSQL for SAP BTP Development: A Practical GuideSetting Up PostgreSQL for SAP BTP Development: A Practical GuideOpens with the premise the rest of this bucket mostly assumes away — not every BTP application needs HANA Cloud — and then sets up PostgreSQL on the hyperscaler option. Part one of a series that continues into XSUAA.michal_majer, published 2026-01-20
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.
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
Connecting Two SAP CAP Projects Without Duplicating Your DataConnecting Two SAP CAP Projects Without Duplicating Your DataCross-container HDI synonyms, argued from the alternatives rather than presented as a recipe: copying the table, standing up an API, or hard-coding the values are the three things the author reports seeing teams do, and each is named as working but unclean. With synonyms in place the consuming project queries the owner's HANA tables through ordinary SQL and ordinary CAP service code, with no replication and nothing to drift between environments. Covers the same ground as Mio Yasutake's 2021 post from a different angle — that one enumerates four topologies, this one argues for one of them.Inderpreet, published 2026-07-08
From SEGW and Legacy UI5 to RAP with ARC-1From SEGW and Legacy UI5 to RAP with ARC-1Three ARC-1 skills, run in Cursor with Composer-2 against a deliberately rough demo on an S/4HANA 2023 trial system, turn the SEGW service ZDEMO_MIG_PROJECTS_SRV into a managed, draft-enabled RAP business object published as OData V4, replace its ApproveProject function import and its direct UPDATE ... COMMIT WORK with the action approve_project written in EML in local mode, and rebuild the freestyle UI5 JavaScript app once in UI5 TypeScript and once as a Fiori elements list report and object page driven by metadata extensions. What the published transcripts add is how the agent got there: it found the generated MPC class names and the custom logic in DPC_EXT only by reading the system, the skills made it print the extracted model and stop for confirmation before writing, and @ui5/mcp-server, mcp-sap-docs and @sap-ux/fiori-mcp-server each had their own job beside it. The demo is small on purpose, and the post says a productive SEGW service that calls BAPIs, carries custom authorisation logic or supports deep inserts is not solved with one prompt.published 2026-05-11
From SEGW and Legacy UI5 to RAP with ARC-1
@sap-ux/fiori-mcp-server has been through 2 major lines since this was published: 0.7 (2026-05), 1 (2026-05). Affects Runnable code.
Real-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSocketsReal-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSocketsThe other half of the author's own industrial-data post: mass ingestion is only useful if the screen keeps up, so background jobs push progress to the UI over WebSockets instead of the user reloading. Written from a mission-critical case rather than a demo.rgadirov, published 2026-03-12
Real-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSockets
Async processing changed in @sap/cds 10.0, 2026-07-02. Affects A recipe.
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorConnect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorAn end-to-end route from a CAP Node.js application on Cloud Foundry to a PostgreSQL database that is never made publicly reachable, over BTP Connectivity and the Cloud Connector using a TCP destination and SOCKS5. The part worth having is that it covers the deployer as well as the server: the generated PostgreSQL deployer has to reach the same private database to deploy the CDS model, and a guide that only connects the runtime leaves you with a schema you cannot install.Kalaikovan, published 2026-08-07
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-5]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-5]The consequence of decoupling: with the back end live on its own Cloud Foundry route, the front end needs a BTP destination to reach it rather than a relative path. Short, and it is the join the architecture creates.sanjucs, published 2026-05-18
Implementing Dynamic Subaccount-Based Routing in SAP CAP with SAP BTP DestinationsImplementing Dynamic Subaccount-Based Routing in SAP CAP with SAP BTP DestinationsWhy environment variables are the wrong place for backend endpoints in a CAP application, and what replaces them: cockpit destinations resolved at runtime, with the subaccount or instance identified as the request is handled. The argument is about redeployment — an endpoint kept in the environment means a deploy every time it moves — and the shape it produces is one codebase serving several landscapes without a build per landscape.Dnyaneshwar Salve, published 2026-03-18
Generating PDF on BTP CF using CAP and PuppeteerGenerating PDF on BTP CF using CAP and PuppeteerA headless browser rendering the PDF, which is the answer people reach for when the document is really a web page. The Cloud Foundry part is the difficulty: Puppeteer needs a browser in the buildpack, and that is what the post is actually about.ltomazeli58, published 2024-03-28
How to Generate and Download PDFs on the fly without persisting in CAP ApplicationHow to Generate and Download PDFs on the fly without persisting in CAP ApplicationStreaming a generated document straight to the client without writing it anywhere first — which sidesteps the retention question a stored file creates, and is the distinction worth having beside the attachments capability.HarsithKumarReddy, published 2024-06-18
Event-Driven Multi-Tenant Architecture on SAP BTP with CAP and SAP Event MeshEvent-Driven Multi-Tenant Architecture on SAP BTP with CAP and SAP Event MeshThe two topics that are usually written about separately, taken together — because a shared broker is where tenant isolation stops being automatic. It starts from why microservices are decoupled at all, places Event Mesh among the four broker services BTP offers, and then works through what changes when the publisher and the consumer are multitenant.ale_biagi, published 2024-12-19
Integrating SAP S/4HANA Invoicing with KSeF Using SAP Event Mesh and CAPIntegrating SAP S/4HANA Invoicing with KSeF Using SAP Event Mesh and CAPA concrete regulatory deadline rather than a demo topic: every Polish invoice has to pass through KSeF, the national e-invoice platform, and this proposes the route — S/4HANA business events onto Event Mesh, a CAP application consuming them and talking to KSeF. Short, and offered as an example to argue with.Yahor, published 2024-08-29
Publish events from CAP Node.js applications to Event Mesh of Integration SuitePublish events from CAP Node.js applications to Event Mesh of Integration SuiteThe smallest complete example: cds init, a service with one function, cds.connect.to('messaging') and an emit to a topic. Deliberately scoped — the Event Mesh setup is skipped and the subaccount is assumed to be the same one — so what remains is the handful of lines on the CAP side and the binding that makes them reach the broker.KevinWang_ST_Consultancy, published 2026-02-13
Publish events from CAP Node.js applications to Event Mesh of Integration Suite
Event Mesh changed in @sap/cds 10.0.3, 2026-07-02. Affects A recipe.
Triggering SAP Build Process Automation Processes from SAP Cloud Application Programming (CAP) AppsTriggering SAP Build Process Automation Processes from SAP Cloud Application Programming (CAP) AppsThe two routes out of a CAP application into a process, side by side: a destination with OAuth2ClientCredentials, the same destination with principal propagation, and Event Mesh with a CloudEvents payload. Written before @cap-js/process existed, so it is the record of what the plugin now does for you — useful when the plugin does not fit, and useful for reading what it is actually doing underneath.ATheobaldt, published 2024-12-09
Triggering SAP Build Process Automation Processes from SAP Cloud Application Programming (CAP) Apps
Workflow integration has changed twice since this was published, most recently in @cap-js/n8n 0.0.1, 2026-08-27. Affects A recipe, Runnable code.
Application to Application IntegrationApplication to Application IntegrationSAP's reference architecture for application-to-application integration, where messages carrying transactional data such as sales orders pass between business applications in near real time and each one triggers the next process step. When the sender's and receiver's APIs do not match, Cloud Integration in SAP Integration Suite sits between them to determine receivers, filter, map structures and convert protocols, which is the ground of integration flows; SAP Connectivity service, Cloud Connector and SAP Destination service reach on-premise receivers, and the edge integration cell runtime keeps processing inside a customer-managed landscape where compliance requires it. Direct exchange without middleware is allowed when the two APIs already align, asynchronous communication is the default the page states, and it is drawn at the level of the pattern, following SAP's Integration Solution Advisory Methodology, without designing any one flow.published 2024-08-01
Business to Business IntegrationBusiness to Business IntegrationSAP's reference architecture for business-to-business integration, the exchange of business documents with customers, suppliers and other trading partners over agreed standards such as EDIFACT, ANSI X.12 and IDoc and protocols such as AS2. Its design-time steps are Cloud Integration in SAP Integration Suite, the predefined content of SAP Business Accelerator Hub, and Integration Advisor, which defines message implementation and mapping guidelines and generates runtime artifacts from them; Trading Partner Management then turns partner profiles into agreements pushed to the Partner Directory, and generic integration flows on Cloud Integration read those agreements at runtime to exchange messages with each partner. The alternatives it names are API-based exchange where an industry has standardised its APIs, and SAP Business Network with the managed gateway for spend management in place of connecting partners one by one.published 2024-08-01
Connect Business Processes with SAP Master Data IntegrationConnect Business Processes with SAP Master Data IntegrationSAP's reference architecture for keeping master data such as materials, business partners and cost centres consistent across applications with SAP Master Data Integration, a central hub that stores every change in an event log and distributes it to the solutions that consume it. Cloud Integration in SAP Integration Suite carries what the hub does not reach, SAP solutions it does not yet support and third-party or on-premise systems, through an SAP Master Data Integration adapter, which is where the design meets integration flows; newer SAP S/4HANA releases connect to the hub without it. Consolidation, data quality and central governance are outside the architecture and left to SAP Master Data Governance, and SAP Master Data Integration itself has no entry in the atlas yet.published 2024-08-01
Introducing open-rfc: Calling SAP RFC from Node.js Without the SDKIntroducing open-rfc: Calling SAP RFC from Node.js Without the SDKopen-rfc is a TypeScript and JavaScript RFC client for Node.js with no runtime dependencies and no SAP NetWeaver RFC SDK, written after SAP archived node-rfc and PyRFC and while the connector below @sap/cds-rfc needs an S-user, an SAP Build Code licence and a private registry. The history of RFC connectivity from Node.js is the first half; the second shows the package on its own, as an npm alias for node-rfc, and through an npm override as the connector below an unchanged @sap/cds-rfc. The 0.2.3 beta stops at direct application-server connections with password authentication and classic Unicode RFC: no message-server load balancing, SNC, tRFC, qRFC, bgRFC or server mode.published 2026-08-10
ABAP and Agentic AI: The Hidden Problem in Real ProjectsABAP and Agentic AI: The Hidden Problem in Real ProjectsAI in SAP development splits on three questions, how the model gets context, where writing happens and who controls the setup: UI5 and CAP work in local files where git, reviews, tests and pipelines already gate a change, while on-stack ABAP writes land directly in a shared development system. Six patterns follow, framed after a paper by Lars Hvam, from AI in the IDE to off-stack development with abapGit, and the post settles on a hybrid where the agent reads the system over ADT or MCP and writes through a gated git flow. Read access alone is put at maybe 80 percent of the work, and what agent access to your code still lacks is named as tool governance: read-only defaults, package restrictions, blocking free SQL, per-user identity and auditing.published 2026-04-22
ABAP Development Automation with ARC-1 and GitHub WorkflowsABAP Development Automation with ARC-1 and GitHub WorkflowsA sample repository puts an ABAP package into GitHub with abapGit and connects GitHub Actions to ARC-1 on BTP through an API key with no write tools, so abaplint on the diff, ABAP Unit and ATC through SAPDiagnose, label-triggered Copilot and Claude reviews, and ST22 dump triage all run as checks on a pull request. The review case is PR #14, where a SAPRead of the activated method let Claude state that a direct SELECT from MARA was new in the PR and not yet active in SAP, which a diff-only review cannot know. The test gate reads activated objects, so a team that pushes before activation needs a sandbox or a pull-and-activate step, and pulling a merged change back into SAP is named as the next step, not built.published 2026-05-12
ARC-1 1.0: One Deployment, Multiple SAP SystemsARC-1 1.0: One Deployment, Multiple SAP SystemsThe release post for ARC-1 1.0, whose largest addition is an experimental multi-system mode: one BTP Cloud Foundry deployment attaches the SAP systems or clients an administrator selects through destinations, each with its own MCP address and an optional combined one, beside 22 included skills, an extension framework for company-specific tools, the BTP login code split out as @arc-mcp/xsuaa-auth, and a move to the ARC MCP organisation. It names the contributions behind the release: Wouter Lemaire for the first Cloud Foundry deployment and the first multi-backend implementation, Sami Bouguerra for NetWeaver 7.50 fixtures and activations that looked successful but were not, Clément Ringot for BTP login and Cloud Connector fixes, and Geert-Jan Klaps for S/4HANA Public Cloud support. It places SAP's own ADT MCP Server as the choice for a developer inside VS Code or Eclipse and ARC-1 as a shared service on BTP, and it stops short of a licence answer: the ADT web endpoints are not listed as published APIs in the SAP Business Accelerator Hub, so readers are told to ask SAP whether their agreement allows third-party tools to use them before a broader or production rollout.published 2026-08-03
ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the LaptopARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the LaptopThe BTP deployment of ARC-1: one Cloud Foundry app per SAP system, reached by MCP clients through XSUAA and reaching the backend through the SAP Destination service, the SAP Connectivity service and Cloud Connector, with a BasicAuth destination for startup probing and a Principal Propagation destination for per-user requests, and SAP_PP_STRICT=true so a propagation problem fails instead of falling back to the shared user. Tool governance is the three gates it spells out, the server ceiling set by environment variables, the user's permission from XSUAA role collections, OIDC scopes or API-key profiles, and the SAP backend authorisation, all of which must allow an action, and the staged rollout from read-only to writes in $TMP, then selected packages, then transport writes. It recommends the MTA deployment over Docker on Cloud Foundry or a buildpack push, treats BTP ABAP Environment as a separate service-key scenario with no Cloud Connector, and is not a full setup guide: the commands are left to the ARC-1 deployment docs.published 2026-04-29
ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the Laptop
arc-1 has been through 3 major lines since this was published: 0.8 (2026-05), 0.9 (2026-05), 1 (2026-07). Affects A recipe.
ARC-1 with Copilot Studio: SAP System Context Beyond DevelopersARC-1 with Copilot Studio: SAP System Context Beyond DevelopersTakes the BTP-deployed ARC-1 endpoint into Microsoft Copilot Studio, added as an existing MCP server with OAuth 2.0 against XSUAA and published to Teams or Microsoft 365 Copilot, so SAP system context reaches project roles that do not work in an IDE. The test agent combines SharePoint specifications, Jira tickets and mcp-sap-docs with ARC-1 in six scenarios: a patch for a Jira bug proposed before it is applied, the impact of widening a domain from CURR 13,2 to CURR 23,2, a two-layer CDS view built from a specification, an ATC and abaplint quality report, a short dump diagnosis, and a clean core check that proposes released successors for direct selects on USR02 and BUT000. The access path and security model are those of the BTP part unchanged; the advice is to start this audience read-only, although the showcase itself enabled the read and write tools.published 2026-05-04
ARC-1 with Copilot Studio: SAP System Context Beyond Developers
arc-1 has been through 3 major lines since this was published: 0.8 (2026-05), 0.9 (2026-05), 1 (2026-07). Affects A recipe, Runnable code.
ARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleBrings the same BTP-deployed ARC-1 endpoint into Joule through a Joule Studio, classic edition agent configured with Anthropic Claude Sonnet 4 and two MCP servers, ARC-1 and mcp-sap-docs, for work that starts in SAP where the previous part started in Microsoft 365. Two read-only showcases carry the ABAP Cloud readiness edge: a clean core check of one class that reports it is not released, uses USR02 and BUT000 directly and has no ATC findings, and a modernisation backlog for package ZSD_LEGACY which, as that package did not exist, grouped 28 ZSD* objects into risk buckets instead. The route through SAP Integration Suite API Management or a future MCP gateway is presented as a target architecture and not yet a productive setup, because Joule Studio's documentation requires streamable HTTP destinations and does not support MCP servers that need interactive OAuth user authorisation.published 2026-05-06
ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule
arc-1 has been through 2 major lines since this was published: 0.9 (2026-05), 1 (2026-07). Affects Runnable code.
Before You Upgrade S/4HANA: Static UI5 Checks with MCPBefore You Upgrade S/4HANA: Static UI5 Checks with MCPA UI5 version upgrade checked against one app by pairing two MCP servers: the ui5_version_diff tool added to mcp-sap-docs, which reads a bundle from ui5-lib-diff downloaded once at setup and filters it by version range, change type, library or query text, and @ui5/mcp-server, whose get_project_info, get_version_info, run_ui5_linter and run_manifest_validation say what the app uses and what fails. Run with a ui5-versions-upgrade.md skill on the legacy app from From SEGW and Legacy UI5 to RAP with ARC-1, from SAPUI5 1.84.59 to 1.147.2, the diff range held 985 deprecations and 961 What's New entries, and the linting and manifest validation narrowed that to findings in this app, among them jQuery.sap.require, synchronous bootstrap, the sap_belize theme, sap.m.MessagePage and an old manifest _version. The checks read the source in a local checkout and never the deployed app, so the report is a first pass: a changelog entry is not proof that a workaround can be deleted, and the app still has to be run and tested.published 2026-05-20
Building an Enterprise-Ready SAP AI Agent with Open SourceBuilding an Enterprise-Ready SAP AI Agent with Open SourceA self-hosted chat agent for SAP systems: LibreChat as UI and orchestrator with Entra ID sign-in and SharePoint connected, a local LLM through Ollama, and two MCP servers, mcp-sap-docs for public documentation and the ADT MCP server vibing-steampunk for the system itself. The ADT server runs in its read-only mode under a technical user with display authorisations only, so the agent can find a function module and pull its source, or locate a RAP business object with its behaviour definition and projection view, but cannot change anything. Two workflows show it, explaining what BAPI_DISPUTE_CREATE does in one system and planning a RAP action from a PDF specification, where the generated ABAP is copied into Eclipse by hand; the full setup is in the marianfoo/llm-client-sap-system-integration-sharepoint repository.published 2026-03-03
From SEGW and Legacy UI5 to RAP with ARC-1From SEGW and Legacy UI5 to RAP with ARC-1Three ARC-1 skills, run in Cursor with Composer-2 against a deliberately rough demo on an S/4HANA 2023 trial system, turn the SEGW service ZDEMO_MIG_PROJECTS_SRV into a managed, draft-enabled RAP business object published as OData V4, replace its ApproveProject function import and its direct UPDATE ... COMMIT WORK with the action approve_project written in EML in local mode, and rebuild the freestyle UI5 JavaScript app once in UI5 TypeScript and once as a Fiori elements list report and object page driven by metadata extensions. What the published transcripts add is how the agent got there: it found the generated MPC class names and the custom logic in DPC_EXT only by reading the system, the skills made it print the extracted model and stop for confirmation before writing, and @ui5/mcp-server, mcp-sap-docs and @sap-ux/fiori-mcp-server each had their own job beside it. The demo is small on purpose, and the post says a productive SEGW service that calls BAPIs, carries custom authorisation logic or supports deep inserts is not solved with one prompt.published 2026-05-11
From SEGW and Legacy UI5 to RAP with ARC-1
@sap-ux/fiori-mcp-server has been through 2 major lines since this was published: 0.7 (2026-05), 1 (2026-05). Affects Runnable code.
How I Use AI for Development and Why Context MattersHow I Use AI for Development and Why Context MattersPart one of the AI ABAP development series traces a move from pasting ChatGPT output and error messages back and forth to tools that search, read docs and inspect files themselves, and holds that the context around a model decides more in real projects than benchmark results do. In SAP work the grounding comes from mcp-sap-docs, which brings SAP Help, GitHub repositories, style guides and DSAG guidelines into the session, and context for changing a class also means the tables it uses, the classes it calls and similar implementations. Agentic autonomy is a slider set per project, with the time saved on typing moved into planning and review, and the post stops before ABAP: SAP's MCP servers for UI5, CAP and Fiori (@ui5/mcp-server, @cap-js/mcp-server, @sap-ux/fiori-mcp-server) sit in off-stack work that git and pipelines already gate, and the harder ABAP case is left to the next part.published 2026-04-20
Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP DevelopmentIntroducing ARC-1: A Secure ADT MCP Server for Enterprise SAP DevelopmentWhy ARC-1 exists beside earlier ADT MCP servers such as vibing-steampunk, fr0ster/mcp-abap-adt and dassian-adt: one centrally deployed instance per SAP system instead of a server on each developer laptop, with the MCP client to ARC-1 hop and the ARC-1 to SAP hop authenticated separately. It sets out the restrictive defaults (read-only, no free SQL or named table preview, writes confined to $TMP), the layering in which ARC-1's configuration, the user's role and SAP's own authorisation must all allow an action, Principal Propagation so SAP sees the real user, and audit events to the SAP Audit Log service; that is tool governance as much as agent access to your code. It leaves the BTP setup to the next part, and places ARC-1 beside SAP's ADT MCP Server, which SAP's configuration guide describes as a local HTTP server hosted by the IDE, and beside SAP API Policy 4.2026a, where ARC-1's stated position is to stay close to documented ADT behaviour and ask SAP before production use.published 2026-04-27
From Strategy Doc to Runtime Rule: Embedding SAP AI Standards into Claude CodeFrom Strategy Doc to Runtime Rule: Embedding SAP AI Standards into Claude CodeAn experiment in treating published engineering standards as machine-readable instructions an agent follows while it works, rather than as documents somebody is supposed to have read — hooks and skills wired so the rule applies at the moment code is written. The disclaimer is emphatic and worth carrying: a personal exploration, not an SAP product, not an endorsed approach, and readers are told to verify applicability through official channels. Read as a shape for the idea, not as a standard to adopt.ZYT, published 2026-06-25
Major New Version of the hana-cli: How It Was Built with the Help of AI (and a Lot of Human Review)Major New Version of the hana-cli: How It Was Built with the Help of AI (and a Lot of Human Review)More features in two months than the previous two years — and the sentence after that is the reason to keep it: quality still needed the human review, and the post is about the rough edges rather than the headline. A maintainer reporting on their own process.thomas_jung, published 2026-03-11
Setting the right expectations around AI for code generation and getting past the inherent limitsSetting the right expectations around AI for code generation and getting past the inherent limitsWritten by somebody who has worked on AI since a thesis on multi-layer perceptrons, and it is about the limits rather than the promise — what transformer-based coding agents can and cannot be expected to do. An argument, not a walkthrough.dirk_roeckmann, published 2026-02-17
Teaching AI Agents Best Practices: A Skills Workspace for CAP DevelopmentTeaching AI Agents Best Practices: A Skills Workspace for CAP DevelopmentStates the gap this capability exists for more precisely than most: an agent already knows CAP well enough to generate models, handlers and deployments, but knowing a framework and following its current practice reliably are different things, because a model defaults to whatever it saw most of during training — which may be outdated, subtly wrong, or simply not how a given team works. Skills are offered as the closing mechanism, and the post describes a workspace pattern rather than a single file, with the architecture claimed to be framework-agnostic.daniel_schlachter, published 2026-06-09
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
AI-native North Star architecture — Platform LayerAI-native North Star architecture — Platform LayerThe platform layer of SAP's North Star architecture, the chapter that says where agents run and what a developer builds them with. It names an AI Golden Path built on the SAP Cloud Application Programming Model, the ABAP Cloud development model with RAP and the SAP Fiori design system, and a managed agent runtime on SAP BTP that is designed to provide software development kits for building agents in any framework, an agent sandbox, container-hosted execution, a skills registry and continuous evaluations, which is the ground agent tooling covers. Agents are extended without changing their code through four patterns, the first of them tool extensibility through the Model Context Protocol, the concern MCP servers is named for; the process-layer chapter adds that a pro-code path with a standardised agent SDK and a prompt-driven path through the Joule Studio solution produce the same code artifact on the same runtime. It describes a design SAP intends rather than products that exist, and the SDK and the registry it names have no entry here yet.published 2026-05-13
AI-native North Star architecture — Platform Layer
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A reference.
ARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleBrings the same BTP-deployed ARC-1 endpoint into Joule through a Joule Studio, classic edition agent configured with Anthropic Claude Sonnet 4 and two MCP servers, ARC-1 and mcp-sap-docs, for work that starts in SAP where the previous part started in Microsoft 365. Two read-only showcases carry the ABAP Cloud readiness edge: a clean core check of one class that reports it is not released, uses USR02 and BUT000 directly and has no ATC findings, and a modernisation backlog for package ZSD_LEGACY which, as that package did not exist, grouped 28 ZSD* objects into risk buckets instead. The route through SAP Integration Suite API Management or a future MCP gateway is presented as a target architecture and not yet a productive setup, because Joule Studio's documentation requires streamable HTTP destinations and does not support MCP servers that need interactive OAuth user authorisation.published 2026-05-06
ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule
arc-1 has been through 2 major lines since this was published: 0.9 (2026-05), 1 (2026-07). Affects Runnable code.
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackBanking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackThe risk it is chasing is a graph problem stated in banking terms: a borrower who looks safe alone and is the linchpin of a group ten times the size. Multi-agent, mixed AI stack, on BTP and CAP.Shahid, published 2026-06-24
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI Stack
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A recipe, Runnable code.
Building an LLM Agent in CAP Java with Spring AIBuilding an LLM Agent in CAP Java with Spring AIThe Java counterpart to the author's own Node.js post, and written as one: connecting to AI Core with the SAP AI SDK, then calling an agent and a tool through Spring AI. Opens with a section on libraries and workflows — which framework does what, and what is left to you — before any code.published 2026-06-08
Building an LLM Agent in CAP Java with Spring AI
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building an LLM Agent using CAPBuilding an LLM Agent using CAPThe argument is that CAP is already most of what an agent framework wants — services, handlers, a typed model — so the agent is built inside it rather than beside it. AI Core through sap-ai-sdk, then Langchain for the agent and its tools. Long, with a TLDR at the top for people who want the shape without the walk.published 2026-05-27
Building an LLM Agent using CAP
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building Durable AI Agents - Announcing the cds-langgraph-persistence PluginBuilding Durable AI Agents - Announcing the cds-langgraph-persistence PluginThe announcement, and the argument behind it. Treating an agent as a software architecture rather than a model with tools makes a list of production requirements — identity, authn and authz, multitenancy, persistence, event-driven flows, scalability, observability, CI/CD — and the author's point is that CAP already answers most of them for BTP, which is what makes LangGraph inside CAP Node.js worth doing. The post then narrows to one of those requirements, durability, and the checkpointer that supplies it. Written from a year of building agents next to real business systems rather than as a framework tour.merbinjanselm, published 2026-07-15
Building Durable AI Agents - Announcing the cds-langgraph-persistence Plugin
@mi8y/cds-langgraph-persistence has been through 3 major lines since this was published: 0.5 (2026-07), 0.6 (2026-07), 0.7 (2026-09). Affects Runnable code.
Integrating and Extending JouleIntegrating and Extending JouleSAP's reference architecture for SAP Joule across SAP cloud applications: a request is checked against a Scenario Catalog of the applications' skills and a Knowledge Catalog answered by retrieval-augmented generation, combined with the user's roles and history, sent to an LLM available through the generative AI hub, and, where a Joule function is needed, turned into a call to the backend. Its identity page is the authentication path: each user sits in the Identity Directory of Cloud Identity Services with a Global User ID, Identity Provisioning synchronises role assignments into SAP Build Work Zone, whose navigation service decides which functions a user may call, and the Destination service exchanges the user's token to call a function in the user's name. Its extension page covers Joule Studio in SAP Build, where Joule skills automate rule-based tasks over APIs and AI agents plan and reason with models and document grounding from SAP AI Core, the ground agent tooling covers; a later Joule Studio page describes a managed Joule Studio Runtime on the SAP Business AI Platform, which has no entry here.published 2026-03-16
Integrate CAP application as outbound channel for SAP Document AIIntegrate CAP application as outbound channel for SAP Document AIDocument AI will call you back when extraction finishes, and the callback is where this goes wrong: the CAP application has to accept an unauthenticated POST from outside without dropping CSRF protection for everything else. The answer is a middleware hooked into the CAP bootstrap, and the post spends its length on the token lifecycle rather than on the extraction.sdeissenboeck, published 2026-04-22
SAP Document AISAP Document AISAP's reference architecture for SAP Document AI, first as SAP composes the service on BTP for document extraction: OCR, pretrained models, customer-defined schemas and LLM calls through SAP AI Core and its Prompt Registry in one pipeline, with tenant-isolated persistence in SAP HANA Cloud, PostgreSQL and an object store. Its scenario pages then lay out a solution in three layers: intake through Outlook and SharePoint inbound channels, the workspace UI, the Joule Work mobile app or the upload API; classification and extraction with a confidence score per field, automatic confirmation above a threshold and review of the rest in the workspace; and posting through outbound channels, directly to a REST API, through an SAP Integration Suite flow, or through a CAP service that maps the fields and calls SAP S/4HANA over OData. Enrichment beyond the service's own master data lookup is left to a CAP application or an Integration Suite flow triggered from an outbound channel, and direct API posting leaves error handling, retries and monitoring to the application.published 2026-06-03
UI5 Has Entered the Chat: Building Interactive MCP Apps for SAPUI5 Has Entered the Chat: Building Interactive MCP Apps for SAPMCP Apps let an MCP tool point at a ui:// resource that a compatible host renders in a sandboxed iframe, and the post walks through the five samples of UI5con_2026_MCPApps, built with Mike Zaschka for UI5con, from a plain HTML time tool through UI5 Web Components and UI Integration Cards to UI5 lint findings from @ui5/mcp-server and an ARC-1 transport review. In the samples the model selects the tool and does not generate the interface, the prebuilt kind of generative UI, and the subject is the server side of MCP servers: register the resource, link it from the tool's _meta.ui.resourceUri, return text content as a fallback beside structuredContent, call callServerTool() only for tools of the server that owns the app, and send a message to the host when another server such as ARC-1 has to act. It stops at the host, whose support differs by client and whose iframe sandbox is not a complete security model, and Joule support for MCP Apps could not be verified at the time of writing.published 2026-07-13
An Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAIAn Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAIA dormant internal app at SAP Japan revived with AI, built to solve a problem the team actually had — colleagues who could not talk to each other. Build Apps on the front, CAP on Kyma behind it, OpenAI in the middle.javieryw, published 2024-01-31
An Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAI
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects Runnable code.
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackBanking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackThe risk it is chasing is a graph problem stated in banking terms: a borrower who looks safe alone and is the linchpin of a group ten times the size. Multi-agent, mixed AI stack, on BTP and CAP.Shahid, published 2026-06-24
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI Stack
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A recipe, Runnable code.
Building an LLM Agent in CAP Java with Spring AIBuilding an LLM Agent in CAP Java with Spring AIThe Java counterpart to the author's own Node.js post, and written as one: connecting to AI Core with the SAP AI SDK, then calling an agent and a tool through Spring AI. Opens with a section on libraries and workflows — which framework does what, and what is left to you — before any code.published 2026-06-08
Building an LLM Agent in CAP Java with Spring AI
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building an LLM Agent using CAPBuilding an LLM Agent using CAPThe argument is that CAP is already most of what an agent framework wants — services, handlers, a typed model — so the agent is built inside it rather than beside it. AI Core through sap-ai-sdk, then Langchain for the agent and its tools. Long, with a TLDR at the top for people who want the shape without the walk.published 2026-05-27
Building an LLM Agent using CAP
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
cds-toon-ai-protocol-adapter: a pragmatic way to cut AI token costs using SAP CAPcds-toon-ai-protocol-adapter: a pragmatic way to cut AI token costs using SAP CAPNames a cost most CAP-plus-LLM writing ignores: every JSON payload streamed to a model is billed by its verbosity, in latency as well as money. The plugin brings TOON — Token-Oriented Object Notation — to a CAP service so the wire format changes without the service code doing so, in a REST variant and an OData one, with token counts reported on both sides.published 2026-01-25
Elevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginElevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginThe question underneath the enthusiasm: what leaves your landscape when a prompt goes to a model. The plugin's answer is to anonymise the sensitive fields through HANA before the prompt is sent, and this is the post that explains why that is the design rather than an option.AkashAmarendra, published 2024-02-02
Enhancing Enterprise Applications: AI-powered User Experience with SAP CAP AI PluginEnhancing Enterprise Applications: AI-powered User Experience with SAP CAP AI PluginStarts from the blank form nobody wants to fill in, and asks what an enterprise application should do about it. The AI is in service of that rather than the subject of it.published 2026-04-29
Integrating a Custom AI Model into SAP CAP Using AI LaunchpadIntegrating a Custom AI Model into SAP CAP Using AI LaunchpadYour own model rather than a hosted one: deployed to AI Core, made callable through AI Launchpad, then reached from CAP. The case a lot of companies ask about and few posts cover.egeAksoyek, published 2026-03-20
Integrating a Custom AI Model into SAP CAP Using AI Launchpad
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects Runnable code.
Michael Jackson: AI Cognitive Pipeline on SAP BTP, SAP CAP, ElevenLabs, Claude, HANA DB, SolaceMichael Jackson: AI Cognitive Pipeline on SAP BTP, SAP CAP, ElevenLabs, Claude, HANA DB, SolaceA pipeline that listens to a song, identifies the historical events it references, retrieves knowledge about each and builds an emotional arc across the whole track. Not an enterprise use case, and useful precisely for that: the plumbing — CAP, HANA, Solace, Claude, ElevenLabs — is doing something the vendor demos never ask of it.Shahid, published 2026-05-18
Natural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesNatural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesThe division of labour is the argument, and it is in the subtitle: the model turns English into a CDS query and CDS runs it, so nothing generates SQL and nothing hallucinates a join. Schema annotations do the resolving. Long, with the package, the repository and the MCP registry entry all linked.Shahid, published 2026-06-25
RAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPRAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPThe end-to-end version: a CAP service exposing the vector engine and the AI hub behind a couple of endpoints, answering where a CodeJam is on a given date. It has aged in a way the author has marked in the page itself — the section on the CAP LLM plugin now carries "(Outdated)" in its own heading — so read the embedding preparation and the retrieval shape, and check the plugin part against the package.KevinR, published 2024-05-21
UI5 AI Features library is now an npm PackageUI5 AI Features library is now an npm PackageThe release note for a demo turning into a dependency, and it is explicit about why that matters: the earlier version worked, but using it meant cloning the repo and copying both halves, which stops working the moment one of them changes. The post walks through what shipping the CAP plugin and the be.wl.ai control library in one npm version buys — a client and server contract that cannot drift — then lists the eleven controls by group, shows the two-line configuration that activates each half, and notes that this version is actually deployed on BTP behind both a standalone approuter and Work Zone. It closes on the demo repository, written with no library source in it as the test that the package stands alone.published 2026-08-31
UI5 AI Features library is now an npm Package
cds 8, line ended. Affects Runnable code.
Transforming Enterprise Data Strategy with SAP Business Data CloudTransforming Enterprise Data Strategy with SAP Business Data CloudSAP's layered picture of SAP Business Data Cloud, from lake storage and compute up to a knowledge core and agents, with eight sub-pages that each work one part through. The data products page is the cataloguing and lineage part: datasets described by Open Resource Discovery metadata, listed in the BDC catalog and shared over Delta Sharing to SAP Databricks and SAP HANA Cloud, with SAP Datasphere as a consumer on the intelligent content page; other pages install intelligent content, bring SAP BW data in through the Data Product Generator, provision groups by SCIM from Cloud Identity Services into SAP Databricks, which is identity provisioning, and train predictive models in SAP Databricks that SAP AI Core then serves for batch and real-time scoring. The main page states direction more than mechanism, and the BW page marks SQL Share for derived and OData for analytical data products as to be available.published 2026-05-12
A Use Case for HANA Cloud Knowledge Graph: AI‑Driven Tender AnalysisA Use Case for HANA Cloud Knowledge Graph: AI‑Driven Tender AnalysisMatching unstructured text against internal data, using both HANA engines at once — the Knowledge Graph for the relationships and the Vector Engine for similarity — with CAP holding the application and its data. Notes that the Knowledge Graph Engine is off by default and has to be enabled when the instance is created, which is the kind of thing that stops a weekend.giacomo_dantonio, published 2026-03-19
Michael Jackson: AI Cognitive Pipeline on SAP BTP, SAP CAP, ElevenLabs, Claude, HANA DB, SolaceMichael Jackson: AI Cognitive Pipeline on SAP BTP, SAP CAP, ElevenLabs, Claude, HANA DB, SolaceA pipeline that listens to a song, identifies the historical events it references, retrieves knowledge about each and builds an emotional arc across the whole track. Not an enterprise use case, and useful precisely for that: the plumbing — CAP, HANA, Solace, Claude, ElevenLabs — is doing something the vendor demos never ask of it.Shahid, published 2026-05-18
RAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPRAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPThe end-to-end version: a CAP service exposing the vector engine and the AI hub behind a couple of endpoints, answering where a CodeJam is on a given date. It has aged in a way the author has marked in the page itself — the section on the CAP LLM plugin now carries "(Outdated)" in its own heading — so read the embedding preparation and the retrieval shape, and check the plugin part against the package.KevinR, published 2024-05-21
A Clearer View of Your SAP Integrations Under the New API PolicyA Clearer View of Your SAP Integrations Under the New API PolicyThe SAP API Policy Evidence Skill assesses one SAP interface or usage pattern at a time against SAP API Policy v.4.2026a, reading evidence from five MCP servers, among them servers for the Business Accelerator Hub and SAP Notes, mcp-sap-docs and a read-only ARC-1, and returns one of four labels with a confidence level, an evidence table, residual risk and questions for SAP. It gives no compliant or not compliant answer on purpose, because SAP's FAQ (Q49) declines to publish a binding decision matrix, and it sends legal, commercial and roadmap questions to SAP and lowers its confidence when a source is not connected. Four sample runs show the method, among them ODP-RFC extraction labelled likely not aligned under SAP Note 3255746 and the same API_SALES_ORDER_SRV assessed differently for an autonomous agent behind a custom gateway and for a Boomi middleware flow; the SAP Notes and Business Accelerator Hub servers read SAP sites through a browser login, which the post says to use at your own risk.published 2026-06-02
ABAP and Agentic AI: The Hidden Problem in Real ProjectsABAP and Agentic AI: The Hidden Problem in Real ProjectsAI in SAP development splits on three questions, how the model gets context, where writing happens and who controls the setup: UI5 and CAP work in local files where git, reviews, tests and pipelines already gate a change, while on-stack ABAP writes land directly in a shared development system. Six patterns follow, framed after a paper by Lars Hvam, from AI in the IDE to off-stack development with abapGit, and the post settles on a hybrid where the agent reads the system over ADT or MCP and writes through a gated git flow. Read access alone is put at maybe 80 percent of the work, and what agent access to your code still lacks is named as tool governance: read-only defaults, package restrictions, blocking free SQL, per-user identity and auditing.published 2026-04-22
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the LaptopARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the LaptopThe BTP deployment of ARC-1: one Cloud Foundry app per SAP system, reached by MCP clients through XSUAA and reaching the backend through the SAP Destination service, the SAP Connectivity service and Cloud Connector, with a BasicAuth destination for startup probing and a Principal Propagation destination for per-user requests, and SAP_PP_STRICT=true so a propagation problem fails instead of falling back to the shared user. Tool governance is the three gates it spells out, the server ceiling set by environment variables, the user's permission from XSUAA role collections, OIDC scopes or API-key profiles, and the SAP backend authorisation, all of which must allow an action, and the staged rollout from read-only to writes in $TMP, then selected packages, then transport writes. It recommends the MTA deployment over Docker on Cloud Foundry or a buildpack push, treats BTP ABAP Environment as a separate service-key scenario with no Cloud Connector, and is not a full setup guide: the commands are left to the ARC-1 deployment docs.published 2026-04-29
ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the Laptop
arc-1 has been through 3 major lines since this was published: 0.8 (2026-05), 0.9 (2026-05), 1 (2026-07). Affects A recipe.
Building an Enterprise-Ready SAP AI Agent with Open SourceBuilding an Enterprise-Ready SAP AI Agent with Open SourceA self-hosted chat agent for SAP systems: LibreChat as UI and orchestrator with Entra ID sign-in and SharePoint connected, a local LLM through Ollama, and two MCP servers, mcp-sap-docs for public documentation and the ADT MCP server vibing-steampunk for the system itself. The ADT server runs in its read-only mode under a technical user with display authorisations only, so the agent can find a function module and pull its source, or locate a RAP business object with its behaviour definition and projection view, but cannot change anything. Two workflows show it, explaining what BAPI_DISPUTE_CREATE does in one system and planning a RAP action from a PDF specification, where the generated ABAP is copied into Eclipse by hand; the full setup is in the marianfoo/llm-client-sap-system-integration-sharepoint repository.published 2026-03-03
Building MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectBuilding MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectArgues that the tool design, not the connection, is the hard part of putting an API in front of an agent. Works one request — create a customer — through eight endpoint-shaped tools, where the agent carries ids between calls and rebuilds the business rules each run, then through a single intent-shaped create_customer that hides the sequence; and says what separates the two: a business operation for a name, parameters a caller can supply without a lookup, the rules in the server rather than the prompt, and a description written for an agent choosing a tool. The SAP Integration Suite half is short — three creation paths, an iFlow behind the API artifact when a tool has to cross systems — and it closes on a checklist to run before publishing.published 2026-07-07
HANA AI Toolkit — Local MCP ServerHANA AI Toolkit — Local MCP ServerAn MCP server that turns the hana-ml Python library into governed tools an agent can call against a HANA Cloud instance, shipped in the hana-ai toolkit and exposed over stdio, SSE and streamable HTTP. Its one firm rule is attributable execution: an audit module writes the MCP-side identity — agent, model, session, tool, redacted arguments — into the HANA connection before any SQL runs, and fails the call if that write fails. A worked example of governance on an MCP tool surface, from SAP's data side rather than CAP's.published 2026-06-15
Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP DevelopmentIntroducing ARC-1: A Secure ADT MCP Server for Enterprise SAP DevelopmentWhy ARC-1 exists beside earlier ADT MCP servers such as vibing-steampunk, fr0ster/mcp-abap-adt and dassian-adt: one centrally deployed instance per SAP system instead of a server on each developer laptop, with the MCP client to ARC-1 hop and the ARC-1 to SAP hop authenticated separately. It sets out the restrictive defaults (read-only, no free SQL or named table preview, writes confined to $TMP), the layering in which ARC-1's configuration, the user's role and SAP's own authorisation must all allow an action, Principal Propagation so SAP sees the real user, and audit events to the SAP Audit Log service; that is tool governance as much as agent access to your code. It leaves the BTP setup to the next part, and places ARC-1 beside SAP's ADT MCP Server, which SAP's configuration guide describes as a local HTTP server hosted by the IDE, and beside SAP API Policy 4.2026a, where ARC-1's stated position is to stay close to documented ADT behaviour and ask SAP before production use.published 2026-04-27
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPEnabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPAuthorization policies defined in Identity Authentication and consumed by a CAP application through AMS — the configuration half of the move away from XSUAA scopes, from the identity service's side rather than the application's.Yogananda, published 2024-12-27
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAP
Authorization changed in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
Integrating and Extending JouleIntegrating and Extending JouleSAP's reference architecture for SAP Joule across SAP cloud applications: a request is checked against a Scenario Catalog of the applications' skills and a Knowledge Catalog answered by retrieval-augmented generation, combined with the user's roles and history, sent to an LLM available through the generative AI hub, and, where a Joule function is needed, turned into a call to the backend. Its identity page is the authentication path: each user sits in the Identity Directory of Cloud Identity Services with a Global User ID, Identity Provisioning synchronises role assignments into SAP Build Work Zone, whose navigation service decides which functions a user may call, and the Destination service exchanges the user's token to call a function in the user's name. Its extension page covers Joule Studio in SAP Build, where Joule skills automate rule-based tasks over APIs and AI agents plan and reason with models and document grounding from SAP AI Core, the ground agent tooling covers; a later Joule Studio page describes a managed Joule Studio Runtime on the SAP Business AI Platform, which has no entry here.published 2026-03-16
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
Authorization Management Service in SAP Cloud Identity ServiceAuthorization Management Service in SAP Cloud Identity ServiceStates the direction of travel plainly — BTP moving authorization management from XSUAA to AMS inside SAP Cloud Identity Service — and then explains what a policy is, which is the unit that replaces a scope. Split between authorization for Cloud Identity itself and for custom business applications, and it is the concept post the CAP Java write-up refers back to.kevin_li, published 2024-10-17
Dynamic authorisation with user attributes in SAP CAP and AMSDynamic authorisation with user attributes in SAP CAP and AMSThe same argument as the XSUAA-to-AMS piece, opened from a concrete failure: an acquisition puts 500 users on sales data restricted by division, and role-based access control answers it with Sales_Manager_EMEA, Sales_Manager_APAC and so on until the roles multiply past managing. Attribute-based authorisation replaces the set with one policy carrying a restriction, and the post walks through defining it in AMS against Cloud Identity Services. The clearest statement of role explosion among the three AMS pieces here.pedro_iranzo, published 2026-05-04
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPEnabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPAuthorization policies defined in Identity Authentication and consumed by a CAP application through AMS — the configuration half of the move away from XSUAA scopes, from the identity service's side rather than the application's.Yogananda, published 2024-12-27
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAP
Authorization changed in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
From XSUAA to AMS: Architecting S4HANA CAP Extensions with Policy-Based AuthorizationFrom XSUAA to AMS: Architecting S4HANA CAP Extensions with Policy-Based AuthorizationWhy scope-based authorization runs out, argued from enterprise extension work rather than from the documentation: XSUAA handles roles well, but real requirements are business-context restrictions — country, company code, organisational unit — and expressing those as scopes does not scale. The migration to policy-based authorization is presented as an architectural move for S/4HANA extensions rather than a configuration change.Avinash Vaidya, published 2026-05-27
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
SAP BTP XSUAA Security Configuration Comparison: Attribute-Based vs. Authority-Based ApproachesSAP BTP XSUAA Security Configuration Comparison: Attribute-Based vs. Authority-Based ApproachesTwo shapes of the same xs-security.json set against each other, with the resulting JWT printed for both. The consequence for application code is what makes it worth reading: under the attribute-based configuration a CAP handler reads req.user.attr.department, and under the authority-based one it does not, because the attribute is not there. Carries a migration guide between the two.rajeshkputumbaka, published 2026-02-18
Securing a CAP Node.js App with SAP AMS on BTP Cloud FoundrySecuring a CAP Node.js App with SAP AMS on BTP Cloud FoundryThe end-to-end version: a CAP Node.js project from cds init, role-based access through the Authorization Management Service and Identity Authentication Service, and an MTA deployment to Cloud Foundry. The prerequisite list is the useful part to read first — HANA Cloud, an IAS tenant and an AMS entitlement — because it says plainly what this path costs before you are three steps into it.Jacky Liu, published 2026-07-17
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.
New and improved: Change Tracking pluginNew and improved: Change Tracking pluginThe 2.0 announcement, and unusually candid about why there is a 2.0 at all: the plugin already existed and was, in the author's words, plagued by many issues. What it records is every insert, update and delete with the user and the timestamp, aimed at root-cause analysis and at detecting changes nobody authorised. Generally available as of this post, having been hinted at as beta in the April release notes.published 2026-06-12
New and improved: Change Tracking plugin
cds 2, line ended. Affects A recipe, Runnable code.
Elevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginElevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginThe question underneath the enthusiasm: what leaves your landscape when a prompt goes to a model. The plugin's answer is to anonymise the sensitive fields through HANA before the prompt is sent, and this is the post that explains why that is the design rather than an option.AkashAmarendra, published 2024-02-02
Transforming Enterprise Data Strategy with SAP Business Data CloudTransforming Enterprise Data Strategy with SAP Business Data CloudSAP's layered picture of SAP Business Data Cloud, from lake storage and compute up to a knowledge core and agents, with eight sub-pages that each work one part through. The data products page is the cataloguing and lineage part: datasets described by Open Resource Discovery metadata, listed in the BDC catalog and shared over Delta Sharing to SAP Databricks and SAP HANA Cloud, with SAP Datasphere as a consumer on the intelligent content page; other pages install intelligent content, bring SAP BW data in through the Data Product Generator, provision groups by SCIM from Cloud Identity Services into SAP Databricks, which is identity provisioning, and train predictive models in SAP Databricks that SAP AI Core then serves for batch and real-time scoring. The main page states direction more than mechanism, and the BW page marks SQL Share for derived and OData for analytical data products as to be available.published 2026-05-12
Declarative Programming in CAP: Less Code, More ValueDeclarative Programming in CAP: Less Code, More ValueAn argument for annotations over handlers, made from the case where it is most obvious: repetitive validation logic that could be declared instead of written. Describes what you want rather than how to get it, and lets the runtime decide the how.published 2026-02-05
Extend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL PluginExtend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL PluginThe complaint first: the built-in annotations are good for data integrity and poor at telling the user what went wrong, and there is no way to reuse a rule. capval, the plugin the post announces, adds @validation.message alongside the standard annotations rather than replacing them, and @validation.handler for a check written as a class. Published in January 2024, before the 1.2.0 line the README now pairs with @sap/cds 8.0.0 and above; the two annotations it shows are the two the README still documents.published 2024-01-09
Create an MCP Server for Enterprise AI AgentsCreate an MCP Server for Enterprise AI AgentsWraps the preceding supply-risk graph from API Composition as an MCP server in Integration Suite, with API Management activated as a prerequisite. The walkthrough selects retrieval tools, deploys on Integration Cell, publishes a product in Developer Hub, creates an agent subscription and invokes the tools in MCP Inspector; its companion tutorial uses mock backends.Shyam, published 2026-09-23
ARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleBrings the same BTP-deployed ARC-1 endpoint into Joule through a Joule Studio, classic edition agent configured with Anthropic Claude Sonnet 4 and two MCP servers, ARC-1 and mcp-sap-docs, for work that starts in SAP where the previous part started in Microsoft 365. Two read-only showcases carry the ABAP Cloud readiness edge: a clean core check of one class that reports it is not released, uses USR02 and BUT000 directly and has no ATC findings, and a modernisation backlog for package ZSD_LEGACY which, as that package did not exist, grouped 28 ZSD* objects into risk buckets instead. The route through SAP Integration Suite API Management or a future MCP gateway is presented as a target architecture and not yet a productive setup, because Joule Studio's documentation requires streamable HTTP destinations and does not support MCP servers that need interactive OAuth user authorisation.published 2026-05-06
ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule
arc-1 has been through 2 major lines since this was published: 0.9 (2026-05), 1 (2026-07). Affects Runnable code.
CAP Heaven? Not Yet — But You Can See It from HereCAP Heaven? Not Yet — But You Can See It from HereAn assessment from someone with Java, Azure and AWS behind them as well as ABAP and Fiori, which is a rarer vantage point than it sounds. The title is the verdict.published 2026-02-07
CAP, RAP, or Both: Stop Hiding Behind 'It Depends'CAP, RAP, or Both: Stop Hiding Behind 'It Depends'Opens by refusing the answer every other post on this gives — "both are complementary, choose based on context" — and then commits to a framework, including the parts usually left out: the staffing bias behind the decision, and what to do about a landscape with thousands of Z-objects. Argument, not tutorial.published 2026-04-09
Declarative Programming in CAP: Less Code, More ValueDeclarative Programming in CAP: Less Code, More ValueAn argument for annotations over handlers, made from the case where it is most obvious: repetitive validation logic that could be declared instead of written. Describes what you want rather than how to get it, and lets the runtime decide the how.published 2026-02-05
What's new in SAP Cloud Application Programming Model – January 2026What's new in SAP Cloud Application Programming Model – January 2026December and January together: the new @assert feature, revised documentation, CDS editor work, and Kyma deployment additions.published 2026-02-09
Build BTP CAP App with Fiori Integration – Part 2: Implementing End to End AppBuild BTP CAP App with Fiori Integration – Part 2: Implementing End to End AppThe implementation half of the series whose first part set up the account and the database: the application itself, end to end.SuryaRamesh, published 2026-04-09
Deploy and Run the Incident Management Application in the SAP BTP, Kyma Runtime with a Mock ServerDeploy and Run the Incident Management Application in the SAP BTP, Kyma Runtime with a Mock ServerBuilds the Incident Management CAP service and its HTML5 UI deployer as container images with the pack CLI's Cloud Native Buildpacks, then deploys both to SAP BTP, Kyma runtime with a Helm chart, wiring in the mock-server destination and productive cds build --production output set up in the prerequisite tutorials. Marked out of maintenance in favour of the newer "Develop a Side-by-Side CAP-Based Extension Application" mission in SAP Discovery Center, but the build-and-deploy mechanics it walks through — buildpacks, image tags, a Helm chart — are what deployment still covers for Kyma.published 2024-12-06
Deploy and Run the Incident Management Application in the SAP BTP, Kyma Runtime with a Mock Server
Deployment changed in @sap/cds-dk 8.9.0, 2025-03-31. Affects A recipe.
From Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationFrom Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationThe CAP Operator applied to a real application rather than a sample of its own — SAP's Partner Reference Application, taken from plugin integration through containerisation to custom resources. The transition to CRDs is the part that repays attention: it is where the deployment stops being an mta and becomes Kubernetes.ChristianWeiss, published 2026-05-21
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]The switch from SQLite to HANA and the first deploy of the back end to Cloud Foundry — the point in the series where the persistence stops being a file and the build starts producing HDI artifacts.sanjucs, published 2026-05-12
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-6]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-6]The last part: the Fiori application built and deployed into the HTML5 Application Repository, separately from the service it talks to. Opens with a checklist of the five parts before it, which is the clearest statement of what the whole series covers.sanjucs, published 2026-05-14
Kyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsKyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsWritten by an extensibility expert building against Cloud ERP under clean core, and it treats Kyma as something to shape rather than to adopt — what has to be added to the runtime before it is a SaaS platform for CAP extensions. The Partner Reference Application post is the hands-on sequel.ChristianWeiss, published 2026-02-03
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Opens with the observation the whole series rests on — CAP is usually demonstrated locally, and the interesting part starts when it is deployed. Part one of the run that continues into PostgreSQL and Work Zone.yashbhosle789, published 2026-02-25
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionPart 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionThe middle of a series that runs from database to Work Zone: the CAP application from part one pointed at PostgreSQL on the hyperscaler option, and deployed. The service binding and the build are where it spends its time.yashbhosle789, published 2026-03-04
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler Option
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Runtime Architecture & Cost efficiency gainsPart 2: Runtime Architecture & Cost efficiency gainsThe technical half of the Kyma Evolution series: why a cluster tuned for CAP multitenancy is not just somewhere to run containers, and where the cost efficiency actually comes from.ChristianWeiss, published 2026-02-04
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
Speed up deployment for CAP using TurborepoSpeed up deployment for CAP using TurborepoImpatience as a method: minutes of waiting on MBT and cf deploy sent the author looking for alternatives. It is fair to MBT first — a wrapper doing the whole deployment in one go, creating services and applications along the way — before showing what Turborepo changes about the build half. The trade it makes is explicit rather than assumed.published 2024-12-06
Speed up deployment for CAP using Turborepo
Deployment changed in @sap/cds-dk 8.9.0, 2025-03-31. 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.
SAP Cloud Logging Serviceでコンテナメトリクスを監視するSAP Cloud Logging Serviceでコンテナメトリクスを監視するIn Japanese. Container metrics for a CAP Node.js application into SAP Cloud Logging Service, and the reason it exists is that the obvious route does not apply: Spring Boot Actuator covers the Java side, and Node has no equivalent, so the author reaches for Telegraf instead. The procedure is deliberately independent of application logic — bind the instance, add a startup script and a config file — so it works against an application you already have.kyoneo, published 2024-03-26