BrowseSAP Cloud Application Programming Model
Everything in CAP
40 of 1047
Domain
Signals
Content: 2
More: YouTube — SAP Developers playlists
Group by: Capability
EntryBySignalsLast activity
Serve your application over MCPSAP and community
CAP in the age of AICAP in the age of AISeven live episodes of Hands-on SAP Dev in which DJ Adams works through CAP's AI features with the people who build them, each one a screen-share against a sample project. The first three are @cap-js/mcp: the @mcp annotation on a service, the describe, query and call tools, CQL as the query format, and what authorisation takes out of the tool list. From episode three the run moves to A2A and @cap-js/agents — human approval of an action, agents.md and skills, session persistence, telemetry and sub-agents — and the last two episodes are vector embeddings in CDS, local on SQLite and native on SAP HANA Cloud.published 2026-08-07
CAP in the age of AI #1 - the MCP adapterCAP in the age of AI #1 - the MCP adapterThe episode that opens the series and the first pass over @cap-js/mcp, with four of the people building it on the call. Two of the adapter's tools are worked through: describe, the one an MCP client reaches for first to get the overview of what it may do, and query, which the panel establishes as read-only. It also writes the server entry into a local agent's own configuration file, which episode three comes back to as auto-wiring.published 2026-08-07
CAP in the age of AI #2 - more on the MCP adapterCAP in the age of AI #2 - more on the MCP adapterWhat the query tool costs in tokens, and the third tool @cap-js/mcp registers. Counted against a model running locally under llama.cpp, the same query is 26 tokens as CQL and 173 as CQN, and the tool definition sent with every system prompt drops from around 5,500 tokens to around 600 — the reason CQL became the default format. The call tool then exposes a service's unbound actions and functions, as one generic tool or, behind a flag, one tool per action with its own description and input schema; a question from the chat about extension points gets the answer that the adapter does the tools, which the panel calls a small subset of the protocol.published 2026-08-14
CAP in the age of AI #3 - from MCP to A2ACAP in the age of AI #3 - from MCP to A2AThe episode that finishes @cap-js/mcp with authorisation and then crosses to agents. @requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.published 2026-08-21
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
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
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
WebSocketCommunity only
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
Data federationSAP and community
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
Data modellingSAP and community
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
Database connectorsSAP and community
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
Bring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsBring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsDevtoberfest 2026 session FA-11: a tour of the rebuilt developers.sap.com by the team that runs it, from the administration screens behind the home page to the agent interfaces in front of it. The site is a CAP application on SAP HANA Cloud and SAP BTP, open-sourced in full, and the half of the session that places it here is how its content reaches an agent: every tutorial is also served as markdown, a coding agent is detected and given that version instead of the HTML, a well-known agent card advertises what the site offers, and SAP Developers MCP answers questions about tutorials, news and a reader's own completion history in Claude Code and Joule Desktop, over OAuth or a personal access token. Behind the answers sit two things working together: a knowledge graph in the HANA database over 1400 tutorials and 11,000 concepts, and SAP AI Core for the Joule interactions and the embeddings, with the agent harness written for the site rather than taken off a shelf. Where neither MCP nor A2A is available, the same content is published as skills.SAP Developers, published 2026-09-25
Building your knowledge graph on SAP HANA CloudBuilding your knowledge graph on SAP HANA CloudDevtoberfest 2026 session DAT-11, in which two enterprise architects explain what a knowledge graph is and then build one on SAP HANA Cloud. The first half sets the join across three relational tables against an ontology of classes and predicates, the subject-predicate-object triple written as a turtle file, and a SPARQL query over it, and argues that the chain of relationships is what makes a recommendation traceable back to its reasons. The demo, taken from a Discovery Center mission, curates the ontology and the RDF files for an accounts receivable scenario in VS Code, ingests the triples into HANA Cloud with SQL and walks the resulting graph outward from a customer; that is the graph, spatial and document data edge. It closes by separating three things that share the name: the HANA Cloud knowledge graph engine, SAP Knowledge Graph as the data, and the knowledge graph in SAP Business Data Cloud.SAP Developers, published 2026-09-22
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
Combining AI Agents with the power of SAP HANA embedded ML (part 1)Combining AI Agents with the power of SAP HANA embedded ML (part 1)Devtoberfest 2026 session DAT-12, the first of two parts, in which Vitaliy Rudnytskiy does a data scientist's work against the embedded machine learning of SAP HANA Cloud by talking to an agent. The session first takes an agent apart into its LLM, its tools, its memory and the loop between them, then stacks the Predictive Analysis Library under the hana-ml Python wrapper and that under the HANA AI toolkit, whose tools an agent calls from plain English in a notebook to preview a sales refunds table, split it into train and predict tables, run a time-series check and train an AutoML forecast, keeping what it decided in Markdown memory files. That is the agent tooling edge; the same toolkit is then started as an MCP server over stdio and over streamable HTTP and reached from a coding agent and from Joule Work's desktop, which is where the live demo partly fails and the failure is shown.published 2026-09-22
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
DestinationsSAP and community
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
Event MeshSAP and community
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
Service integrationSAP and community
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
Agent access to your codeSAP and community
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
Beyond copilots: Agentic development with SAPUI5Beyond copilots: Agentic development with SAPUI5Devtoberfest 2026 session UI-12, from the SAPUI5 team, on the year of work behind UI5/plugins-coding-agents: what a model produces for UI5 without help — outdated concepts, framework versions a decade old, generic JavaScript rules, code that does not run — and the two ways they chose to close that gap, an MCP server in September 2025 and skills packaged as plugins once agents began reading them. Three plugins are demonstrated live in Claude Code: the everyday one scaffolds an Oktoberfest tents application in about four minutes, the TypeScript conversion plugin rewrites an existing JavaScript project and reconfigures its build with the types and the transpile task, and the modernisation plugin takes a ten-year-old application through staged migrations, applying UI5 Linter's automatic fixes where they cannot break the app and the model where they can, then running the tests. @ui5/mcp-server is still the path for the parts that need a server, and the plugins are installed from the Claude Code and GitHub Copilot marketplaces rather than a UI5-hosted one.SAP Developers, published 2026-09-25
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
Agent guidanceSAP and community
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
Bring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsBring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsDevtoberfest 2026 session FA-11: a tour of the rebuilt developers.sap.com by the team that runs it, from the administration screens behind the home page to the agent interfaces in front of it. The site is a CAP application on SAP HANA Cloud and SAP BTP, open-sourced in full, and the half of the session that places it here is how its content reaches an agent: every tutorial is also served as markdown, a coding agent is detected and given that version instead of the HTML, a well-known agent card advertises what the site offers, and SAP Developers MCP answers questions about tutorials, news and a reader's own completion history in Claude Code and Joule Desktop, over OAuth or a personal access token. Behind the answers sit two things working together: a knowledge graph in the HANA database over 1400 tutorials and 11,000 concepts, and SAP AI Core for the Joule interactions and the embeddings, with the agent harness written for the site rather than taken off a shelf. Where neither MCP nor A2A is available, the same content is published as skills.SAP Developers, published 2026-09-25
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
Agent toolingSAP and community
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 AICAP in the age of AISeven live episodes of Hands-on SAP Dev in which DJ Adams works through CAP's AI features with the people who build them, each one a screen-share against a sample project. The first three are @cap-js/mcp: the @mcp annotation on a service, the describe, query and call tools, CQL as the query format, and what authorisation takes out of the tool list. From episode three the run moves to A2A and @cap-js/agents — human approval of an action, agents.md and skills, session persistence, telemetry and sub-agents — and the last two episodes are vector embeddings in CDS, local on SQLite and native on SAP HANA Cloud.published 2026-08-07
CAP in the age of AI #3 - from MCP to A2ACAP in the age of AI #3 - from MCP to A2AThe episode that finishes @cap-js/mcp with authorisation and then crosses to agents. @requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.published 2026-08-21
CAP in the age of AI #4 - more on agentsCAP in the age of AI #4 - more on agentsAsking a human first, and telling the agent how to behave. Ordering a book through @cap-js/agents happens without a question being asked; the human-in-the-loop annotation on the action turns the same request into an approve-or-reject step, which the episode follows down to the A2A status update that stores the task in an input-required state in the database — A2A itself being JSON-RPC 2.0 over HTTP with server-sent events for the stream. The rest is instructions on disk: an agents.md in the service's own folder removes the question about how many copies to order, a skill under a skills folder is advertised by its description and read only when the agent decides the case applies, and either file makes the plugin build a deep agent instead of the plain one.published 2026-09-11
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: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
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
Meet Joule Studio and Build your First AI AgentMeet Joule Studio and Build your First AI AgentA Devtoberfest 2026 session from the product manager of Joule Studio, walking one agent through the whole path the tool defines: an intent, the problem statement and goals a coding agent derives from it, the business context it takes from the SAP knowledge graph, and the solution type it proposes with a stated intent fit. The demo is a collections agent that drafts dunning emails: the product requirements document names the metrics and the human-in-the-loop review, the technical specification lists the artifacts to build — the MCP tools among them — and the build is followed by a business test run against business partner 10001, technical unit tests, and deployment to the managed runtime, where the agent and its MCP server appear as deployed assets. Two points shape how it is used rather than what it produces: every asset is a file, editable in the web editor or in the code view and pushable to git, and the same solution can be built from local pro-code tools; n8n workflows are stated as delivered out of the box inside the studio.SAP Developers, published 2026-09-24
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
LLM integrationSAP and community
🟣 Bring AI into Your ABAP Applications with ISLM: Build, Integrate, and Consume AI Natively🟣 Bring AI into Your ABAP Applications with ISLM: Build, Integrate, and Consume AI NativelyDevtoberfest 2026 session AI-11, from the product manager and product owner of Intelligent Scenario Lifecycle Management: ISLM as the place an AI use case is registered, deployed and operated inside an SAP S/4HANA system, and what has been added to it for generative AI. The demo builds a custom scenario end to end — an intelligent scenario of type generative AI, a connection to SAP AI Core, a GPT-5 mini model, an orchestration flow template that configures data masking, input and output filtering and translation into the user's logged-in language, then prompts with a grounding query over five companies' return-policy documents — and consumes it from an ABAP report through the ABAP AI SDK, which calls the orchestration API and returns the summary as JSON. Two newer pieces follow: SAP RPT, the relational pre-trained transformer for tabular prediction, called with context rows and query rows and answering with a confidence value and no training step; and system-triggered agents, where an application job in the ABAP system starts a billing-creation agent that reaches S/4HANA OData APIs as tools through the agent gateway with principal propagation. The closing availability matrix states the generative AI capabilities for on-premise and private cloud from the 2021 release, with SAP notes to implement on lower ones.SAP Developers, published 2026-09-24
🟣 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
Bring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsBring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsDevtoberfest 2026 session FA-11: a tour of the rebuilt developers.sap.com by the team that runs it, from the administration screens behind the home page to the agent interfaces in front of it. The site is a CAP application on SAP HANA Cloud and SAP BTP, open-sourced in full, and the half of the session that places it here is how its content reaches an agent: every tutorial is also served as markdown, a coding agent is detected and given that version instead of the HTML, a well-known agent card advertises what the site offers, and SAP Developers MCP answers questions about tutorials, news and a reader's own completion history in Claude Code and Joule Desktop, over OAuth or a personal access token. Behind the answers sit two things working together: a knowledge graph in the HANA database over 1400 tutorials and 11,000 concepts, and SAP AI Core for the Joule interactions and the embeddings, with the agent harness written for the site rather than taken off a shelf. Where neither MCP nor A2A is available, the same content is published as skills.SAP Developers, published 2026-09-25
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 #3 - from MCP to A2ACAP in the age of AI #3 - from MCP to A2AThe episode that finishes @cap-js/mcp with authorisation and then crosses to agents. @requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.published 2026-08-21
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
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
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
RAG on CDSSAP and community
CAP in the age of AICAP in the age of AISeven live episodes of Hands-on SAP Dev in which DJ Adams works through CAP's AI features with the people who build them, each one a screen-share against a sample project. The first three are @cap-js/mcp: the @mcp annotation on a service, the describe, query and call tools, CQL as the query format, and what authorisation takes out of the tool list. From episode three the run moves to A2A and @cap-js/agents — human approval of an action, agents.md and skills, session persistence, telemetry and sub-agents — and the last two episodes are vector embeddings in CDS, local on SQLite and native on SAP HANA Cloud.published 2026-08-07
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
Audit loggingSAP only
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
Change trackingSAP and community
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
Rate limitingSAP and community
🔴 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
ConfigurationSAP only
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
MultitenancySAP and community
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
TelemetrySAP and community
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
Tenant extensibilitySAP and community
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
GeneratorsSAP and community
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
Plugin authoringSAP only
DRY CAP – Making Sustainable Solutions Through PluginsDRY CAP – Making Sustainable Solutions Through PluginsA Devtoberfest 2026 building-apps session on packaging the things you would otherwise write twice, from in-house API clients and shared data models to validation logic, as a CAP plugin. The presenter builds one live: a cds-plugin.js next to package.json is what makes CAP notice the plugin at all, an index.cds carries a reusable user context and service that the consuming application projects into its own and protects there, and the plugin registers an Express middleware at a chosen step of the bootstrap to put user properties on the request. A feature-flagging plugin his team already uses closes it, and the whole walkthrough is the edge to Plugin authoring.SAP Developers, published 2026-10-02
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
Fiori annotationsSAP and community
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
Frontend boundarySAP only
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
DocumentationSAP and community
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
Bring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsBring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsDevtoberfest 2026 session FA-11: a tour of the rebuilt developers.sap.com by the team that runs it, from the administration screens behind the home page to the agent interfaces in front of it. The site is a CAP application on SAP HANA Cloud and SAP BTP, open-sourced in full, and the half of the session that places it here is how its content reaches an agent: every tutorial is also served as markdown, a coding agent is detected and given that version instead of the HTML, a well-known agent card advertises what the site offers, and SAP Developers MCP answers questions about tutorials, news and a reader's own completion history in Claude Code and Joule Desktop, over OAuth or a personal access token. Behind the answers sit two things working together: a knowledge graph in the HANA database over 1400 tutorials and 11,000 concepts, and SAP AI Core for the Joule interactions and the embeddings, with the agent harness written for the site rather than taken off a shelf. Where neither MCP nor A2A is available, the same content is published as skills.SAP Developers, published 2026-09-25