BrowseSAP Cloud Application Programming Model
Everything in CAP
29 of 1047
Domain
Signals
Content
More: 3
Group by: Capability
EntryBySignalsLast activity
ODataSAP and community
Consume Remote Services in a Full-Stack CAP ApplicationConsume Remote Services in a Full-Stack CAP ApplicationExtending the Developer's Guide application with a remote S/4HANA service — connectivity, importing the Business Partner API, and running against it. SAP publishes this as four separate paths: mock server or real S/4HANA Cloud, times Cloud Foundry or Kyma. One entry covers all four, because the difference between them is which backend and which runtime, not what you learn.SAP
Extend SAP SuccessFactors on SAP BTP with the SAP Cloud Application Programming ModelExtend SAP SuccessFactors on SAP BTP with the SAP Cloud Application Programming ModelTwelve tutorials, about two hours, building a side-by-side extension of SuccessFactors on BTP. The spine is remote services: importing the SuccessFactors OData service definitions into a CAP model, then treating them as entities the extension reads and writes through, rather than as an API called from a handler. Indexed as one entry because the parts only make sense in order.SAP
Serve your application over MCPSAP and community
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
Examine the details of the Model Context Protocol on startupExamine the details of the Model Context Protocol on startupWhat the MCP adapter actually does when a CAP server boots, watched rather than described — the companion to the tutorial that switches it on.
Data modellingSAP and community
Learn how to define constraints declaratively in your CDS modelLearn how to define constraints declaratively in your CDS modelConstraints expressed in the model rather than checked in a handler — the distinction the atlas draws between input validation the framework enforces and validation somebody writes.SAP
Database connectorsSAP and community
Use SAP HANA as the Database for a CAP Java ApplicationUse SAP HANA as the Database for a CAP Java ApplicationMoving a CAP Java application off the development database onto HANA, which is the step where the persistence choice stops being invisible.SAP
DestinationsSAP and community
Consume Remote Services in a Full-Stack CAP ApplicationConsume Remote Services in a Full-Stack CAP ApplicationExtending the Developer's Guide application with a remote S/4HANA service — connectivity, importing the Business Partner API, and running against it. SAP publishes this as four separate paths: mock server or real S/4HANA Cloud, times Cloud Foundry or Kyma. One entry covers all four, because the difference between them is which backend and which runtime, not what you learn.SAP
Consume SOAP Web Services in SAP Cloud Application Programming ModelConsume SOAP Web Services in SAP Cloud Application Programming ModelCalling a SOAP service from CAP — the case the remote-service story does not cover, since CAP's own import path speaks OData and OpenAPI.SAP
Extend SAP SuccessFactors on SAP BTP with the SAP Cloud Application Programming ModelExtend SAP SuccessFactors on SAP BTP with the SAP Cloud Application Programming ModelTwelve tutorials, about two hours, building a side-by-side extension of SuccessFactors on BTP. The spine is remote services: importing the SuccessFactors OData service definitions into a CAP model, then treating them as entities the extension reads and writes through, rather than as an API called from a handler. Indexed as one entry because the parts only make sense in order.SAP
Use the SAP Cloud SDK in the SAP Cloud Application Programming ModelUse the SAP Cloud SDK in the SAP Cloud Application Programming ModelReaching for the Cloud SDK from inside a CAP service, for the calls CAP's own remote services do not make.SAP
RFC connectivitySAP and community
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
Agent access to your codeSAP and community
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
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
Agent toolingSAP and community
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.
Document extractionSAP only
Use Free Tier to Create a Service Instance for SAP Document AIUse Free Tier to Create a Service Instance for SAP Document AIFour steps in the SAP BTP cockpit that end with a service key for SAP Document AI: open the cockpit, check the subaccount's entitlements and add the service on the free tier plan if it is not listed, create the instance, then create the key. It names the plans to use in production instead, blocks_of_100, embedded_edition and premium_edition, and stops at the credentials, before any document is uploaded.
Use Free Tier to Subscribe to SAP Document AI Basic UIUse Free Tier to Subscribe to SAP Document AI Basic UIEight steps from an entitled subaccount to the SAP Document AI basic UI open in a browser, and most of them are identity work rather than document work: getting a tenant for Cloud Identity Services, which the basic UI requires, activating the account and establishing trust with the subaccount, then subscribing, creating a user and assigning the Document_Information_Extraction_UI_Templates_Admin role collection. Using the UI to read a document is the subject of Use Machine Learning to Extract Information from Documents with the SAP Document AI Basic UI, which this tutorial names as what to read next.
Tool governanceSAP and community
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
AuthenticationSAP and community
Use Free Tier to Subscribe to SAP Document AI Basic UIUse Free Tier to Subscribe to SAP Document AI Basic UIEight steps from an entitled subaccount to the SAP Document AI basic UI open in a browser, and most of them are identity work rather than document work: getting a tenant for Cloud Identity Services, which the basic UI requires, activating the account and establishing trust with the subaccount, then subscribing, creating a user and assigning the Document_Information_Extraction_UI_Templates_Admin role collection. Using the UI to read a document is the subject of Use Machine Learning to Extract Information from Documents with the SAP Document AI Basic UI, which this tutorial names as what to read next.
Input validationSAP and community
Learn how to define constraints declaratively in your CDS modelLearn how to define constraints declaratively in your CDS modelConstraints expressed in the model rather than checked in a handler — the distinction the atlas draws between input validation the framework enforces and validation somebody writes.SAP
DeploymentSAP and community
Deploy a Full-Stack CAP Application in SAP BTPDeploy a Full-Stack CAP Application in SAP BTPFive tutorials taking the Developer's Guide application from running locally to running on BTP — preparation, the deployment itself, role assignment, and integration with Build Work Zone. Published twice, once for Cloud Foundry and once for Kyma, with the same shape and different descriptors; indexed once, because the second is the first with the runtime swapped.SAP
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.
CI/CD pipelinesSAP only
Get Started with an SAP Cloud Application Programming Model Project in SAP Continuous Integration and DeliveryGet Started with an SAP Cloud Application Programming Model Project in SAP Continuous Integration and DeliveryWiring a CAP project into SAP's hosted CI/CD service, which is the pipeline you get without assembling one.SAP
DebuggingSAP and community
Get an introduction to the cds REPLGet an introduction to the cds REPLcds repl as a way to ask the running model questions directly, which is the fastest route from a suspicion about a query to knowing.SAP
Local developmentSAP and community
Create a Simple CAP Application and Explore the DefaultsCreate a Simple CAP Application and Explore the DefaultsThe shortest way in: a project from the wizard, then a look at what CAP assumed on your behalf. The defaults are the subject rather than the application — which is the right first lesson in a framework whose whole argument is convention over configuration.SAP
Get an introduction to the cds REPLGet an introduction to the cds REPLcds repl as a way to ask the running model questions directly, which is the fastest route from a suspicion about a query to knowing.SAP
Set up a self-contained development environment for CAP Node.jsSet up a self-contained development environment for CAP Node.jsA CAP development environment that carries its own dependencies, so the machine it runs on stops being part of the setup.SAP
TestingSAP and community
Create Automated System Tests for SAP Cloud Application Programming Model ProjectsCreate Automated System Tests for SAP Cloud Application Programming Model ProjectsEnd-to-end tests driving the UI with wdi5, run in the pipeline — the layer above cds.test, which stops at the service boundary.SAP
Fiori annotationsSAP and community
CAP JavaでObject Pageの項目の動的な入力制御を実装するCAP JavaでObject Pageの項目の動的な入力制御を実装するTwo ways to make an object page field editable or not from the value of another field in CAP Java, with the same rule implemented both ways. The first routes the decision through a separate entity holding default values, reached by Side Effects annotations; the second adds a virtual element the Java event handler fills. The piece is about the trade the two make — annotation-only versus a handler that runs — rather than about which is correct, and the running code is the repository it links.published 2025-10-13
Develop a Full-Stack CAP Application Following SAP BTP Developer's GuideDevelop a Full-Stack CAP Application Following SAP BTP Developer's GuideThe eight-part path SAP's own Developer's Guide prescribes: a CAP service, Fiori Elements over it, custom logic, authorization, tests, and the preparation deployment needs. It is the closest thing to an official answer to 'what does a whole CAP application look like', which is why it sits under reference applications rather than under any one of the capabilities it touches.SAP
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.
DocumentationSAP and community
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
Finally: An MCP Server for ABAPFinally: An MCP Server for ABAPAnnounces the ABAP variant of mcp-sap-docs, published at mcp-abap.marianzeis.de for GitHub Copilot's Agent Mode in ADT for Eclipse, which the post names as the trigger, with ABAP knowledge still a recurring problem in the models. Documentation irrelevant to ABAP was removed from the SAP docs server and the ABAP Keyword Documentation, the DSAG ABAP Development Guidelines and the ABAP Style Guide were added, with search reaching past the local index to SAP Community posts and SAP Help. Copilot in Eclipse is where the post puts the weight, because SAP Joule for Developers, ABAP AI capabilities in Eclipse is not available for S/4HANA on-premise systems; an update of 2026-02-05 adds Software Heroes as an online source and an abap_feature_matrix tool that checks feature availability across releases and ABAP Cloud, and the server runs hosted or locally with Node or Docker.published 2026-02-04
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
Reference appsCommunity only
Build a Business Application Using CAP for JavaBuild a Business Application Using CAP for JavaThe Java counterpart to the Node.js path — eight tutorials, around two and a half hours, from a generated project to a running service. Worth having indexed separately rather than folded in with the Node.js one: the runtimes diverge most in exactly the places a first application touches, and following the wrong path is a slow way to find that out.SAP
Build a Business Application Using CAP for Node.jsBuild a Business Application Using CAP for Node.jsThe Node.js introduction path, and the shorter of the pair — the runtime most CAP writing assumes, which is why the Java path exists separately.SAP
Develop a Full-Stack CAP Application Following SAP BTP Developer's GuideDevelop a Full-Stack CAP Application Following SAP BTP Developer's GuideThe eight-part path SAP's own Developer's Guide prescribes: a CAP service, Fiori Elements over it, custom logic, authorization, tests, and the preparation deployment needs. It is the closest thing to an official answer to 'what does a whole CAP application look like', which is why it sits under reference applications rather than under any one of the capabilities it touches.SAP