BrowseAll ecosystems
Everything in the atlas
102 of 2341
Domain
Signals: 2
Content: 2
More
Group by: Capability
EntryBySignalsLast activity
Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client ApplicationsMessaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client ApplicationsGetting a message out of a CAP service and onto a Fiori elements object page in a draft scenario — errors, warnings and information, each of which the UI treats differently. Co-written with one of the people on the OData side, and it spends its length on the message container rather than on the handler that fills it.arley-triana-morin, published 2022-08-11
Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client Applications
OData changed in @cap-js-community/odata-v2-adapter 1.10.0, 2023-04-05. Affects A recipe, Runnable code.
SAP CAP function and action with Unstructured/Dynamic Type Input/OutputSAP CAP function and action with Unstructured/Dynamic Type Input/OutputA CAP action or function can take or return an unstructured type: annotate the service @protocol: 'rest', declare the parameter or return value as @open type object {}, and a handler shapes the payload however a given request needs, shown here with a bound action and a function that returns a different structure per input. The text states plainly that OData V4 and GraphQL services require a fixed structure for action and function parameters, so the dynamic type works only over CAP's REST protocol.published 2022-12-08
Importing an external data model using CDS Graphical Modeler for Visual Studio CodeImporting an external data model using CDS Graphical Modeler for Visual Studio CodeWalks through the CDS Graphical Modeler for Visual Studio Code: creating a "Customers" entity, importing an external OData model from an edmx file into the CDS model, and drawing a managed association from the new entity to an entity from the imported namespace. The import happens through the modeler's GUI rather than the cds import command, and the imported edmx becomes a CDS file the modeler can open directly.Xiao-fei_Song, published 2022-05-09
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceExtend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceWalks through writing a service definition in SAP Business Application Studio that projects entities from an existing CDS model: one entity gets @odata.draft.enabled because Fiori Elements only shows CRUD actions on a draft-enabled entity, and a read-only projection of an already-imported SuccessFactors OData entity fails with the generic handlers because the call is delegated to the remote service, so a custom handler is needed. Running cds watch then serves the entities, drafts and $metadata at the declared service path.published 2022-03-23
Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client ApplicationsMessaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client ApplicationsGetting a message out of a CAP service and onto a Fiori elements object page in a draft scenario — errors, warnings and information, each of which the UI treats differently. Co-written with one of the people on the OData side, and it spends its length on the message container rather than on the handler that fills it.arley-triana-morin, published 2022-08-11
Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client Applications
OData changed in @cap-js-community/odata-v2-adapter 1.10.0, 2023-04-05. Affects A recipe, Runnable code.
SAP CAP function and action with Unstructured/Dynamic Type Input/OutputSAP CAP function and action with Unstructured/Dynamic Type Input/OutputA CAP action or function can take or return an unstructured type: annotate the service @protocol: 'rest', declare the parameter or return value as @open type object {}, and a handler shapes the payload however a given request needs, shown here with a bound action and a function that returns a different structure per input. The text states plainly that OData V4 and GraphQL services require a fixed structure for action and function parameters, so the dynamic type works only over CAP's REST protocol.published 2022-12-08
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming ModelInvoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming ModelThe other direction: consuming an API described by an OpenAPI document from CAP, rather than publishing one. Worth pairing with the plugin entries here, which all serve the outbound half.wittro, published 2022-08-30
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming Model
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects Runnable code.
OpenAPIs in the SAP ecosystemOpenAPIs in the SAP ecosystemWhere OpenAPI actually turns up across SAP's own services, from somebody who spends their time in that ecosystem. Orientation rather than implementation.ajmaradiaga, published 2022-10-10
🔴 Your Agent Wants to Call SAP. Now What?🔴 Your Agent Wants to Call SAP. Now What?Devtoberfest 2026 session INT-23, on what belongs between an agent and an SAP system. A solution advisor and an enterprise architect point Joule Desktop extensions at MCP servers built on API Management inside SAP Integration Suite, and ask it for business partners, orders and line items from an S/4HANA demo system; asked for the ten largest customers it answers from a sample of 200 orders rather than reading the whole table. They then open the API proxy behind it, where a spike arrest policy caps the backend at ten calls per second and the MCP server is configured to expose only the GET resources of the business-partner API so that an agent cannot create one, which is where the edges to Serve your application over MCP and Rate limiting hold. For totals across all sales orders they send the agent to SAP Business Data Cloud instead of the transactional system, since it aggregates and is read-only, and back through Integration Suite for writes such as journal entries.SAP Developers, published 2026-09-30
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe same embeddings model taken from SQLite to SAP HANA Cloud, then handed to an agent. Locally it is @cap-js/ai that adds the vector functions SQLite lacks and downloads an all-MiniLM L6v2 ONNX model on first start; on HANA natural language processing has to be switched on, the model name is a mandatory argument, the vectors it returns are 768 dimensions, and dimensions must match on both sides of a comparison. HANA itself can be given SAP AI Core as a remote source for other embedding models, which a CDS.ql expression has to inject because the postfix notation only takes what the CDS model holds, and the hour ends with a search function over cosine similarity exposed over @cap-js/mcp, so an agent asked about low output from solar panels calls semantic search instead of writing the query itself.published 2026-10-16
CAP-level Data FederationCAP-level Data FederationA Devtoberfest 2026 session (CAP-31) on letting one CAP application read another's data as if it were local. The modelling half is the same for both answers, which is why the two technical edges hold: the provider defines an API service and exports it with CDS export as an npm package carrying the model, mock data and translated texts, the consumer imports it and puts consumption views on top, and only then is it wired either as service-level replication that copies the rows into local tables each time the server starts, or over the SAP HANA synonyms that cds-federation-synonyms generates, with HDI grants on the provider side and a service replacement that redirects each synonym from its mock table to the provider's container. It is worked through on xflights and xtravels, including the local run where CDS watch mocks the imported service from the CSV files inside the package.SAP Developers, published 2026-10-02
Powering Enterprise-Ready Agentic AI with SAP Integration SuitePowering Enterprise-Ready Agentic AI with SAP Integration SuiteA Devtoberfest 2026 session (INT-31) from SAP Integration Suite product management on the MCP gateway. The demo creates an MCP server in a design package from an API already deployed on the tenant, exposes two of its 300-odd resources as tools, attaches authentication and quota policies on a policies tab, and publishes the deployed endpoint as an AI product in Developer Hub of API Management, where an agent subscribes and receives a token, URL, key and secret; the calls then show up in monitoring, in message processing logs and in the analytics dashboard, which is the MCP exposure and the tool governance the edges rest on. Three AI features inside Cloud Integration follow: a content migration agent that converts a PI/PO Java mapping into a Groovy script and generates a second integration flow for its lookup, memory profiling during a flow simulation, and root-cause analysis on a failed message processing log.SAP Developers, published 2026-10-07
SAP Meets the Agentic Web: CAP MCP - UI5 WebMCPSAP Meets the Agentic Web: CAP MCP - UI5 WebMCPA Devtoberfest 2026 session (CAP-42) that puts MCP and WebMCP side by side: MCP exposes a backend to an agent, WebMCP exposes the tools of a web page to whatever agent arrives at it, and only Chrome behind a flag and Cloudflare's Kite browser support the second one today. The CAP half starts with two agents scraping a Fiori elements app with Playwright and browser dev tools, then annotates the catalogue service with the MCP protocol through @cap-js/mcp, after which the agent calls the generated describe tool instead of parsing pages. The UI5 half registers a search-authors tool on the browser's model context API inside the same app, with the cross-origin isolation header the API requires, and lists it through the WebMCP Chrome extension — the agent run against it ends on an exhausted Gemini key rather than a result.published 2026-10-16
What's in Daniel Hutzel's brain?What's in Daniel Hutzel's brain?A Devtoberfest 2026 session in the building-apps track, in which Daniel Hutzel and DJ Adams work through what the CAP team is building for agents. A bookshop gets an MCP endpoint beside its OData one from a single annotation, with the plugin writing the coding agent's configuration itself; in the xt-travels sample five services that know nothing about each other are served over MCP and an agent does the orchestration the hand-built UI and its value helps used to do. Hutzel then annotates a service as an agent so the ReAct loop and the choice of model move into the CAP service, and finally drops MCP for a skill that teaches the agent CQL instead, which is where the edges to Serve your application over MCP, Agent tooling and Agent guidance come from. The mechanism under all of it, a plugin file in the package root and event handlers that can be added to any CAP service, is the edge to Plugin authoring.published 2026-10-02
From Inbox to Quotation: An AI-Assisted Sales Workbench in React on SAP CAPFrom Inbox to Quotation: An AI-Assisted Sales Workbench in React on SAP CAPA Devtoberfest 2026 session walking live through a sales workbench that turns an incoming customer e-mail into a quotation in S/4HANA, built as a React UI on CAP. It shows the filterable request inbox, the extracted configuration properties with a confidence indicator per characteristic, the variant configurator rendered in React from a JSON schema the configuration service returns, and the link from a derived value back to the place in the e-mail it was read from; the stated reason for the stack is that CAP keeps authentication, destinations and deployment the same in every project, which is where frontend boundary holds. The inbox grows while a user works because a CAP WebSocket plugin pushes new requests into the list — WebSocket.SAP Developers, published 2026-10-09
Updates on Embedded Analytics in ABAP Cloud for DevelopersUpdates on Embedded Analytics in ABAP Cloud for DevelopersA Devtoberfest 2026 session (ABA-33) on the generator wizards for Embedded Analytics in ABAP Cloud, run by right-clicking a data definition in the ADT Project Explorer. It first names the artefacts a star schema needs, all of them ABAP CDS — cube view at its centre, dimension, text and hierarchy views reached by association, a hierarchy directory, and an InA service definition and binding — and then generates them: the star schema generator reads a view entity's metadata, sorts its fields into dimensions and measures, asks about the ones it cannot decide, offers the dimension views it found and writes an activated cube view; the hierarchy generator produces directory, node, base and definition views plus a maintenance business object with a generated app, which is used to group airlines into alliances before the hierarchy is switched on in the layout of the multi-dimensional analysis app. That is analytic modelling on the ABAP platform, which is what the edges rest on; the outlook names time-dependent hierarchies, translatable texts and dimensions generated from database tables.published 2026-10-05
SAP Data and Analytics Showcase - Develop a Machine Learning Application on SAP BTPSAP Data and Analytics Showcase - Develop a Machine Learning Application on SAP BTPThe overview post of a showcase written by three authors, setting out the dataset, the scenario and the solution map before any of it is built. Its job is to say which piece goes where across the SAP data and analytics portfolio; the CAP application is one station on that map rather than the subject.former_member10846, published 2022-08-12
SAP Data and Analytics Showcase – Use SAP Cloud Application Programming Model to Develop a Machine Learning Application on SAP BTPSAP Data and Analytics Showcase – Use SAP Cloud Application Programming Model to Develop a Machine Learning Application on SAP BTPThe instalment where the showcase becomes code: the CAP application built in Business Application Studio, and the sub-scenario it covers implemented step by step. The overview post is the one that says why this piece exists at all.former_member10846, published 2022-08-12
🔴 Your Agent Wants to Call SAP. Now What?🔴 Your Agent Wants to Call SAP. Now What?Devtoberfest 2026 session INT-23, on what belongs between an agent and an SAP system. A solution advisor and an enterprise architect point Joule Desktop extensions at MCP servers built on API Management inside SAP Integration Suite, and ask it for business partners, orders and line items from an S/4HANA demo system; asked for the ten largest customers it answers from a sample of 200 orders rather than reading the whole table. They then open the API proxy behind it, where a spike arrest policy caps the backend at ten calls per second and the MCP server is configured to expose only the GET resources of the business-partner API so that an agent cannot create one, which is where the edges to Serve your application over MCP and Rate limiting hold. For totals across all sales orders they send the agent to SAP Business Data Cloud instead of the transactional system, since it aggregates and is read-only, and back through Integration Suite for writes such as journal entries.SAP Developers, published 2026-09-30
SAP BDC and AI: A Perfect MatchSAP BDC and AI: A Perfect MatchA Devtoberfest 2026 data-track session (DAT-22) in which Business Data Cloud's CTO sets out how SAP Business Data Cloud feeds SAP's business AI platform: data products whose primary persistence is an object store and whose semantics are kept with them, the one domain model that links a supplier in Ariba to a supplier in S/4HANA, and the SAP knowledge graph, a triple store running in SAP HANA Cloud and queried with SPARQL, that SAP Joule consults before answering. The live demo asks Joule for the available data products and the top ten open purchase orders, with the data product query agent compiling SQL over virtual tables and a space rendering a dashboard, which is the cataloguing side of this: a central registry, the Unified Customer Landscape, that every activated data product is registered in. The Q&A covers where the knowledge graph lives and what a customer may extend, base policies that turn into filter conditions on an agent's queries, and Joule Studio as the place to build your own agents and data products.SAP Developers, published 2026-09-29
SAP BDC in Business AI Platform: Contextualize and ReasonSAP BDC in Business AI Platform: Contextualize and ReasonA Devtoberfest 2026 session (DAT-31) that places SAP Business Data Cloud as the contextualise-and-reason pillar of the SAP Business AI Platform, between the build pillar of Joule Studio and Integration Suite and the govern pillar of AI Agent Hub. It covers data products described with open resource discovery and core schema notation metadata, a data product creation agent that assembles a derived data product for overdue billing documents from the billing document and customer products and shows its lineage and fields; the data products a line-of-business application brings being readable by Joule without a BDC subscription; and the SAP-managed knowledge graph that maps business entities and their relationships for agents, held as graph data in the SAP HANA Cloud knowledge graph engine as RDF triples queried with SPARQL. The closing demo has SAP Joule answer head-count and purchase-order questions, with the generated SQL passed through a data product query that adds the restriction policy defined for that user in cloud identity services, which is why the session stands for cataloguing and lineage as much as for the products it names.SAP Developers, published 2026-10-06
CAP-level Data FederationCAP-level Data FederationA Devtoberfest 2026 session (CAP-31) on letting one CAP application read another's data as if it were local. The modelling half is the same for both answers, which is why the two technical edges hold: the provider defines an API service and exports it with CDS export as an npm package carrying the model, mock data and translated texts, the consumer imports it and puts consumption views on top, and only then is it wired either as service-level replication that copies the rows into local tables each time the server starts, or over the SAP HANA synonyms that cds-federation-synonyms generates, with HDI grants on the provider side and a service replacement that redirects each synonym from its mock table to the provider's container. It is worked through on xflights and xtravels, including the local run where CDS watch mocks the imported service from the CSV files inside the package.SAP Developers, published 2026-10-02
CAP-level Data FederationCAP-level Data FederationA Devtoberfest 2026 session (CAP-31) on letting one CAP application read another's data as if it were local. The modelling half is the same for both answers, which is why the two technical edges hold: the provider defines an API service and exports it with CDS export as an npm package carrying the model, mock data and translated texts, the consumer imports it and puts consumption views on top, and only then is it wired either as service-level replication that copies the rows into local tables each time the server starts, or over the SAP HANA synonyms that cds-federation-synonyms generates, with HDI grants on the provider side and a service replacement that redirects each synonym from its mock table to the provider's container. It is worked through on xflights and xtravels, including the local run where CDS watch mocks the imported service from the CSV files inside the package.SAP Developers, published 2026-10-02
CDS Associations & JoinsCDS Associations & JoinsA Devtoberfest 2026 session from SAP's performance and scalability team on what an ABAP CDS association becomes on SAP HANA, taken as an excerpt from their internal performance training. The CDS edge rests on the three ways an association is used: a path expression and an explicit join both put a left outer join into the generated view, while exposing the association leaves the view without one and adds the join only for a query that asks for its fields, which the session calls join on demand. The data modelling edge is the advice that follows and the demo under it — cardinality written as precisely as the data allows, because the optimiser trusts it, shown with a view whose missing cardinality let SELECT COUNT(*) prune the join and return 18 rows where selecting the columns returned 56, plus the left-hand, right-hand and left-outer-to-inner rewrites that correct cardinalities make possible.SAP Developers, published 2026-10-12
Developing authorizations for business users in SAP Business AI Platform, ABAP environmentDeveloping authorizations for business users in SAP Business AI Platform, ABAP environmentA Devtoberfest 2026 session that walks the places an authorization check has to be written when a RAP business object is implemented, which is the whole of the authorization edge: read restrictions as DCL access controls that become a filter at query time, a child entity inheriting its parent's conditions through an association, the projection layer inheriting rather than changing them, and the same check repeated on the draft side. The ABAP CDS edge holds on that draft half — until 2608 a draft query view was needed above the draft table so a DCL had something to attach to, while a draft table entity is already on CDS level and takes the DCL directly, as long as the associations used in the inherited conditions are redefined on it. Create, update and delete are then taken handler by handler, including the trap that instance authorization reads the buffer and so cannot see the new value a pre-check would reject, and the session closes on in local mode and privileged EML calls.published 2026-10-12
SAP CAP Recent Enhancements the HANA Dev Should Know AboutSAP CAP Recent Enhancements the HANA Dev Should Know AboutThomas Jung walks through CAP features for HANA database developers that landed through late 2021: doc comments in the data model (CDL comments propagated into generated database objects via the package.json cdsc.docs compiler option), and schema evolution reaching general availability in the November 2021 release, using the @cds.persistence.journal annotation and cds.hana.journal settings to generate incremental hdbmigrationtable migration scripts instead of dropping and recreating tables. It also walks through two features outside those two: window functions in view column definitions, added in the December 2021 release, and a beta assert_integrity setting that generates database foreign-key constraints from 1:1 associations and compositions.published 2022-02-15
Understanding entity relationships in CDSUnderstanding entity relationships in CDSModels a CAP task-management domain in CDS — Users, Roles, Tasks and Categories joined by to-one associations, a composition of tasks owned by a user, and a self-referencing association from a user to its parent — using the managed and cuid aspects from @sap/cds/common. It then visualises that model in Business Application Studio's CDS Graphical Modeler and adds a CAP Java before-handler that sets a generated password on user creation.Avinash_Vaidya, published 2022-11-22
Updates on Embedded Analytics in ABAP Cloud for DevelopersUpdates on Embedded Analytics in ABAP Cloud for DevelopersA Devtoberfest 2026 session (ABA-33) on the generator wizards for Embedded Analytics in ABAP Cloud, run by right-clicking a data definition in the ADT Project Explorer. It first names the artefacts a star schema needs, all of them ABAP CDS — cube view at its centre, dimension, text and hierarchy views reached by association, a hierarchy directory, and an InA service definition and binding — and then generates them: the star schema generator reads a view entity's metadata, sorts its fields into dimensions and measures, asks about the ones it cannot decide, offers the dimension views it found and writes an activated cube view; the hierarchy generator produces directory, node, base and definition views plus a maintenance business object with a generated app, which is used to group airlines into alliances before the hierarchy is switched on in the layout of the multi-dimensional analysis app. That is analytic modelling on the ABAP platform, which is what the edges rest on; the outlook names time-dependent hierarchies, translatable texts and dimensions generated from database tables.published 2026-10-05
Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source DialectBridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source DialectA Devtoberfest 2026 data-track session (DAT-21) in which one of the maintainers of sqlalchemy-hana, the open-source SQLAlchemy dialect published in SAP's GitHub organisation, opens up what sits between Python and SAP HANA. It walks the five dialect classes that render statements, types, DDL, identifiers and sequences, and the HANA specifics they absorb: the FROM DUMMY a bare SELECT needs, a limit injected when only an offset is given, string compiled to NVARCHAR, and quoted case-sensitive identifiers against Python's lowercase. The rest covers schema migrations with Alembic on HANA's transactional DDL, the recently added async support and vector types, and that HANA Cloud and HANA 2 are supported while HANA 1 is not.SAP Developers, published 2026-09-29
CAP in the age of AI #6 - vector embeddingsCAP in the age of AI #6 - vector embeddingsVector embeddings put to work in the incident management sample, answering whether this problem has been seen before. An embedding element of type Vector is calculated and stored from the vector_embedding function, so the database refreshes it whenever the text behind it changes, and cosine_similarity compares it with a freshly embedded string; because a title says little, a scheduled action first summarises each incident's conversation through a model on SAP AI Core and the embedding is taken from that summary. The similar-incidents list is a view joining incidents to themselves, with order and limit set in a before handler on the expanded query, and the vector element excluded from the service, since OData knows nothing about vectors — on SAP HANA Cloud the function is native, while SQLite needs packages added to the project.published 2026-10-09
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe same embeddings model taken from SQLite to SAP HANA Cloud, then handed to an agent. Locally it is @cap-js/ai that adds the vector functions SQLite lacks and downloads an all-MiniLM L6v2 ONNX model on first start; on HANA natural language processing has to be switched on, the model name is a mandatory argument, the vectors it returns are 768 dimensions, and dimensions must match on both sides of a comparison. HANA itself can be given SAP AI Core as a remote source for other embedding models, which a CDS.ql expression has to inject because the postfix notation only takes what the CDS model holds, and the hour ends with a search function over cosine similarity exposed over @cap-js/mcp, so an agent asked about low output from solar panels calls semantic search instead of writing the query itself.published 2026-10-16
Distributed Resiliency of SAP CAP applications using SAP HANA Cloud (Multi-Zone Replication)Distributed Resiliency of SAP CAP applications using SAP HANA Cloud (Multi-Zone Replication)Resilience defined the way an operator would — failures happen in a complex landscape and should go unnoticed by the user — and then what multi-zone replication on HANA Cloud means for the CAP application in front of it.shanthakumar_krishnaswamy, published 2022-11-12
Extend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudExtend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudThe deployment instalment of the author's SuccessFactors extension series — the project already exists and the imported service is already modelled, so this is only the move onto HANA Cloud. Depends on the two posts before it and says so.ale_biagi, published 2022-03-29
How I migrated my on-prem xsa cds3+hana solution to cds6+sqliteHow I migrated my on-prem xsa cds3+hana solution to cds6+sqliteThree major CDS versions and a database swap in one move, done to get an old on-premise XSA application running somewhere cheap. The repository is linked, and the interest is in what broke between cds3 and cds6 rather than in the destination.alex_myakinkii, published 2022-08-07
How I migrated my on-prem xsa cds3+hana solution to cds6+sqlite
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
How to create an API to run a HANA Cloud Stored Procedure in Cloud FoundryHow to create an API to run a HANA Cloud Stored Procedure in Cloud FoundryReaching past CDS to the database's own machinery — built-in algorithms, SQLScript procedures and functions — and putting an API in front of them. Long, and it is the case where the model is not where the logic belongs.gonzalo_hernan_sendra, published 2022-12-08
How to create an API to run a HANA Cloud Stored Procedure in Cloud Foundry
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
SAP BDC in Business AI Platform: Contextualize and ReasonSAP BDC in Business AI Platform: Contextualize and ReasonA Devtoberfest 2026 session (DAT-31) that places SAP Business Data Cloud as the contextualise-and-reason pillar of the SAP Business AI Platform, between the build pillar of Joule Studio and Integration Suite and the govern pillar of AI Agent Hub. It covers data products described with open resource discovery and core schema notation metadata, a data product creation agent that assembles a derived data product for overdue billing documents from the billing document and customer products and shows its lineage and fields; the data products a line-of-business application brings being readable by Joule without a BDC subscription; and the SAP-managed knowledge graph that maps business entities and their relationships for agents, held as graph data in the SAP HANA Cloud knowledge graph engine as RDF triples queried with SPARQL. The closing demo has SAP Joule answer head-count and purchase-order questions, with the generated SQL passed through a data product query that adds the restriction policy defined for that user in cloud identity services, which is why the session stands for cataloguing and lineage as much as for the products it names.SAP Developers, published 2026-10-06
SFSFとHANA Cloudを使用するCAPのアプリケーション開発SFSFとHANA Cloudを使用するCAPのアプリケーション開発In Japanese. A hands-on taking data between SuccessFactors and HANA Cloud through a CAP application — the connection setup, the data and service models, then read and write logic, and a Cloud Foundry deploy. Long enough to carry its own table of contents.rasai, published 2022-12-14
SFSFとHANA Cloudを使用するCAPのアプリケーション開発
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewTesting your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewcds.test covers the service; this covers what is underneath it, where the artifact is an hdbprocedure or an hdbview that CDS never sees. That means a real HDI container, so most of the post is about where to get one and how to give CAP access to it — the tests are the easy part once that is true.Tristan, published 2022-08-30
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbview
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects A recipe, Runnable code.
Upload data from excel in CAP (Node.js)Upload data from excel in CAP (Node.js)Mass upload from a spreadsheet, both halves shown: an entity marked @cds.persistence.skip to receive the file, an INSERT built from the parsed rows, and a list report extended with the upload button that starts it.KM11, published 2022-11-21
Upload data from excel in CAP (Node.js)
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
SAP BDC in Business AI Platform: Contextualize and ReasonSAP BDC in Business AI Platform: Contextualize and ReasonA Devtoberfest 2026 session (DAT-31) that places SAP Business Data Cloud as the contextualise-and-reason pillar of the SAP Business AI Platform, between the build pillar of Joule Studio and Integration Suite and the govern pillar of AI Agent Hub. It covers data products described with open resource discovery and core schema notation metadata, a data product creation agent that assembles a derived data product for overdue billing documents from the billing document and customer products and shows its lineage and fields; the data products a line-of-business application brings being readable by Joule without a BDC subscription; and the SAP-managed knowledge graph that maps business entities and their relationships for agents, held as graph data in the SAP HANA Cloud knowledge graph engine as RDF triples queried with SPARQL. The closing demo has SAP Joule answer head-count and purchase-order questions, with the generated SQL passed through a data product query that adds the restriction policy defined for that user in cloud identity services, which is why the session stands for cataloguing and lineage as much as for the products it names.SAP Developers, published 2026-10-06
How I migrated my on-prem xsa cds3+hana solution to cds6+sqliteHow I migrated my on-prem xsa cds3+hana solution to cds6+sqliteThree major CDS versions and a database swap in one move, done to get an old on-premise XSA application running somewhere cheap. The repository is linked, and the interest is in what broke between cds3 and cds6 rather than in the destination.alex_myakinkii, published 2022-08-07
How I migrated my on-prem xsa cds3+hana solution to cds6+sqlite
Database connectors has changed twice since this was published, most recently in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
SAP CAP Recent Enhancements the HANA Dev Should Know AboutSAP CAP Recent Enhancements the HANA Dev Should Know AboutThomas Jung walks through CAP features for HANA database developers that landed through late 2021: doc comments in the data model (CDL comments propagated into generated database objects via the package.json cdsc.docs compiler option), and schema evolution reaching general availability in the November 2021 release, using the @cds.persistence.journal annotation and cds.hana.journal settings to generate incremental hdbmigrationtable migration scripts instead of dropping and recreating tables. It also walks through two features outside those two: window functions in view column definitions, added in the December 2021 release, and a beta assert_integrity setting that generates database foreign-key constraints from 1:1 associations and compositions.published 2022-02-15
Case-insensitive filters in Fiori Elements (List report + CAP)Case-insensitive filters in Fiori Elements (List report + CAP)A blocker rather than a feature: filters on a List Report are case-sensitive, the business wanted them not to be, and the CAP backend is where it gets fixed. Node and Java both.Kishannaicker, published 2022-04-26
Always in Sync — Field-level and event-driven side effects for reactive UIs in RAPAlways in Sync — Field-level and event-driven side effects for reactive UIs in RAPA Devtoberfest 2026 session on side effects in RAP — the declarations in a behaviour definition that tell a draft UI to reload what a change affected, instead of leaving the user to refresh the browser. Field-level side effects recalculate a total price from a determination when a booking fee is entered, including across the association from a child item up to the root entity, and a permissions side effect toggles a description field between read-only and editable; a global side effect is attached to a determine action, fires when the user presses Enter, and only one may exist per business object, which is why the prepare action and a second determine action cannot both carry it. The last part starts a long-running calculation through the background processing framework and raises a business event that the behaviour definition lists as a side effect source and the projection makes public, so the Fiori app is updated with a notification when the work finishes, whether it was triggered by the user or by an application job — the transactional model and the async processing side the edges rest on.published 2026-10-05
Always in Sync — Field-level and event-driven side effects for reactive UIs in RAPAlways in Sync — Field-level and event-driven side effects for reactive UIs in RAPA Devtoberfest 2026 session on side effects in RAP — the declarations in a behaviour definition that tell a draft UI to reload what a change affected, instead of leaving the user to refresh the browser. Field-level side effects recalculate a total price from a determination when a booking fee is entered, including across the association from a child item up to the root entity, and a permissions side effect toggles a description field between read-only and editable; a global side effect is attached to a determine action, fires when the user presses Enter, and only one may exist per business object, which is why the prepare action and a second determine action cannot both carry it. The last part starts a long-running calculation through the background processing framework and raises a business event that the behaviour definition lists as a side effect source and the projection makes public, so the Fiori app is updated with a notification when the work finishes, whether it was triggered by the user or by an application job — the transactional model and the async processing side the edges rest on.published 2026-10-05
How to Build Application Jobs in SAP Business AI Platform, ABAP environmentHow to Build Application Jobs in SAP Business AI Platform, ABAP environmentA Devtoberfest 2026 session on the application job framework in the cloud ABAP environment, built from the repository objects outwards: a class implementing the new application job interface, whose public attributes become the parameters and select options, the application log object it writes to, a job catalog entry that lays out sections, groups and value helps, and a job catalog template that works like a report variant. The demo schedules and monitors runs in the Application Jobs Fiori app, starts a job from a RAP action through the scheduling API under a job user of its own, and debugs one through the template's run-for-testing entry. It closes on the alternatives for work that should not be a job — the background processing framework for short-running work, and RAP events consumed locally or sent over the event mesh — which is the async processing this session covers for SAP BTP ABAP environment.published 2026-09-28
SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)Calling an unsecured endpoint on a schedule is trivial; this is the same thing once the endpoint is protected. The interesting part is the caller — the Job Scheduling Service is not a person, so CAP's pseudo-roles are where the post spends its time, and $XSSERVICENAME has to match the scheduler's own instance name.former_member412792, published 2022-12-12
Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The opening of a three-part series on reaching more than one S/4HANA system from one CAP application with the user's identity carried through. This part sets up the business problem; the propagation itself is in the parts that follow.mohit_bansal3, published 2022-11-25
BTP CAP : How to Connect to Remote Services Locally in CAP ApplicationBTP CAP : How to Connect to Remote Services Locally in CAP ApplicationThe same problem four years earlier: a CAP application that consumes a remote service, running locally against the real thing rather than against a mock.showkath_naseem, published 2022-12-12
Execute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationExecute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationA recipe, and the author calls it that — package.json, a .cds and a handler — for calling a remote service protected by OAuth2 client credentials from a CAP application. Short, complete, and addressed to CAP developers rather than to BTP administrators.Lachmish, published 2022-04-27
Execute [OAuth2 client credentials] protected REST request with SAP CAP Application
Authentication changed in CAP Java 3.0.1, 2024-07-26. Affects A recipe.
Extend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitionsExtend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitionsWalks through importing the ECEmployeeProfile and PLTUserManagement OData services from SAP API Business Hub into a CAP project: downloading their EDMX files, running cds import in SAP Business Application Studio to generate the CSN under srv/external, and pointing the resulting cds.requires entries at a destination. The second half creates a destination and an XSUAA service instance on BTP and binds their service keys into a default-env.json file so the project can reach SAP SuccessFactors during local development.published 2022-03-21
HTML5.Timeout for CAP destinations in mta.yaml longer than defaultHTML5.Timeout for CAP destinations in mta.yaml longer than defaultA page and a half about one property that has to be raised when a CAP destination is slower than the default allows — and it now opens with its own correction, dated October 2025, that the property is called timeout rather than HTML5.Timeout, credited to a commenter. The correction is why it is worth keeping.NilsJanen, published 2022-11-09
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming ModelInvoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming ModelThe other direction: consuming an API described by an OpenAPI document from CAP, rather than publishing one. Worth pairing with the plugin entries here, which all serve the outbound half.wittro, published 2022-08-30
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming Model
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects Runnable code.
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The final part, and the one with the most CAP in it — the service consuming the propagated destinations, and what the handler sees. Read the three together; the series is one piece.mohit_bansal3, published 2022-11-25
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects A recipe.
Part2: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Part2: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The middle part: the destinations and the trust that make principal propagation work against several backends rather than one, which is where the configuration stops being a copy of the tutorial.mohit_bansal3, published 2022-11-25
Qualtrics integration with domain based authorization in CAP project on HANA cloudQualtrics integration with domain based authorization in CAP project on HANA cloudSurveys pulled from Qualtrics into a CAP application in real time, with the twist in the title: authorisation decided by the user's domain rather than by a role collection. A pattern that comes up whenever the audience is wider than the tenant.former_member69893, published 2022-09-30
Qualtrics integration with domain based authorization in CAP project on HANA cloud
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects Runnable code.
SFSFとHANA Cloudを使用するCAPのアプリケーション開発SFSFとHANA Cloudを使用するCAPのアプリケーション開発In Japanese. A hands-on taking data between SuccessFactors and HANA Cloud through a CAP application — the connection setup, the data and service models, then read and write logic, and a Cloud Foundry deploy. Long enough to carry its own table of contents.rasai, published 2022-12-14
SFSFとHANA Cloudを使用するCAPのアプリケーション開発
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.
The ECC-to-CAP Starter KitThe ECC-to-CAP Starter KitA Devtoberfest 2026 session that builds a CAP service and a Fiori elements list report over an SAP ECC gateway service, on the argument that the CAP project, its contract and its UI survive a later move to SAP S/4HANA while the APIs behind them change. The service integration edge is the body of the demo: the metadata of the ECC flight service is saved as an EDMX file, imported with cds import so the model holds the structure and none of the data, projected read-only into a flight service, and one line of handler code forwards each read to ECC, with filtering, sorting and paging translated down to the older OData version the system speaks. The SAP Destination service edge covers the on-premise destination and the additional properties the walkthrough insists on, and the SAP Business Application Studio edge covers the full-stack dev space, the CAP project wizard, the service center plugin for picking up another OData service, and cds watch run under the profile that uses those credentials.published 2026-10-09
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
[Blog Post] SAP Event Mesh – CAP based implementation of SAP Event Mesh in a Single-Tenant Scenario[Blog Post] SAP Event Mesh – CAP based implementation of SAP Event Mesh in a Single-Tenant ScenarioThe instalment of the Deep Dive series where the framework arrives. The earlier posts consumed Event Mesh over its REST API, so this one is explicitly a comparison: the same thing through CAP's messaging abstraction, with the three flavours — local, file-based and a real broker — named before the broker one is built.AyushKumar and vipul.khullar, published 2022-06-06
[Blog Post] SAP Event Mesh – CAP based implementation of SAP Event Mesh in a Single-Tenant Scenario
Event Mesh changed in @sap/cds 10.0.3, 2026-07-02. Affects A recipe, Runnable code.
Event Driven Architecture with Event Mesh - Part-1Event Driven Architecture with Event Mesh - Part-1Continues the author's own CDS entity-relationship example rather than starting a fresh one, which is the point of it — the same model gains events. Concepts first, then a message client and queue on BTP, then a Postman check that the queue works before any CAP code is written, and finally the emit from a CAP REST service.Avinash_Vaidya, published 2022-12-04
Event Driven Architecture with Event Mesh - Part-1
Event Mesh changed in @sap/cds 10.0.3, 2026-07-02. Affects A recipe, Runnable code.
IntegrAItion: Event-Driven IntelligenceIntegrAItion: Event-Driven IntelligenceA Devtoberfest 2026 session, INT-33, whose line is that agents fail because they are not informed enough rather than not clever enough, and that events are how they get informed: what an event is, the source-broker-consumer split, notification against data events, and topic filtering as the thing that decides which agents are woken at all and what that costs in tokens. It covers Event Mesh as the concern — topics, subscriptions, filters and queues — and SAP Integration Suite, advanced event mesh as the product, down to its event portal and catalogue, the mesh and cluster managers and distributed tracing. The closing demo sends an S/4HANA product-defect event through the mesh to wake an agent in Joule Studio, which fetches what it still needs over MCP and reports to a person the next morning.SAP Developers, published 2026-10-07
Powering Enterprise-Ready Agentic AI with SAP Integration SuitePowering Enterprise-Ready Agentic AI with SAP Integration SuiteA Devtoberfest 2026 session (INT-31) from SAP Integration Suite product management on the MCP gateway. The demo creates an MCP server in a design package from an API already deployed on the tenant, exposes two of its 300-odd resources as tools, attaches authentication and quota policies on a policies tab, and publishes the deployed endpoint as an AI product in Developer Hub of API Management, where an agent subscribes and receives a token, URL, key and secret; the calls then show up in monitoring, in message processing logs and in the analytics dashboard, which is the MCP exposure and the tool governance the edges rest on. Three AI features inside Cloud Integration follow: a content migration agent that converts a PI/PO Java mapping into a Groovy script and generates a second integration flow for its lookup, memory profiling during a flow simulation, and root-cause analysis on a failed message processing log.SAP Developers, published 2026-10-07
Receive Notifications from Amazon Simple Notification Service for SAP S/4HANA BTP Extension AppReceive Notifications from Amazon Simple Notification Service for SAP S/4HANA BTP Extension AppEmail notifications from a CAP application through Amazon SNS instead of anything SAP provides — a hyperscaler service used directly from the extension rather than through a BTP intermediary. The argument for it is stated as reach rather than cost: the extension gets the platform's services and the hyperscaler's at the same time.albertoliu1993, published 2022-10-14
WebSocket RFC to Cloud Using SAP Business ConnectorWebSocket RFC to Cloud Using SAP Business ConnectorWalks through wiring RFC connectivity between an on-premise ABAP system and a cloud ABAP system (SAP S/4HANA Cloud or Steampunk) through SAP Business Connector, which tunnels classic RFC over a WebSocket/HTTPS connection past firewalls. Covers the RFC destination of type T on the source system, the Communication User, Communication Scenario and Communication Arrangement needed on the cloud side to allow-list the function modules being called, and the three configuration steps on the Business Connector itself, closing with a list of common connection errors and their fixes.Ulrich_Schmidt1, published 2022-10-17
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceExtend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceWalks through writing a service definition in SAP Business Application Studio that projects entities from an existing CDS model: one entity gets @odata.draft.enabled because Fiori Elements only shows CRUD actions on a draft-enabled entity, and a read-only projection of an already-imported SuccessFactors OData entity fails with the generic handlers because the call is delegated to the remote service, so a custom handler is needed. Running cds watch then serves the entities, drafts and $metadata at the declared service path.published 2022-03-23
Extend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitionsExtend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitionsWalks through importing the ECEmployeeProfile and PLTUserManagement OData services from SAP API Business Hub into a CAP project: downloading their EDMX files, running cds import in SAP Business Application Studio to generate the CSN under srv/external, and pointing the resulting cds.requires entries at a destination. The second half creates a destination and an XSUAA service instance on BTP and binds their service keys into a default-env.json file so the project can reach SAP SuccessFactors during local development.published 2022-03-21
SAP CAP: Consume SAP API Hub Sandbox Data as an external service Part- 1SAP CAP: Consume SAP API Hub Sandbox Data as an external service Part- 1Walks through consuming SAP API Business Hub's Business Partner sandbox API from a CAP Node.js project: @sap/cds-dk's cds import turns the downloaded EDMX into a CSN model and a cds.requires entry, a projection service exposes it, and a custom handler forwards reads to the proxy through @sap/cds's cds.connect.to and bp.run(req.query). Reaching the sandbox needs the API key added as a header on that same credentials block, since the destination service that would carry it is left for a promised part two.DebashishDas, published 2022-03-17
The ECC-to-CAP Starter KitThe ECC-to-CAP Starter KitA Devtoberfest 2026 session that builds a CAP service and a Fiori elements list report over an SAP ECC gateway service, on the argument that the CAP project, its contract and its UI survive a later move to SAP S/4HANA while the APIs behind them change. The service integration edge is the body of the demo: the metadata of the ECC flight service is saved as an EDMX file, imported with cds import so the model holds the structure and none of the data, projected read-only into a flight service, and one line of handler code forwards each read to ECC, with filtering, sorting and paging translated down to the older OData version the system speaks. The SAP Destination service edge covers the on-premise destination and the additional properties the walkthrough insists on, and the SAP Business Application Studio edge covers the full-stack dev space, the CAP project wizard, the service center plugin for picking up another OData service, and cds watch run under the profile that uses those credentials.published 2026-10-09
ABAP Development Tools for VS CodeABAP Development Tools for VS CodeA Devtoberfest 2026 session on ABAP Development Tools for VS Code: where the extension sits after the ABAP Workbench and ABAP Development Tools for Eclipse, the ADT language server both editors share, and what the releases since May 2026 cover. The demo installs the extension, creates a destination, opens, creates and activates objects, runs ATC and ABAP Unit, and names the object types, domains among them, for which a developer still goes to Eclipse or SAP GUI. It also opens the extension's settings to turn on the ADT MCP Server and shows the tools a chat can call, with the object search and source code search tools listed as planned.published 2026-09-28
Agentic Loop with Joule for Developers and ADT MCP ServerAgentic Loop with Joule for Developers and ADT MCP ServerA Devtoberfest 2026 session from SAP's ABAP AI team that generates a RAP issue-tracker application by prompting a coding agent. It covers what SAP Joule for Developers, ABAP AI capabilities now ships as MCP tools and which assistants can reach an ABAP system's virtual filesystem, then does the setup twice: turning on the ADT MCP Server and pasting the Joule side-by-side tenant link in ABAP Development Tools for VS Code, and again in ABAP Development Tools for Eclipse, where the custom agent becomes custom instructions. The demo's subject is the guardrails around the loop — an agent.md of phases and human checkpoints, skill files cloned from a GitHub repository for naming, ATC compliance and UI annotations — run through GitHub Copilot until the generated objects are activated, unit-tested and in a transport.SAP Developers, published 2026-09-28
AI Assisted CAP DevelopmentAI Assisted CAP DevelopmentA Devtoberfest 2026 session (CAP-43) on building CAP applications with a coding agent, in two demos. The first asks the same question twice in a dev container, once with no MCP server configured and once with @cap-js/mcp-server registered: without it the agent answers CAP's semantic search with an outdated vector type and CQL, with its documentation search it writes the built-in vector embedding function and a working similarity query. The second installs the cap-developer plugin from capire/skills, from a Devtoberfest preview branch, and runs its guided-development skill stage by stage — domain model, sample data, services, constraints — each stage reviewed before the next.SAP Developers, published 2026-10-16
AI-assisted SAP development with MCPAI-assisted SAP development with MCPA Devtoberfest 2026 session (UI-41) that traces AI-assisted SAP development from pasting code into a chat window to coding agents with built-in connectors, and sorts the MCP servers around SAP development into SAP's own, the community's and the hosted ones, where the agent cannot change what the server allows. Four demos follow: GitHub Copilot alone explaining an ABAP report from a Git repository, @ui5/mcp-server reading an OpenUI5 sample app and converting it to TypeScript, mcp-sap-docs grounding Terraform files for a BTP subaccount the presenter had not written before, and arc-1 with Copilot in Eclipse tracing why a title longer than 40 characters is rejected and proposing the DDIC-allowed length instead. It ends on a skill that migrates an SAP Gateway project on an ECC system to RAP on S/4HANA step by step, and on a rule Marian Zeis gives for servers written for internal use: keep them read-only, because what the agent is short of is context.published 2026-10-16
Intelligent App Development at Scale: SAP Fiori Elements + ABAP Development Tools for VS CodeIntelligent App Development at Scale: SAP Fiori Elements + ABAP Development Tools for VS CodeA Devtoberfest 2026 session (UI-33) that builds a RAP service and the SAP Fiori elements app over it from one VS Code workspace, with a coding agent driving two of SAP's MCP servers. The ABAP Development Tools for VS Code edges hold on the demo itself: its virtual file system keeps the ABAP package beside the Fiori project, the ADT MCP Server inside it creates, changes and activates the ABAP objects, and a version not yet released publishes the service binding from the agent instead of by hand. The @sap-ux/fiori-mcp-server edge covers its generators and the three-step workflow it uses for changes — list the functionality available for the application, ask for its JSON schema, then execute it — and the agent guidance edge rests on the skills the Fiori team publishes beside it, on the session's account of what a skill adds that a server does not, and on the analytical chart demo where a skill orchestrates both servers in one task.SAP Developers, published 2026-10-09
News from Custom Code Migration: ECC to SAP S/4HANA Powered by Agentic AINews from Custom Code Migration: ECC to SAP S/4HANA Powered by Agentic AIA Devtoberfest 2026 session (ABA-23) on what SAP has added to the ECC to SAP S/4HANA custom code migration tools, demonstrated across a live ECC and an S/4HANA system. The first half stays deterministic and explains static analysis in that process: the custom code migration app's scoping over ABAP test cockpit findings, an explain of a legacy report and of an S/4HANA simplification finding, and transferable quick fixes exported from the app and applied on the ECC system through the SAP GUI ATC transaction before conversion. The second half runs the S/4HANA custom code migration agent in ABAP Development Tools for Eclipse: GitHub Copilot drives the ADT MCP Server's ATC and quick-fix tools in a loop, SAP Joule for Developers, ABAP AI capabilities produces the AI code proposals behind it, and only the high-confidence ones are written into the code, the rest left as comments in one transport request.published 2026-09-28
What’s new in Mobile development kit client 26.9What’s new in Mobile development kit client 26.9This Mobile development kit client 26.9 release note explains that @sap/mdk-mcp-server is now reachable from SAP Business Application Studio's AI chat, giving an assistant real knowledge of the MDK metadata schema rather than generic code generation. With it an assistant can scaffold an MDK project, generate pages, actions, rules, i18n, services and styles into it, iterate on it conversationally, and answer schema and client-API questions inline through mdk-docs.published 2026-09-27
🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and Compliance🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and ComplianceDevtoberfest 2026 session AI-21. A cross product owner on the SAP AI Core team gives the reasons an AI application ends up on more than one model — a model down at the hyperscaler, a data centre that is not allowed to run it, a version being deprecated — and runs a joke app that answers from Gemini 2.5 Flash in EU10 and from Claude 4.5 Haiku in Asia-Pacific. The walk through AI Core's parts is where the edges hold: prompts kept as templates in the prompt registry, imported through the launchpad and the APIs or synced as YAML from a git repository (Prompt management); the evaluation service scoring one prompt across up to four models per run on built-in or model-as-judge metrics, and the prompt optimizer generating variants against one metric (Agent evals); and the orchestration service harmonising the providers behind one message format with a priority-sorted fallback list (LLM integration). The session also states where a metric has to be designed rather than picked: an exact-JSON match scores an email generator at zero, so the joke app's custom metric judges topic and family-appropriateness instead.SAP Developers, published 2026-10-01
AI Assisted CAP DevelopmentAI Assisted CAP DevelopmentA Devtoberfest 2026 session (CAP-43) on building CAP applications with a coding agent, in two demos. The first asks the same question twice in a dev container, once with no MCP server configured and once with @cap-js/mcp-server registered: without it the agent answers CAP's semantic search with an outdated vector type and CQL, with its documentation search it writes the built-in vector embedding function and a working similarity query. The second installs the cap-developer plugin from capire/skills, from a Devtoberfest preview branch, and runs its guided-development skill stage by stage — domain model, sample data, services, constraints — each stage reviewed before the next.SAP Developers, published 2026-10-16
Intelligent App Development at Scale: SAP Fiori Elements + ABAP Development Tools for VS CodeIntelligent App Development at Scale: SAP Fiori Elements + ABAP Development Tools for VS CodeA Devtoberfest 2026 session (UI-33) that builds a RAP service and the SAP Fiori elements app over it from one VS Code workspace, with a coding agent driving two of SAP's MCP servers. The ABAP Development Tools for VS Code edges hold on the demo itself: its virtual file system keeps the ABAP package beside the Fiori project, the ADT MCP Server inside it creates, changes and activates the ABAP objects, and a version not yet released publishes the service binding from the agent instead of by hand. The @sap-ux/fiori-mcp-server edge covers its generators and the three-step workflow it uses for changes — list the functionality available for the application, ask for its JSON schema, then execute it — and the agent guidance edge rests on the skills the Fiori team publishes beside it, on the session's account of what a skill adds that a server does not, and on the analytical chart demo where a skill orchestrates both servers in one task.SAP Developers, published 2026-10-09
Real Pro-Code Development with Joule StudioReal Pro-Code Development with Joule StudioA Devtoberfest 2026 AI-track session that runs one agent build across both of Joule Studio's paths. Playing a procurement manager, one presenter states the intent in the browser, answers the clarifying questions, watches the fit-gap analysis name the S/4HANA APIs the use case needs, and pushes the intent and requirements document to GitHub; the other clones it and carries on in a terminal, logging in with the jl command line against her landscape URL and running its init command to fetch Joule Studio's skills for OpenCode. From there the coding agent writes the specification, the discovered API specifications, the MCP translation and the agent's Python file with its model configuration and evaluation scenarios, which is the edge to Agent tooling; the skills themselves, which SAP says not to edit but which a developer may add to, are the edge to Agent guidance.SAP Developers, published 2026-10-01
Token Efficiency – Your Guide To Smart AI DevelopmentToken Efficiency – Your Guide To Smart AI DevelopmentA Devtoberfest 2026 session from two engineers on SAP's business AI platform team on where a coding agent's tokens go: the read-decide-act loop behind one request, what the context command shows is occupying the window — 22,700 tokens of tool definitions against 1,800 of project instructions in their example — and the habits of compacting with a hint, clearing between tasks, choosing model and reasoning effort per job, and handing a large investigation to a sub-agent so only its summary comes back. It reaches agent guidance through the part on skills: a skill holds the reusable instructions for one kind of work and is disclosed progressively, a short description in the window and the detailed file read when it is relevant, rather than every occasional procedure sitting in the always-loaded project instructions. The demo runs on Claude Code against a generated warehouse-management project, with a custom status line showing context, session cost and a self-set budget.SAP Developers, published 2026-10-08
Unlocking Tabular Foundation Models: From Experimentation to ProductionUnlocking Tabular Foundation Models: From Experimentation to ProductionA Devtoberfest 2026 session (AI-41) on taking tabular prediction from a playground to a deployment. It sets tabular foundation models against a model trained per use case and against language models reading rows as text, explains in-context learning as examples plus the rows whose target column is missing, and tries SAP RPT 1.6 on a train-delay dataset in the RPT playground, including the column and row importance it returns with the prediction. The same prediction is then rebuilt on SAP AI Core, where the tabular orchestration service plays the part the orchestration service plays for language models: a data destination, a table artifact with its CSN schema and a scenario configuration registered once at design time, after which a predict call passes only the query rows, the scenario configuration and a context-selection strategy. The last demo runs those same calls in natural language through the aicore-skills plugin in a coding agent, and one of them only resolves once the agent is told which scenario configuration to use.SAP Developers, published 2026-10-15
What's in Daniel Hutzel's brain?What's in Daniel Hutzel's brain?A Devtoberfest 2026 session in the building-apps track, in which Daniel Hutzel and DJ Adams work through what the CAP team is building for agents. A bookshop gets an MCP endpoint beside its OData one from a single annotation, with the plugin writing the coding agent's configuration itself; in the xt-travels sample five services that know nothing about each other are served over MCP and an agent does the orchestration the hand-built UI and its value helps used to do. Hutzel then annotates a service as an agent so the ReAct loop and the choice of model move into the CAP service, and finally drops MCP for a skill that teaches the agent CQL instead, which is where the edges to Serve your application over MCP, Agent tooling and Agent guidance come from. The mechanism under all of it, a plugin file in the package root and event handlers that can be added to any CAP service, is the edge to Plugin authoring.published 2026-10-02
Achieve Agentic Enterprise Automation with SAP Integration Suite and Joule StudioAchieve Agentic Enterprise Automation with SAP Integration Suite and Joule StudioA Devtoberfest 2026 integration-track session (INT-22), the second of that week's integration sessions, given by an SAP product expert for process automation and integration together with the product manager for Joule Studio, who walks the audience through it. The opening states the subject: process management, automation and orchestration unified into one combined approach, which the presenters put forward as the foundation for building custom AI agents.SAP Developers, published 2026-09-30
Be the First to Understand Joule Work's Agentic ThinkingBe the First to Understand Joule Work's Agentic ThinkingA Devtoberfest 2026 session on the agent harness behind agentic thinking in Joule Work: generic operating-system tools in a gVisor-isolated sandbox instead of hand-wired domain functions, a react loop, a warm pool of sandboxes torn down after each task, tenant-separated skill loading, and placeholder tokens the agent never sees swapped for real credentials at the egress path. A skill is a folder with a SKILL.md carrying metadata and instructions, and where it reaches a system, an SAP connectivity JSON that declares each connector by ORD ID with its guardrails — GET allowed by default, POST, PUT, PATCH and DELETE requiring human approval, everything else blocked. The demo uploads a cost-centre skill through the skills view, then has agentic thinking delegate over A2A through Agent Gateway to a custom agent built in Joule Studio, whose MCP tools read cost centres from an S/4HANA Cloud system, and ends by turning the result into a PDF; the Joule Studio trace is what shows the tool call actually happened.SAP Developers, published 2026-10-15
Building Agentic Workflows with n8n in Joule StudioBuilding Agentic Workflows with n8n in Joule StudioA Devtoberfest 2026 session, JS-31, on SAP-managed n8n inside Joule Studio, shown as a labs preview on a blocked-invoice scenario: a solution made of assets, an intent refined by the web agent into requirements and then a specification, and the generated workflow opened in the n8n editor that Joule Studio connects to its own n8n tenant, with the generated files committed through GitHub. The nodes carry the other edges — the human-in-the-loop node is built on SAP Task Center, and SAP AI Core is where model providers are configured centrally instead of per developer. It ends in Joule chat, where the approval task the workflow created is listed, opened and completed.SAP Developers, published 2026-10-08
Building Code-Based AI Agents on the BAIPBuilding Code-Based AI Agents on the BAIPA Devtoberfest 2026 session on writing the agent yourself rather than configuring one, which is the agent tooling edge: an agent is a model with tools, skills, memory and context around it, and the session reads the code of one built in CAP as a LangGraph state graph, with an agent node that calls the model, a tools node holding the MCP clients, and the edge between them looping until no tool is needed. It then shows the shorter route, a CDS service annotated for the agent protocol with its instructions and skills in an agent.md file. SAP AI Core carries both, with the CAP service in front of it as middleware so the credentials never reach the browser, and that is what cap-agent-ui5-webui is demonstrated against: added as a dependency, it gives the annotated service a UI5 chat interface that can be deployed rather than only previewed. A Python multi-agent application on Cloud Foundry, where an orchestrator delegates to per-stack specialists so no single model sees every tool, closes the session.published 2026-10-09
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
From Intent to Arcade: Building Joule*Bert with Joule Studio and AI-Assisted Pro CodeFrom Intent to Arcade: Building Joule*Bert with Joule Studio and AI-Assisted Pro CodeA Devtoberfest 2026 AI-track session that takes a Q*bert-style arcade game, written as an Easter egg for colleagues, through every phase Joule Studio runs: intent analysis with its clarifying questions, a product requirements document, a specification with its task list, generated code, generated tests and deployment. The knowledge-graph lookup reports that the game maps to no enterprise process and the flow adjusts, and the presenter edits the requirements by hand when the first version declares sound out of scope. He then pushes the project to GitHub, clones it and initialises the jl command line so that Joule Studio's MCP servers are wired into the coding agent in VS Code, where mobile arrow keys were added afterwards; applications could not yet be deployed to the Joule Studio runtime, so this one runs on Kyma.SAP Developers, published 2026-10-01
How to implement business AI capabilities in ABAP CloudHow to implement business AI capabilities in ABAP CloudA Devtoberfest 2026 session (ABA-32) on embedding AI in an ABAP Cloud application and on making SAP Joule aware of what that application can do. The first demo implements two features of a RAP travel app with the ABAP AI SDK: a determination on an uploaded receipt that sends the image together with the allowed categories and transaction types to a model reached through an intelligent scenario, then writes the extracted description, category, currency and amount back to the expense entity; and a recommendation function, triggered by a side effect on the trip title, that proposes a trip type with a score the Fiori UI sorts the proposals by and leaves the business user to accept — which is LLM integration from ABAP code. The second demo builds a capability for SAP Joule in the Joule Studio code editor in VS Code, with a scenario that extracts a trip title from the user's intent and calls an OData service in the ABAP backend through a BTP destination, deploys it and asks the Joule test UI for the trip's details; the session states that agents reach ABAP only over governed remote APIs — OData, SQL and MCP — and that automatic grounding of custom OData services in the knowledge graph is upcoming rather than available.published 2026-10-05
Real Pro-Code Development with Joule StudioReal Pro-Code Development with Joule StudioA Devtoberfest 2026 AI-track session that runs one agent build across both of Joule Studio's paths. Playing a procurement manager, one presenter states the intent in the browser, answers the clarifying questions, watches the fit-gap analysis name the S/4HANA APIs the use case needs, and pushes the intent and requirements document to GitHub; the other clones it and carries on in a terminal, logging in with the jl command line against her landscape URL and running its init command to fetch Joule Studio's skills for OpenCode. From there the coding agent writes the specification, the discovered API specifications, the MCP translation and the agent's Python file with its model configuration and evaluation scenarios, which is the edge to Agent tooling; the skills themselves, which SAP says not to edit but which a developer may add to, are the edge to Agent guidance.SAP Developers, published 2026-10-01
SAP BDC and AI: A Perfect MatchSAP BDC and AI: A Perfect MatchA Devtoberfest 2026 data-track session (DAT-22) in which Business Data Cloud's CTO sets out how SAP Business Data Cloud feeds SAP's business AI platform: data products whose primary persistence is an object store and whose semantics are kept with them, the one domain model that links a supplier in Ariba to a supplier in S/4HANA, and the SAP knowledge graph, a triple store running in SAP HANA Cloud and queried with SPARQL, that SAP Joule consults before answering. The live demo asks Joule for the available data products and the top ten open purchase orders, with the data product query agent compiling SQL over virtual tables and a space rendering a dashboard, which is the cataloguing side of this: a central registry, the Unified Customer Landscape, that every activated data product is registered in. The Q&A covers where the knowledge graph lives and what a customer may extend, base policies that turn into filter conditions on an agent's queries, and Joule Studio as the place to build your own agents and data products.SAP Developers, published 2026-09-29
SAP BDC in Business AI Platform: Contextualize and ReasonSAP BDC in Business AI Platform: Contextualize and ReasonA Devtoberfest 2026 session (DAT-31) that places SAP Business Data Cloud as the contextualise-and-reason pillar of the SAP Business AI Platform, between the build pillar of Joule Studio and Integration Suite and the govern pillar of AI Agent Hub. It covers data products described with open resource discovery and core schema notation metadata, a data product creation agent that assembles a derived data product for overdue billing documents from the billing document and customer products and shows its lineage and fields; the data products a line-of-business application brings being readable by Joule without a BDC subscription; and the SAP-managed knowledge graph that maps business entities and their relationships for agents, held as graph data in the SAP HANA Cloud knowledge graph engine as RDF triples queried with SPARQL. The closing demo has SAP Joule answer head-count and purchase-order questions, with the generated SQL passed through a data product query that adds the restriction policy defined for that user in cloud identity services, which is why the session stands for cataloguing and lineage as much as for the products it names.SAP Developers, published 2026-10-06
What's in Daniel Hutzel's brain?What's in Daniel Hutzel's brain?A Devtoberfest 2026 session in the building-apps track, in which Daniel Hutzel and DJ Adams work through what the CAP team is building for agents. A bookshop gets an MCP endpoint beside its OData one from a single annotation, with the plugin writing the coding agent's configuration itself; in the xt-travels sample five services that know nothing about each other are served over MCP and an agent does the orchestration the hand-built UI and its value helps used to do. Hutzel then annotates a service as an agent so the ReAct loop and the choice of model move into the CAP service, and finally drops MCP for a skill that teaches the agent CQL instead, which is where the edges to Serve your application over MCP, Agent tooling and Agent guidance come from. The mechanism under all of it, a plugin file in the package root and event handlers that can be added to any CAP service, is the edge to Plugin authoring.published 2026-10-02
🔴 Your Agent Wants to Call SAP. Now What?🔴 Your Agent Wants to Call SAP. Now What?Devtoberfest 2026 session INT-23, on what belongs between an agent and an SAP system. A solution advisor and an enterprise architect point Joule Desktop extensions at MCP servers built on API Management inside SAP Integration Suite, and ask it for business partners, orders and line items from an S/4HANA demo system; asked for the ten largest customers it answers from a sample of 200 orders rather than reading the whole table. They then open the API proxy behind it, where a spike arrest policy caps the backend at ten calls per second and the MCP server is configured to expose only the GET resources of the business-partner API so that an agent cannot create one, which is where the edges to Serve your application over MCP and Rate limiting hold. For totals across all sales orders they send the agent to SAP Business Data Cloud instead of the transactional system, since it aggregates and is read-only, and back through Integration Suite for writes such as journal entries.SAP Developers, published 2026-09-30
🟣 AI Eating Brains! How I Fed Mine to Joule Work Desktop🟣 AI Eating Brains! How I Fed Mine to Joule Work DesktopDevtoberfest 2026 session AI-22. Mathias Kemeter connects his Obsidian note vault to Joule Work Desktop with VaultGate, a local HTTP MCP server he wrote in his spare time because the desktop's sandbox accepts HTTP MCP servers and not stdio ones, and because he wanted the vault reached through Obsidian's own command line rather than by direct file access. The demo builds a Space of management tasks from notes and mailbox together, has the assistant pick up a conventions file in the vault without being told where the reporting rules are, finds a conflict the notes never name by semantic search over local embeddings, and appends a task to a sprint note behind a write confirmation, which is where the edges to Joule Work and Agent workspaces hold. The second half is about the guardrails he had AI choose for the project it then had to live inside: tests and coverage, type safety, static checks, dependency and secret scanning, blocking on commit, on push and in CI.published 2026-10-01
Be the First to Understand Joule Work's Agentic ThinkingBe the First to Understand Joule Work's Agentic ThinkingA Devtoberfest 2026 session on the agent harness behind agentic thinking in Joule Work: generic operating-system tools in a gVisor-isolated sandbox instead of hand-wired domain functions, a react loop, a warm pool of sandboxes torn down after each task, tenant-separated skill loading, and placeholder tokens the agent never sees swapped for real credentials at the egress path. A skill is a folder with a SKILL.md carrying metadata and instructions, and where it reaches a system, an SAP connectivity JSON that declares each connector by ORD ID with its guardrails — GET allowed by default, POST, PUT, PATCH and DELETE requiring human approval, everything else blocked. The demo uploads a cost-centre skill through the skills view, then has agentic thinking delegate over A2A through Agent Gateway to a custom agent built in Joule Studio, whose MCP tools read cost centres from an S/4HANA Cloud system, and ends by turning the result into a PDF; the Joule Studio trace is what shows the tool call actually happened.SAP Developers, published 2026-10-15
Integrate Document Information Extraction into UI5 applicationIntegrate Document Information Extraction into UI5 applicationUploading an invoice from a UI5 application and getting the extracted fields back on screen, with a destination pointing at the Document Information Extraction API and a Refresh button polling until the job finishes. The polling is the honest part: extraction is asynchronous, and the post does not pretend otherwise. From 2022, so the service has since been renamed and the API moved, but the shape — upload, poll, map the result — is the shape it still is.published 2022-05-31
🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and Compliance🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and ComplianceDevtoberfest 2026 session AI-21. A cross product owner on the SAP AI Core team gives the reasons an AI application ends up on more than one model — a model down at the hyperscaler, a data centre that is not allowed to run it, a version being deprecated — and runs a joke app that answers from Gemini 2.5 Flash in EU10 and from Claude 4.5 Haiku in Asia-Pacific. The walk through AI Core's parts is where the edges hold: prompts kept as templates in the prompt registry, imported through the launchpad and the APIs or synced as YAML from a git repository (Prompt management); the evaluation service scoring one prompt across up to four models per run on built-in or model-as-judge metrics, and the prompt optimizer generating variants against one metric (Agent evals); and the orchestration service harmonising the providers behind one message format with a priority-sorted fallback list (LLM integration). The session also states where a metric has to be designed rather than picked: an exact-JSON match scores an email generator at zero, so the joke app's custom metric judges topic and family-appropriateness instead.SAP Developers, published 2026-10-01
Building Agentic Workflows with n8n in Joule StudioBuilding Agentic Workflows with n8n in Joule StudioA Devtoberfest 2026 session, JS-31, on SAP-managed n8n inside Joule Studio, shown as a labs preview on a blocked-invoice scenario: a solution made of assets, an intent refined by the web agent into requirements and then a specification, and the generated workflow opened in the n8n editor that Joule Studio connects to its own n8n tenant, with the generated files committed through GitHub. The nodes carry the other edges — the human-in-the-loop node is built on SAP Task Center, and SAP AI Core is where model providers are configured centrally instead of per developer. It ends in Joule chat, where the approval task the workflow created is listed, opened and completed.SAP Developers, published 2026-10-08
Building Code-Based AI Agents on the BAIPBuilding Code-Based AI Agents on the BAIPA Devtoberfest 2026 session on writing the agent yourself rather than configuring one, which is the agent tooling edge: an agent is a model with tools, skills, memory and context around it, and the session reads the code of one built in CAP as a LangGraph state graph, with an agent node that calls the model, a tools node holding the MCP clients, and the edge between them looping until no tool is needed. It then shows the shorter route, a CDS service annotated for the agent protocol with its instructions and skills in an agent.md file. SAP AI Core carries both, with the CAP service in front of it as middleware so the credentials never reach the browser, and that is what cap-agent-ui5-webui is demonstrated against: added as a dependency, it gives the annotated service a UI5 chat interface that can be deployed rather than only previewed. A Python multi-agent application on Cloud Foundry, where an orchestrator delegates to per-stack specialists so no single model sees every tool, closes the session.published 2026-10-09
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
CAP in the age of AI #6 - vector embeddingsCAP in the age of AI #6 - vector embeddingsVector embeddings put to work in the incident management sample, answering whether this problem has been seen before. An embedding element of type Vector is calculated and stored from the vector_embedding function, so the database refreshes it whenever the text behind it changes, and cosine_similarity compares it with a freshly embedded string; because a title says little, a scheduled action first summarises each incident's conversation through a model on SAP AI Core and the embedding is taken from that summary. The similar-incidents list is a view joining incidents to themselves, with order and limit set in a before handler on the expanded query, and the vector element excluded from the service, since OData knows nothing about vectors — on SAP HANA Cloud the function is native, while SQLite needs packages added to the project.published 2026-10-09
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe same embeddings model taken from SQLite to SAP HANA Cloud, then handed to an agent. Locally it is @cap-js/ai that adds the vector functions SQLite lacks and downloads an all-MiniLM L6v2 ONNX model on first start; on HANA natural language processing has to be switched on, the model name is a mandatory argument, the vectors it returns are 768 dimensions, and dimensions must match on both sides of a comparison. HANA itself can be given SAP AI Core as a remote source for other embedding models, which a CDS.ql expression has to inject because the postfix notation only takes what the CDS model holds, and the hour ends with a search function over cosine similarity exposed over @cap-js/mcp, so an agent asked about low output from solar panels calls semantic search instead of writing the query itself.published 2026-10-16
How to implement business AI capabilities in ABAP CloudHow to implement business AI capabilities in ABAP CloudA Devtoberfest 2026 session (ABA-32) on embedding AI in an ABAP Cloud application and on making SAP Joule aware of what that application can do. The first demo implements two features of a RAP travel app with the ABAP AI SDK: a determination on an uploaded receipt that sends the image together with the allowed categories and transaction types to a model reached through an intelligent scenario, then writes the extracted description, category, currency and amount back to the expense entity; and a recommendation function, triggered by a side effect on the trip title, that proposes a trip type with a score the Fiori UI sorts the proposals by and leaves the business user to accept — which is LLM integration from ABAP code. The second demo builds a capability for SAP Joule in the Joule Studio code editor in VS Code, with a scenario that extracts a trip title from the user's intent and calls an OData service in the ABAP backend through a BTP destination, deploys it and asks the Joule test UI for the trip's details; the session states that agents reach ABAP only over governed remote APIs — OData, SQL and MCP — and that automatic grounding of custom OData services in the knowledge graph is upcoming rather than available.published 2026-10-05
Unlocking Tabular Foundation Models: From Experimentation to ProductionUnlocking Tabular Foundation Models: From Experimentation to ProductionA Devtoberfest 2026 session (AI-41) on taking tabular prediction from a playground to a deployment. It sets tabular foundation models against a model trained per use case and against language models reading rows as text, explains in-context learning as examples plus the rows whose target column is missing, and tries SAP RPT 1.6 on a train-delay dataset in the RPT playground, including the column and row importance it returns with the prediction. The same prediction is then rebuilt on SAP AI Core, where the tabular orchestration service plays the part the orchestration service plays for language models: a data destination, a table artifact with its CSN schema and a scenario configuration registered once at design time, after which a predict call passes only the query rows, the scenario configuration and a context-selection strategy. The last demo runs those same calls in natural language through the aicore-skills plugin in a coding agent, and one of them only resolves once the agent is told which scenario configuration to use.SAP Developers, published 2026-10-15
What an AI infra engineer sees when opening SAP's AI stack (1/3): the model gatewayWhat an AI infra engineer sees when opening SAP's AI stack (1/3): the model gatewayA first look at SAP AI Core's Generative AI Hub from someone who builds gateways outside SAP for a living: the orchestration service harmonizes provider calls onto one API (a model name string switches providers, and SAP Note 3437766 carries the current model list, token rates and deprecation dates), runs a fixed, non-reorderable module pipeline — templating, masking through SAP Data Privacy Integration, grounding, content filtering, then the model call — and retries down an ordered fallback list whose entries can each carry their own model and rules. It places @sap-ai-sdk/orchestration among the official JavaScript, Java and Python SDKs, and notes SAP's own LiteLLM provider as a way to put a different gateway in front of it.amishkush, published 2026-09-30
How We Make Tabular Predictions in 2026 with TabPFNHow We Make Tabular Predictions in 2026 with TabPFNA Devtoberfest 2026 session, AI-32, on why a table needs a model of its own: a language model reasons its way to a plausible number, while a tabular foundation model takes the table as context in one forward pass and learns from its features statistically. That is predictive models from both ends — a scikit-learn-shaped fit and predict in a notebook over a heart-disease data set, predicted class probabilities and SHAP values for which features drove the outcome, then the same model reached as an MCP tool by a coding agent that is asked which current customers are most likely to churn. The presenter is from the lab that publishes TabPFN; the Q&A puts it beside SAP's own tabular foundation model, which she says she has not used.SAP Developers, published 2026-10-08
Unlocking Tabular Foundation Models: From Experimentation to ProductionUnlocking Tabular Foundation Models: From Experimentation to ProductionA Devtoberfest 2026 session (AI-41) on taking tabular prediction from a playground to a deployment. It sets tabular foundation models against a model trained per use case and against language models reading rows as text, explains in-context learning as examples plus the rows whose target column is missing, and tries SAP RPT 1.6 on a train-delay dataset in the RPT playground, including the column and row importance it returns with the prediction. The same prediction is then rebuilt on SAP AI Core, where the tabular orchestration service plays the part the orchestration service plays for language models: a data destination, a table artifact with its CSN schema and a scenario configuration registered once at design time, after which a predict call passes only the query rows, the scenario configuration and a context-selection strategy. The last demo runs those same calls in natural language through the aicore-skills plugin in a coding agent, and one of them only resolves once the agent is told which scenario configuration to use.SAP Developers, published 2026-10-15
🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and Compliance🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and ComplianceDevtoberfest 2026 session AI-21. A cross product owner on the SAP AI Core team gives the reasons an AI application ends up on more than one model — a model down at the hyperscaler, a data centre that is not allowed to run it, a version being deprecated — and runs a joke app that answers from Gemini 2.5 Flash in EU10 and from Claude 4.5 Haiku in Asia-Pacific. The walk through AI Core's parts is where the edges hold: prompts kept as templates in the prompt registry, imported through the launchpad and the APIs or synced as YAML from a git repository (Prompt management); the evaluation service scoring one prompt across up to four models per run on built-in or model-as-judge metrics, and the prompt optimizer generating variants against one metric (Agent evals); and the orchestration service harmonising the providers behind one message format with a priority-sorted fallback list (LLM integration). The session also states where a metric has to be designed rather than picked: an exact-JSON match scores an email generator at zero, so the joke app's custom metric judges topic and family-appropriateness instead.SAP Developers, published 2026-10-01
CAP in the age of AI #6 - vector embeddingsCAP in the age of AI #6 - vector embeddingsVector embeddings put to work in the incident management sample, answering whether this problem has been seen before. An embedding element of type Vector is calculated and stored from the vector_embedding function, so the database refreshes it whenever the text behind it changes, and cosine_similarity compares it with a freshly embedded string; because a title says little, a scheduled action first summarises each incident's conversation through a model on SAP AI Core and the embedding is taken from that summary. The similar-incidents list is a view joining incidents to themselves, with order and limit set in a before handler on the expanded query, and the vector element excluded from the service, since OData knows nothing about vectors — on SAP HANA Cloud the function is native, while SQLite needs packages added to the project.published 2026-10-09
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe same embeddings model taken from SQLite to SAP HANA Cloud, then handed to an agent. Locally it is @cap-js/ai that adds the vector functions SQLite lacks and downloads an all-MiniLM L6v2 ONNX model on first start; on HANA natural language processing has to be switched on, the model name is a mandatory argument, the vectors it returns are 768 dimensions, and dimensions must match on both sides of a comparison. HANA itself can be given SAP AI Core as a remote source for other embedding models, which a CDS.ql expression has to inject because the postfix notation only takes what the CDS model holds, and the hour ends with a search function over cosine similarity exposed over @cap-js/mcp, so an agent asked about low output from solar panels calls semantic search instead of writing the query itself.published 2026-10-16
Powering Enterprise-Ready Agentic AI with SAP Integration SuitePowering Enterprise-Ready Agentic AI with SAP Integration SuiteA Devtoberfest 2026 session (INT-31) from SAP Integration Suite product management on the MCP gateway. The demo creates an MCP server in a design package from an API already deployed on the tenant, exposes two of its 300-odd resources as tools, attaches authentication and quota policies on a policies tab, and publishes the deployed endpoint as an AI product in Developer Hub of API Management, where an agent subscribes and receives a token, URL, key and secret; the calls then show up in monitoring, in message processing logs and in the analytics dashboard, which is the MCP exposure and the tool governance the edges rest on. Three AI features inside Cloud Integration follow: a content migration agent that converts a PI/PO Java mapping into a Groovy script and generates a second integration flow for its lookup, memory profiling during a flow simulation, and root-cause analysis on a failed message processing log.SAP Developers, published 2026-10-07
Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The opening of a three-part series on reaching more than one S/4HANA system from one CAP application with the user's identity carried through. This part sets up the business problem; the propagation itself is in the parts that follow.mohit_bansal3, published 2022-11-25
Execute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationExecute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationA recipe, and the author calls it that — package.json, a .cds and a handler — for calling a remote service protected by OAuth2 client credentials from a CAP application. Short, complete, and addressed to CAP developers rather than to BTP administrators.Lachmish, published 2022-04-27
Execute [OAuth2 client credentials] protected REST request with SAP CAP Application
Authentication changed in CAP Java 3.0.1, 2024-07-26. Affects A recipe.
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The final part, and the one with the most CAP in it — the service consuming the propagated destinations, and what the handler sees. Read the three together; the series is one piece.mohit_bansal3, published 2022-11-25
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects A recipe.
Part2: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Part2: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The middle part: the destinations and the trust that make principal propagation work against several backends rather than one, which is where the configuration stops being a copy of the tutorial.mohit_bansal3, published 2022-11-25
SAP Business Technology Platform: Authorization and Trust Management ServiceSAP Business Technology Platform: Authorization and Trust Management ServiceWalks through how the SAP Authorization and Trust Management service secures a BTP application: scopes, attributes and role templates in the security descriptor, and the OAuth 2.0 resource-owner, client and resource-server roles it builds on. Covers the XSUAA microservice as the OAuth 2.0 authorization server bound to each application through its service broker, the signed JSON Web Token it issues after authentication, and the App Router's place in front of the resource apps as the gateway that starts authentication and checks for cross-site request forgery.SekhuteTK, published 2022-09-09
An approach to secure multiple integrated SAP CAP java applications with a common XSUAA service instanceAn approach to secure multiple integrated SAP CAP java applications with a common XSUAA service instanceOne XSUAA instance across several CAP Java applications that call each other, rather than one per application. Short, and written from inside SAP Labs as something the author tried — the value is the shape of the arrangement, not a walkthrough.sreanik_dhanyakumar2, published 2022-09-14
Developing authorizations for business users in SAP Business AI Platform, ABAP environmentDeveloping authorizations for business users in SAP Business AI Platform, ABAP environmentA Devtoberfest 2026 session that walks the places an authorization check has to be written when a RAP business object is implemented, which is the whole of the authorization edge: read restrictions as DCL access controls that become a filter at query time, a child entity inheriting its parent's conditions through an association, the projection layer inheriting rather than changing them, and the same check repeated on the draft side. The ABAP CDS edge holds on that draft half — until 2608 a draft query view was needed above the draft table so a DCL had something to attach to, while a draft table entity is already on CDS level and takes the DCL directly, as long as the associations used in the inherited conditions are redefined on it. Create, update and delete are then taken handler by handler, including the trap that instance authorization reads the buffer and so cannot see the new value a pre-check would reject, and the session closes on in local mode and privileged EML calls.published 2026-10-12
How to get authenticated user information with CAP in three different ways – Using the XSUAA APIHow to get authenticated user information with CAP in three different ways – Using the XSUAA APIThe third of three approaches the author sets out, and the one that returns the most: going to the XSUAA API directly rather than reading what CAP already put on the request. Depends on an earlier post for the project setup, so it starts mid-stream on purpose.ale_biagi, published 2022-07-18
Qualtrics integration with domain based authorization in CAP project on HANA cloudQualtrics integration with domain based authorization in CAP project on HANA cloudSurveys pulled from Qualtrics into a CAP application in real time, with the twist in the title: authorisation decided by the user's domain rather than by a role collection. A pattern that comes up whenever the audience is wider than the tenant.former_member69893, published 2022-09-30
Qualtrics integration with domain based authorization in CAP project on HANA cloud
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects Runnable code.
SAP Business Technology Platform: Authorization and Trust Management ServiceSAP Business Technology Platform: Authorization and Trust Management ServiceWalks through how the SAP Authorization and Trust Management service secures a BTP application: scopes, attributes and role templates in the security descriptor, and the OAuth 2.0 resource-owner, client and resource-server roles it builds on. Covers the XSUAA microservice as the OAuth 2.0 authorization server bound to each application through its service broker, the signed JSON Web Token it issues after authentication, and the App Router's place in front of the resource apps as the gateway that starts authentication and checks for cross-site request forgery.SekhuteTK, published 2022-09-09
SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)Calling an unsecured endpoint on a schedule is trivial; this is the same thing once the endpoint is protected. The interesting part is the caller — the Job Scheduling Service is not a person, so CAP's pseudo-roles are where the post spends its time, and $XSSERVICENAME has to match the scheduler's own instance name.former_member412792, published 2022-12-12
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
Why developers should care about credential-types for xsuaa?Why developers should care about credential-types for xsuaa?Rotating secrets, argued from a habit rather than a feature: the author names the practice implicit in many beginner tutorials — lifting a secret out of a binding to use it elsewhere — and notes CAP has features that make it unnecessary in development. Then the three credential types side by side, configured on a CAP application's uaa resource in mta.yaml and through a deployment extension.former_member2839, published 2022-07-05
Why developers should care about credential-types for xsuaa?
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
🔴 Your Agent Wants to Call SAP. Now What?🔴 Your Agent Wants to Call SAP. Now What?Devtoberfest 2026 session INT-23, on what belongs between an agent and an SAP system. A solution advisor and an enterprise architect point Joule Desktop extensions at MCP servers built on API Management inside SAP Integration Suite, and ask it for business partners, orders and line items from an S/4HANA demo system; asked for the ten largest customers it answers from a sample of 200 orders rather than reading the whole table. They then open the API proxy behind it, where a spike arrest policy caps the backend at ten calls per second and the MCP server is configured to expose only the GET resources of the business-partner API so that an agent cannot create one, which is where the edges to Serve your application over MCP and Rate limiting hold. For totals across all sales orders they send the agent to SAP Business Data Cloud instead of the transactional system, since it aggregates and is read-only, and back through Integration Suite for writes such as journal entries.SAP Developers, published 2026-09-30
Powering Enterprise-Ready Agentic AI with SAP Integration SuitePowering Enterprise-Ready Agentic AI with SAP Integration SuiteA Devtoberfest 2026 session (INT-31) from SAP Integration Suite product management on the MCP gateway. The demo creates an MCP server in a design package from an API already deployed on the tenant, exposes two of its 300-odd resources as tools, attaches authentication and quota policies on a policies tab, and publishes the deployed endpoint as an AI product in Developer Hub of API Management, where an agent subscribes and receives a token, URL, key and secret; the calls then show up in monitoring, in message processing logs and in the analytics dashboard, which is the MCP exposure and the tool governance the edges rest on. Three AI features inside Cloud Integration follow: a content migration agent that converts a PI/PO Java mapping into a Groovy script and generates a second integration flow for its lookup, memory profiling during a flow simulation, and root-cause analysis on a failed message processing log.SAP Developers, published 2026-10-07
How to Build Application Jobs in SAP Business AI Platform, ABAP environmentHow to Build Application Jobs in SAP Business AI Platform, ABAP environmentA Devtoberfest 2026 session on the application job framework in the cloud ABAP environment, built from the repository objects outwards: a class implementing the new application job interface, whose public attributes become the parameters and select options, the application log object it writes to, a job catalog entry that lays out sections, groups and value helps, and a job catalog template that works like a report variant. The demo schedules and monitors runs in the Application Jobs Fiori app, starts a job from a RAP action through the scheduling API under a job user of its own, and debugs one through the template's run-for-testing entry. It closes on the alternatives for work that should not be a job — the background processing framework for short-running work, and RAP events consumed locally or sent over the event mesh — which is the async processing this session covers for SAP BTP ABAP environment.published 2026-09-28
SAP BAIP, ABAP environment – How to build partner solutions and get them certifiedSAP BAIP, ABAP environment – How to build partner solutions and get them certifiedA Devtoberfest 2026 session on the two ways a partner ships an ABAP Cloud solution built on SAP BTP ABAP environment, which the session calls the ABAP environment of SAP Business AI Platform: software delivery, where an add-on product is published with the solution ID from SAP Store onboarding and the customer discovers and deploys it into their own system, and service delivery, where the partner operates the same add-on as a multi-tenant SaaS and a new version is deployed rather than published again. That is the ABAP environment edge; the static analysis edge rests on the quality steps shown in the landscape portal, where the Manage Continuous Testing app released with 2608 runs an ATC check variant against a configured system on a recurrence pattern, beside test product version builds and managed test tenants. The second half walks through the SAP Integration and Certification Center process and the three BTP certification options open to an add-on product.SAP Developers, published 2026-10-12
Getting started with cds.ql in NodeJS for CAP - 101 on how to query dataGetting started with cds.ql in NodeJS for CAP - 101 on how to query dataWalks through cds.ql, the query API @sap/cds gives a Node.js CAP service's custom handlers, with worked SELECT, UPDATE, DELETE and INSERT examples against a sample schema — filters, AND/OR conditions, column projections, ordering, limiting, grouping and joining two entities through a schema view. An added correction notes that cds.tx(req) is no longer needed to run a query in newer CAP versions, contradicting the post's own original guidance.published 2022-06-21
Build and deploy a CAP Project Node.js API with a SAP Fiori Elements UI and a managed approuter configurationBuild and deploy a CAP Project Node.js API with a SAP Fiori Elements UI and a managed approuter configurationGeneration and deployment in one piece, with the managed approuter rather than a standalone one — so the routing is configuration instead of a module, and the post covers what that changes at deploy time.jlong, published 2022-02-10
Build and deploy a CAP Project Node.js API with a SAP Fiori Elements UI and a managed approuter configuration
Fiori annotations changed in @sap/cds-dk 9.6.0, 2025-12-17. Affects A recipe, Runnable code.
CAP on Kyma - Deploy your CAP apps to SAP BTP, Kyma RuntimeCAP on Kyma - Deploy your CAP apps to SAP BTP, Kyma RuntimeThe post that superseded the author's own earlier one, written for cds and cds-dk 6 when Kyma deployment became something the tooling did rather than something you assembled. The current reference of the several Kyma posts here.Uwe_Klinger, published 2022-07-12
CAP on Kyma - Deploy your CAP apps to SAP BTP, Kyma Runtime
Deployment changed in @sap/cds-dk 8.9.0, 2025-03-31. Affects A recipe, Runnable code.
Extend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudExtend SAP SuccessFactors on SAP BTP with CAP - Deploy to SAP HANA CloudThe deployment instalment of the author's SuccessFactors extension series — the project already exists and the imported service is already modelled, so this is only the move onto HANA Cloud. Depends on the two posts before it and says so.ale_biagi, published 2022-03-29
HTML5.Timeout for CAP destinations in mta.yaml longer than defaultHTML5.Timeout for CAP destinations in mta.yaml longer than defaultA page and a half about one property that has to be raised when a CAP destination is slower than the default allows — and it now opens with its own correction, dated October 2025, that the property is called timeout rather than HTML5.Timeout, credited to a commenter. The correction is why it is worth keeping.NilsJanen, published 2022-11-09
SAP CAP - Optimize your build MTA projects with several ui appsSAP CAP - Optimize your build MTA projects with several ui appsWhat the Business Application Studio wizard writes into mta.yaml stops scaling somewhere past a couple of dozen UI applications, because every one of them gets its own build step. The post is about the build phase specifically, and reads as a report from a project large enough to have hit the wall rather than as a general optimisation.published 2022-04-28
SAP CAP - Optimize your build MTA projects with several ui apps
Deployment changed in @sap/cds-dk 8.9.0, 2025-03-31. Affects A recipe.
The new way to consume Service Bindings on Kyma RuntimeThe new way to consume Service Bindings on Kyma RuntimeService bindings on Kyma, which had until then been a Cloud Foundry idea — how a BTP service reaches a workload in Kubernetes, and what changes for an application that expects VCAP_SERVICES.Uwe_Klinger, published 2022-07-12
Custom Business Logic Extensibility in CAP (CDS-Oyster)Custom Business Logic Extensibility in CAP (CDS-Oyster)A Devtoberfest 2026 session walking @sap/cds-oyster — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravels, from the application developer's side and the extension developer's side. The application developer adds a submit-for-review action to the status flow and opens exactly one surface for custom code: a separate extension service marked as extensible code, holding a no-op validate action and two read-only helper entities, which the host application calls before the status change; nothing else is extensible, because the annotation defaults to false. The extension developer works in a project whose base model came from cds pull, with test data, a server.js and types from @cap-js/cds-typer added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs extension, after which the next request rejects a travel over the policy limit without a restart — the code having been stored as an annotation in the tenant's model and run in a Rust WebAssembly sandbox with no database connection, whose queries go back to the CAP runtime as CQL strings, which is tenant extensibility extended from fields to logic.published 2026-10-09
Multitenant MTA: providing a Cloud Portal Service with FIORI apps to subscriber accountsMultitenant MTA: providing a Cloud Portal Service with FIORI apps to subscriber accountsFiori applications reaching a subscriber's own launchpad, which is the part of multitenancy the runtime does not do for you. The author's motivation is that the information exists but is scattered across documentation, and this puts it in one place.former_member1760, published 2022-01-03
Multitenant SaaS applications on SAP BTP using CAP? Tried-and-True!Multitenant SaaS applications on SAP BTP using CAP? Tried-and-True!The opening post of the Cloud Foundry series, and the one that states the shape of the whole thing: a sample built out of a partner co-innovation project with BCG, then delivered in three graded versions — Basic, Advanced, Expert Features — against a fictional partner's requirements. Read it for the motivation and the map; the implementation is in the three that follow.martinfrick, published 2022-10-19
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Advanced VersionMultitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Advanced VersionWhat the basic version leaves out and production needs: central user management, and reaching an on-premise S/4HANA from a subscribed tenant. Framed as a step towards production readiness rather than as production itself, which is the honest reading — the Expert Features post is where the rest of that distance is covered.published 2022-11-21
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Basic VersionMultitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Basic VersionThe version deliberately bounded by what a trial or pay-as-you-go account can hold — the authors point out a PAYG owner can run it for nothing on free-tier services. Scenario first, then the architecture diagram, then a component-by-component walk through what each service in it is for.published 2022-10-24
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Expert FeaturesMultitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Expert FeaturesThe last of the four, and the one carrying the features that are optional until they are not. Each is written up as a self-contained tutorial in the sample repository rather than inline, so the post is a guide to which of them applies to your landscape.martinfrick, published 2022-11-29
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewTesting your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewcds.test covers the service; this covers what is underneath it, where the artifact is an hdbprocedure or an hdbview that CDS never sees. That means a real HDI container, so most of the post is about where to get one and how to give CAP access to it — the tests are the easy part once that is true.Tristan, published 2022-08-30
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbview
Testing has changed 3 times since this was published, most recently in @cap-js/cds-test 1.0.0, 2026-04-23. Affects A recipe, Runnable code.
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
Custom Business Logic Extensibility in CAP (CDS-Oyster)Custom Business Logic Extensibility in CAP (CDS-Oyster)A Devtoberfest 2026 session walking @sap/cds-oyster — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravels, from the application developer's side and the extension developer's side. The application developer adds a submit-for-review action to the status flow and opens exactly one surface for custom code: a separate extension service marked as extensible code, holding a no-op validate action and two read-only helper entities, which the host application calls before the status change; nothing else is extensible, because the annotation defaults to false. The extension developer works in a project whose base model came from cds pull, with test data, a server.js and types from @cap-js/cds-typer added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs extension, after which the next request rejects a travel over the policy limit without a restart — the code having been stored as an annotation in the tenant's model and run in a Rust WebAssembly sandbox with no database connection, whose queries go back to the CAP runtime as CQL strings, which is tenant extensibility extended from fields to logic.published 2026-10-09
Agentic Loop with Joule for Developers and ADT MCP ServerAgentic Loop with Joule for Developers and ADT MCP ServerA Devtoberfest 2026 session from SAP's ABAP AI team that generates a RAP issue-tracker application by prompting a coding agent. It covers what SAP Joule for Developers, ABAP AI capabilities now ships as MCP tools and which assistants can reach an ABAP system's virtual filesystem, then does the setup twice: turning on the ADT MCP Server and pasting the Joule side-by-side tenant link in ABAP Development Tools for VS Code, and again in ABAP Development Tools for Eclipse, where the custom agent becomes custom instructions. The demo's subject is the guardrails around the loop — an agent.md of phases and human checkpoints, skill files cloned from a GitHub repository for naming, ATC compliance and UI annotations — run through GitHub Copilot until the generated objects are activated, unit-tested and in a transport.SAP Developers, published 2026-09-28
UI5 Views, Reimagined: Type-Safe TSX for a Modern Dev ExperienceUI5 Views, Reimagined: Type-Safe TSX for a Modern Dev ExperienceA Devtoberfest 2026 session on @ui5-community/jsx-runtime, the incubation project that lets a UI5 view be written as TSX: XML-like markup that the TypeScript compiler checks against the control's own types and a Babel plugin turns into the constructor calls UI5 already makes. The edge to the runtime rests on the session's own description, which gives the project's documentation site as the session's documentation. The TypeScript support edge holds because that is the session's subject — per-property checking, completion on every attribute, renames that carry through a view, and typed event objects that remove the casts — alongside what stays unchanged: string and expression bindings, controllers, routing and i18n, and XML views living beside TSX ones in the same app. The build edge rests on the setup, where ui5-tooling-transpile is given the JSX transform in ui5.yaml; the walkthrough then builds a bookshop app on a CAP OData service and names what is still missing, UI flexibility and native HTML among it.published 2026-10-09