BrowseAll ecosystems
Everything in the atlas
144 of 2341
Domain
Signals: Last 6 months
Content
More: 5
Group by: Capability
Liveness Last 6 monthsSource capireSource SAP CommunitySource QiitaSource SAP Architecture CenterSource SAP BTP AI Best PracticesClear all
EntryBySignalsLast activity
September 15th: What's New on developers.sap.comSeptember 15th: What's New on developers.sap.comThomas Jung walks through a week of changes aimed at agentic consumption of developers.sap.com itself: the hosted MCP server gains a published .well-known/mcp.json manifest, curated tools (search_tutorials, get_tutorial_step with a Markdown format option, search_channels), and a listing in the ORD catalog beside its OData, REST and GraphQL APIs. It also documents the site's existing A2A endpoint for the first time and ships a way to turn a tutorial into an installable, cryptographically signed AI Skill with a generated verification script, both concrete instances of agent tooling; separately, five broken GraphQL example queries were fixed and the full SDL is now served, and new sitemap.md, llms.txt fixes and ORD entries round out the site's own metadata publishing.published 2026-09-15
How to rename an OData V4 service?How to rename an OData V4 service?Renaming an OData V4 service binding changes its Service Alias and the resulting service URL, breaking any app already deployed against the old one — shown on a /DMO/TRAVEL-based example in the SAP BTP ABAP environment by unpublishing, renaming and republishing the binding, then reading the new URL back from the OData V4 service catalog's ServiceGroups entry. It weighs that against two alternatives: adding a second service definition and publishing it as a new service version under the same binding, or creating an entirely new service definition and binding, which keeps the original URL live during the cutover.published 2026-07-04
September 15th: What's New on developers.sap.comSeptember 15th: What's New on developers.sap.comThomas Jung walks through a week of changes aimed at agentic consumption of developers.sap.com itself: the hosted MCP server gains a published .well-known/mcp.json manifest, curated tools (search_tutorials, get_tutorial_step with a Markdown format option, search_channels), and a listing in the ORD catalog beside its OData, REST and GraphQL APIs. It also documents the site's existing A2A endpoint for the first time and ships a way to turn a tutorial into an installable, cryptographically signed AI Skill with a generated verification script, both concrete instances of agent tooling; separately, five broken GraphQL example queries were fixed and the full SDL is now served, and new sitemap.md, llms.txt fixes and ORD entries round out the site's own metadata publishing.published 2026-09-15
A Guide to CDS Metadata Extensions, Fiori App Generation and SAP UI5 Controller ExtensionsA Guide to CDS Metadata Extensions, Fiori App Generation and SAP UI5 Controller ExtensionsWalks through a RAP-based Fiori elements app end to end: layering UI annotations onto a CDS view through a separate ABAP metadata extension object, gated by @Metadata.allowExtensions on the base view and ordered across extensions by a required @Metadata.layer value. Generates the app in SAP Business Application Studio from the published OData V4 service's merged $metadata document, then adds an SAP UI5 controller extension — registered in manifest.json against a Fiori elements lifecycle hook — only for behaviour the annotations cannot express.ankitapaul229, published 2026-07-27
Adding Immutable Blockchain Proofs to SAP With CAP - Cardano and OData V4Adding Immutable Blockchain Proofs to SAP With CAP - Cardano and OData V4The write-up behind ODATANO, by its author: how a public blockchain gets reachable from CAP as an ordinary OData V4 service rather than through a bespoke client. The premise it starts from is worth the read on its own — SAP systems are trusted but mutable, which is what an immutable anchor is for — and Cardano is chosen for peer-reviewed research and formal methods rather than for popularity. Written as an experiment with feedback invited, not as a recommendation.maxalexweber, published 2026-05-15
From SEGW to @OData.publish: Expose Your CDS View as OData in S/4HANAFrom SEGW to @OData.publish: Expose Your CDS View as OData in S/4HANAWalks through exposing an ABAP CDS view as an OData service in an on-premise S/4HANA system by adding the @OData.publish: true annotation, then registering and activating the generated service in SAP Gateway (transaction /IWFND/MAINT_SERVICE) before testing it with $filter, $top and $count. It sets this against the manual route through transaction SEGW, since the annotation generates the service, its navigation properties and its OData properties straight from the CDS view without a Service Builder project.rupalipunekar1234, published 2026-07-09
How to rename an OData V4 service?How to rename an OData V4 service?Renaming an OData V4 service binding changes its Service Alias and the resulting service URL, breaking any app already deployed against the old one — shown on a /DMO/TRAVEL-based example in the SAP BTP ABAP environment by unpublishing, renaming and republishing the binding, then reading the new URL back from the OData V4 service catalog's ServiceGroups entry. It weighs that against two alternatives: adding a second service definition and publishing it as a new service version under the same binding, or creating an entirely new service definition and binding, which keeps the original URL live during the cutover.published 2026-07-04
The Fourth Way to Go Offline in UI5 (And Why the Service Worker Stays Dumb)The Fourth Way to Go Offline in UI5 (And Why the Service Worker Stays Dumb)Reporting on the UI5Con session run by Viktor Sperling and Lars Kissel, the post proposes a fourth offline architecture for a warehouse scanning app: a service worker kept deliberately ignorant of OData, and a JSONModel/IndexedDB layer that does an explicit download, work, submit cycle, queuing local mutations before posting one $batch with a single changeSet at the end of a session. It also works through the alternative v4.ODataModel change-buffer pattern (updateGroupId, submitBatch) and explains why Fiori elements' annotation-driven, live OData V4 interactions resist offline replay. The session-token and XSRF-expiry problem for long offline periods is named as an open gap rather than solved.Noel_Hendrikx, published 2026-07-15
Building and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and JouleBuilding and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and JouleA hands-on walkthrough of building a native MCP server artifact on SAP Integration Suite's Integration Cell runtime: an API artifact built from an OpenAPI 3.0 specification (the author converted the SAP Business Accelerator Hub's Swagger 2.0 OData spec) through API Management policies, with the MCP artifact's own Authorization policy set to the api.invoke scope for Developer Hub credentials or a custom role such as ESBMessaging.send for BTP OAuth credentials. The same server is then wired to Claude as a custom connector over an OAuth redirect, and to a Joule Studio agent through BTP destinations carrying the sap.mcp.tools.enabled property, with three worked agents (CPI monitoring, a SuccessFactors testing flow, IDoc reprocessing) run from both.Padmanathan_Vijayan, published 2026-09-11
From SEO to MEO: Designing Joule-Ready API Layers for SAP Commerce CloudFrom SEO to MEO: Designing Joule-Ready API Layers for SAP Commerce CloudProposes 'Machine Experience Optimization' (MEO), the author's own term and explicitly not an SAP one, for a governed intent facade in front of SAP Commerce Cloud's OCC APIs so an assistant or a SAP Joule skill gets small, business-oriented operations instead of raw endpoints. Works through a full OpenAPI 3.0.3 contract for a product-search intent, with explicit read/write separation, a short-lived confirmation step and an idempotency key for the consequential 'place order' operation, and authorization checked against account and base-site boundaries rather than at the URL alone. The facade still delegates to Commerce's own services, facades and validation; it does not replace or bypass them.BhardwajAditya, published 2026-09-15
Integration Suite: Building an MCP Server for a SAP CI Monitoring AssistantIntegration Suite: Building an MCP Server for a SAP CI Monitoring AssistantA step-by-step walkthrough of building an MCP Server artifact on SAP Integration Suite's Integration Cell runtime that wraps the Cloud Integration OData Message Processing Logs API, so a client such as Claude Desktop or VS Code can query failed interfaces in natural language instead of clicking through Monitor. It covers importing an OpenAPI 3.0 specification so each operationId becomes a discoverable tool, selecting tools/resources/prompts, and wiring two separate OAuth service keys — one read-only credential the HTTPS adapter uses against the monitoring API, another the MCP client uses to reach the deployed endpoint. The server is deliberately read-only and ships with no rate limiting or audit logging, which the author flags as missing before any write operation or production use.Daggolu_PremSai, published 2026-07-17
No-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentNo-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentWalks through turning a deployed API artifact into a no-code MCP server in SAP Integration Suite's MCP Gateway: the API artifact's OpenAPI spec must be version 3.0.0-3.0.3, since Swagger 2.0 is rejected, and its backend is reached through a BTP Destination using OAuth2ClientCredentials so the agent calling the server never sees the backend secret. The API artifact's own Authorization policy sets an OAuth scope and Trust Upstream MCP Authorization, and the gotcha list traces a 403 on a valid token to that policy rather than to authentication, before the finished MCP server is published through Developer Hub and connected to Claude Code.eddiedu, published 2026-09-15
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI SpecSAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI SpecA tutorial on generating a type-safe client library for the SAP Job Scheduling service's REST API from its OpenAPI specification, using the OpenAPI Generator CLI to target Node.js, TypeScript, Java, Python, Go or C#. It walks through OAuth 2.0 client-credentials authentication and the generated client's Jobs API, listing, creating and reading jobs with their cron schedules, and lists what the service's error statuses (400, 401, 404, 409, 429, 503) mean to a caller. It states that the official @sap/jobs-client will be deprecated and tells readers to use a generated client for now.DenisDuev, published 2026-05-04
ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!Announces the marketplace release of ABAP development tools for Visual Studio Code, an extension that works against any ABAP system already reachable from ADT for Eclipse and is focused on RAP UI service development, so the Fiori/SAPUI5 frontend and the ABAP backend can be built in the same tool. It ships a built-in ADT MCP Server, disabled by default and switched on from the extension settings, and points readers to a documentation template for capturing ABAP-specific rules in a project's AGENTS.md file for chat agents such as Microsoft Copilot.thomasalexander_ritter, published 2026-06-01
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIAgentic AI on BTP: a Multi‑Agent App with Pydantic AISplits a single CAP/TypeScript agent that had grown to juggle five BTP MCP servers behind one bloated tool list into btp-multiagent-app, a Python and Pydantic AI rewrite where the Cloud Foundry and BTP Core MCP servers each get a dedicated specialist agent, with an audit log specialist scaffolded but left disabled, behind an orchestrator whose only tools are delegation calls to those specialists, which is the agent-tooling pattern the piece works through. Each specialist authenticates to its MCP server over Streamable HTTP with OAuth 2.1, and a shared module centralises the SAP AI Core GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integration side of the rewrite. Tool lists per agent drop from well over a hundred to a dozen or two, and routing failures become separable from tool-misuse failures by reading the trace.published 2026-05-03
Agentic AI on BTP: a Single Agent with LangGraphAgentic AI on BTP: a Single Agent with LangGraphA CAP TypeScript agent puts a LangGraph StateGraph in front of AzureOpenAiChatClient from @sap-ai-sdk/langchain, reaching SAP AI Core's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP servers — OData MCP Proxy, CI MCP Server, AI Core MCP Server, BTP MCP Server and BTP CF MCP Server — through @langchain/mcp-adapters' MultiServerMCPClient. Because agent, servers and APIs share one XSUAA tenant, the chat service forwards the signed-in user's own JWT instead of a service account, so each downstream server enforces that user's own authorizations. Past roughly a hundred combined tools the single prompt slows down and stops separating concerns, which is why the author's next post splits it into one specialist agent per MCP server behind an orchestrator.published 2026-05-03
AI-native North Star architecture — Platform LayerAI-native North Star architecture — Platform LayerThe platform layer of SAP's North Star architecture, the chapter that says where agents run and what a developer builds them with. It names an AI Golden Path built on the SAP Cloud Application Programming Model, the ABAP Cloud development model with RAP and the SAP Fiori design system, and a managed agent runtime on SAP BTP that is designed to provide software development kits for building agents in any framework, an agent sandbox, container-hosted execution, a skills registry and continuous evaluations, which is the ground agent tooling covers. Agents are extended without changing their code through four patterns, the first of them tool extensibility through the Model Context Protocol, the concern MCP servers is named for; the process-layer chapter adds that a pro-code path with a standardised agent SDK and a prompt-driven path through the Joule Studio solution produce the same code artifact on the same runtime. It describes a design SAP intends rather than products that exist, and the SDK and the registry it names have no entry here yet.published 2026-05-13
AI-native North Star architecture — Platform Layer
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A reference.
API Composition: Seamless Enterprise Data Access for Developers and AI AgentsAPI Composition: Seamless Enterprise Data Access for Developers and AI AgentsAPI Composition (formerly Graph, a capability of API Management) curates business data graphs from existing SAP and non-SAP API providers, so a query can navigate and expand relationships across systems through one composed API rather than hand-written integration code. Palak walks through combining SAP S/4HANA warehouse-stock data with Everstream Analytics risk data into one API, then exposing that composed API as an MCP server so an AI agent calls it with the same semantic context — the scenario behind API Management's MCP servers coverage.published 2026-07-27
Building and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and JouleBuilding and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and JouleA hands-on walkthrough of building a native MCP server artifact on SAP Integration Suite's Integration Cell runtime: an API artifact built from an OpenAPI 3.0 specification (the author converted the SAP Business Accelerator Hub's Swagger 2.0 OData spec) through API Management policies, with the MCP artifact's own Authorization policy set to the api.invoke scope for Developer Hub credentials or a custom role such as ESBMessaging.send for BTP OAuth credentials. The same server is then wired to Claude as a custom connector over an OAuth redirect, and to a Joule Studio agent through BTP destinations carrying the sap.mcp.tools.enabled property, with three worked agents (CPI monitoring, a SuccessFactors testing flow, IDoc reprocessing) run from both.Padmanathan_Vijayan, published 2026-09-11
Building MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectBuilding MCP Servers with SAP Integration Suite: What to Design, Not Just How to ConnectArgues that the tool design, not the connection, is the hard part of putting an API in front of an agent. Works one request — create a customer — through eight endpoint-shaped tools, where the agent carries ids between calls and rebuilds the business rules each run, then through a single intent-shaped create_customer that hides the sequence; and says what separates the two: a business operation for a name, parameters a caller can supply without a lookup, the rules in the server rather than the prompt, and a description written for an agent choosing a tool. The SAP Integration Suite half is short — three creation paths, an iFlow behind the API artifact when a tool has to cross systems — and it closes on a checklist to run before publishing.published 2026-07-07
Connecting a Custom MCP Server to Joule Work Desktop: A Seamless and Secure Authentication FlowConnecting a Custom MCP Server to Joule Work Desktop: A Seamless and Secure Authentication FlowWalks through connecting a custom MCP server to Joule Work Desktop: a Dynamic Client Registration handshake (RFC 7591) followed by an Authorization Code + PKCE flow through the organisation's SSO via XSUAA or IAS, so authentication establishes the human identity that Joule then attaches to every subsequent tool call. That forwarded identity lets the BTP backend apply its existing authorization checks and row-level data filtering instead of a second permission model, and a role change in XSUAA revokes access on the next token refresh.published 2026-08-17
Expose RFCs as MCP Tools in Integration SuiteExpose RFCs as MCP Tools in Integration SuiteWalks through creating an MCP server in SAP Integration Suite from an RFC source: an on-premise RFC destination labelled for Integration Cell inclusion, a search over the backend's function modules (minimum seven characters), and up to 50 selected modules each becoming a tool. Covers the resulting server's configuration (Source, Tools and Prompts, with no Resources section for this source) and the two scopes an RFC-based server's policy adds beyond an API-sourced one, API.invoke and ESBMessaging.send, plus the RFC receiver adapter used at runtime. Demonstrates the flow with a purchase-order scenario where an AI client calls BAPI_PO_CREATE1 and BAPI_PO_GETDETAIL1 as MCP tools.ronit199666, published 2026-09-24
Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsExpose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsA step-by-step walkthrough that wraps SAP S/4HANA Cloud's Outbound Delivery OData v2 API in a CAP Node.js service and exposes it through @cap-js/mcp, so an MCP client can list the generated tools, query the delivery entities and call a custom createDelivery action over JSON-RPC. The remote S/4HANA connection is configured two ways in package.json: direct Basic Authentication credentials for local hybrid testing, and a named BTP destination for the app once deployed to Cloud Foundry.Jacky_Liu1, published 2026-07-29
Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsExpose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsA CAP Node.js service imports the S/4HANA Cloud Outbound Delivery OData v2 API's EDMX metadata with cds import, proxies its reads and a custom createDelivery action against it, and annotates the service @protocol: ['odata-v4', 'mcp'] with @cap-js/mcp's per_action_tool setting on, so the custom action gets its own MCP tool rather than one generic call_action. It tests the result with raw JSON-RPC tools/list and tools/call requests before deploying to SAP BTP, Cloud Foundry Runtime.Jacky Liu, published 2026-07-29
From Dashboard to Conversational AI in Minutes: Adding MCP to an Existing CAP ApplicationFrom Dashboard to Conversational AI in Minutes: Adding MCP to an Existing CAP ApplicationA walkthrough of adding @cap-js/mcp to an existing CAP service behind the SuccessFactors Localization Dashboard: two annotations (@odata, @mcp) expose the service over MCP beside its existing OData endpoint, and doc comments added to the 18 entities and their fields are surfaced through the describe tool so a querying model gets business context instead of bare field names. During local development cds watch auto-registers the endpoint in ~/.claude.json, and the author connects the same endpoint to Joule Work Desktop as an MCP connector so users can ask coverage questions in natural language.i533678, published 2026-08-24
From SAP Integration Suite iFlow to MCP Tools: Exposing OData APIs to AI AgentsFrom SAP Integration Suite iFlow to MCP Tools: Exposing OData APIs to AI AgentsBuilds an MCP Server artifact inside SAP Integration Suite's Integration Cell runtime that fronts a Northwind OData V4 API through a Cloud Integration iFlow, turning each OpenAPI operation into a tool an agent can call. Walks through the OAuth2 client-credentials flow against XSUAA and the authorization policy scope — ESBMessaging.send in place of the default API.invoke — that gates access to the MCP server, then tests the server from Claude Code.published 2026-07-14
From SAP Sales and Service Cloud V2 APIs to AI: Building an MCP Server with CAP Node.jsFrom SAP Sales and Service Cloud V2 APIs to AI: Building an MCP Server with CAP Node.jsA step-by-step CAP Node.js walkthrough that wraps the SAP Sales Cloud V2 Case API as a remote service, then exposes the resulting service over both OData V4 and MCP through a single @protocol: ['odata-v4', 'mcp'] annotation together with @cap-js/mcp's per_action_tool setting. Each CDS action — listCases, getCaseById, createCase, patchCase — becomes its own MCP tool served at /mcp/caseservices, discoverable through tools/list and invoked from a natural-language request.pvsbprasad, published 2026-08-31
Governance at Scale: Why a Clean Core Is What Makes Agent Governance EnforceableGovernance at Scale: Why a Clean Core Is What Makes Agent Governance EnforceableClosing a six-part clean-core series, the post argues that SAP's two agentic-AI governance mechanisms only work against a documented tool surface: MCP Gateway in SAP Integration Suite auto-translates API specifications into MCP tool schemas augmented with natural-language semantics, carrying forward existing authentication, authorization and rate limiting into the agentic layer, while AI Agent Hub, built on SAP LeanIX, discovers and runs verification assessments on agents, LLMs and MCP servers before the resulting badge is read by Joule Studio or SAP Integration Suite to decide what is trusted. Its argument holds the mechanisms up against an undocumented internal interface, where the auto-generated schema and the verification badge have nothing real underneath them, and against a consolidated CAP service exposing only released APIs, where both do.DEEPA_DORAIRAJ, published 2026-09-21
HANA AI Toolkit — Local MCP ServerHANA AI Toolkit — Local MCP ServerAn MCP server that turns the hana-ml Python library into governed tools an agent can call against a HANA Cloud instance, shipped in the hana-ai toolkit and exposed over stdio, SSE and streamable HTTP. Its one firm rule is attributable execution: an audit module writes the MCP-side identity — agent, model, session, tool, redacted arguments — into the HANA connection before any SQL runs, and fails the call if that write fails. A worked example of governance on an MCP tool surface, from SAP's data side rather than CAP's.published 2026-06-15
Integration Suite: Building an MCP Server for a SAP CI Monitoring AssistantIntegration Suite: Building an MCP Server for a SAP CI Monitoring AssistantA step-by-step walkthrough of building an MCP Server artifact on SAP Integration Suite's Integration Cell runtime that wraps the Cloud Integration OData Message Processing Logs API, so a client such as Claude Desktop or VS Code can query failed interfaces in natural language instead of clicking through Monitor. It covers importing an OpenAPI 3.0 specification so each operationId becomes a discoverable tool, selecting tools/resources/prompts, and wiring two separate OAuth service keys — one read-only credential the HTTPS adapter uses against the monitoring API, another the MCP client uses to reach the deployed endpoint. The server is deliberately read-only and ships with no rate limiting or audit logging, which the author flags as missing before any write operation or production use.Daggolu_PremSai, published 2026-07-17
MCP Server for SAP Incentive ManagementMCP Server for SAP Incentive ManagementA proof of concept putting SAP Incentive Management behind MCP so an agent can reach it, spanning the server, the backing APIs and SAP Advanced Workflow. The post opens with an unusually explicit disclaimer — personal capacity, no organisation's architecture or policies represented, and any real implementation needing customer and SAP review first — which is itself the useful part of reading it: it is a shape to think with, not a design to deploy.published 2026-07-16
MCP Servers are the New Z-TablesMCP Servers are the New Z-TablesA single CAP service exposed as three overlapping MCP servers tools, queried by the same prompt nineteen times, returned the same tool every time — evidence, the author argues, that tool selection rests on the resemblance between a prompt and a tool's description rather than on any binding a where-used list could enumerate before retiring it. It contrasts that setup with @cap-js/mcp, which exposes a whole service as three generic tools instead of one per operation, and quotes the adapter's own beta documentation admitting no rate limiting, audit logging, input validation or approval workflow, and no use as a gateway to SAP Application APIs. From there it names four small Tool governance practices it has adopted: an owner recorded in the tool's own metadata, logging every invocation, deprecating inside the description, and exposing fewer tools.published 2026-08-21
MCP Servers on SAP Integration Suite : Build Your First MCP Server from an APIMCP Servers on SAP Integration Suite : Build Your First MCP Server from an APIWalks through building an MCP server on SAP Integration Suite from an existing managed API — SAP S/4HANA's Purchase Order API — rather than from an HTTP endpoint or an RFC, which the same creation wizard supports but a later post in the series is left to cover. Selected API operations become MCP Tools with generated input and output schemas, the server inherits its Authentication policy from the source API, and a Process Integration Runtime service instance supplies the OAuth credentials an external client needs to invoke it. Ends by connecting the deployed server to Cline in VS Code and having it chain tool calls to answer a natural-language purchase-order query.published 2026-07-15
Natural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesNatural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesThe division of labour is the argument, and it is in the subtitle: the model turns English into a CDS query and CDS runs it, so nothing generates SQL and nothing hallucinates a join. Schema annotations do the resolving. Long, with the package, the repository and the MCP registry entry all linked.Shahid, published 2026-06-25
No-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentNo-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentWalks through turning a deployed API artifact into a no-code MCP server in SAP Integration Suite's MCP Gateway: the API artifact's OpenAPI spec must be version 3.0.0-3.0.3, since Swagger 2.0 is rejected, and its backend is reached through a BTP Destination using OAuth2ClientCredentials so the agent calling the server never sees the backend secret. The API artifact's own Authorization policy sets an OAuth scope and Trust Upstream MCP Authorization, and the gotcha list traces a 403 on a valid token to that policy rather than to authentication, before the finished MCP server is published through Developer Hub and connected to Claude Code.eddiedu, published 2026-09-15
RFC/BAPIs Meet AI Agents: Why SAP Integration Suite MCP Server MattersRFC/BAPIs Meet AI Agents: Why SAP Integration Suite MCP Server MattersExplains that SAP Integration Suite's MCP Server artifact can expose RFC-enabled BAPIs, alongside API artifacts and HTTP endpoints, as MCP tools — letting BAPIs on SAP ECC or on-premise S/4HANA participate in agentic workflows without rewriting business logic or waiting for a full ERP transformation. Frames RFC support as a bridge for organisations still modernising rather than a recommendation to build new RFC-based integrations, and notes the exposed BAPIs inherit the server's existing authentication, rate limiting and IP filtering. A demo built against an SAP ECC backend shows an MCP client discovering and invoking several read-only BAPIs from natural-language prompts, with no custom wrapper code.arunmaarirajha_kv, published 2026-07-28
Running AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverRunning AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverNicolasHernandez recounts building and running, over two years, an MCP server written in plain ABAP behind a single ICF node, for SAP ECC 6.0 and S/4HANA on-premise customers that the ADT MCP Server and SAP Joule for Developers, ABAP AI capabilities do not reach. Authorization runs as the calling user rather than a technical RFC user, a choice forced by a customer security team after an earlier version used a technical RFC user, and a later security review found a display-authority check applied uniformly across every write endpoint. The failure modes that cost the most time sat in RFC connectivity itself: RFC_READ_TABLE's empty-table exception collapsed into a false success, a where-used filter was applied only after the row limit, and BAPI calls treated an empty string and an absent parameter as different, silently wrong inputs.NicolasHernandez, published 2026-08-28
SAP Integration Suite + MCP: A Practical Architecture for AI Agents and SAPSAP Integration Suite + MCP: A Practical Architecture for AI Agents and SAPLays out the runtime chain for exposing S/4HANA APIs to an AI agent through SAP Integration Suite: the agent calls a tool on the MCP Gateway, which is built from a governed API Artifact, which still runs on Cloud Integration for mapping, routing and error handling before reaching the backend. It states that the API-artifact approach requires the Integration Cell runtime rather than the normal CPI message-processing runtime, an OAuth-secured REST or OData artifact on OpenAPI 3.0.0-3.0.3, and an entitlement that is service-plan dependent (citing SAP Note 2903776) — so the architecture question is whether the landscape already has the right MCP entitlement, runtime and API foundation.aayushaggarwal, published 2026-09-02
SAP Just Became AI-Agent Ready — Here's a Step-by-Step MCP WalkthroughSAP Just Became AI-Agent Ready — Here's a Step-by-Step MCP WalkthroughBuilds an MCP Server on SAP Integration Suite's Integration Cell, in front of a Cloud Integration flow that passes an OData V4 backend through untouched, with three tools generated from an OpenAPI spec. Secures it with OAuth 2.0 on SAP BTP client_credentials against XSUAA, and walks through the scope mismatch — the service key issues ESBMessaging.send, not the server's default API.invoke — that returns 403 until corrected; the finished server is then registered as a tool in Claude Code.published 2026-09-04
SAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenSAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenReading SAP's API Policy v.4.2026a and its FAQ against the reference architectures, the piece narrows the widely repeated claim that SAP bans AI to what Section 2.2.2 actually restricts: an agent planning and chaining API calls outside an SAP-endorsed route, closed off further by Section 3's block on bypassing API Controls through custom code. It compares the endorsed and allowed paths — the MCP Gateway on SAP Integration Suite reaching S/4HANA and ECC through RFC-based back ends under a 15-tool, 200,000-token limit, SAP-provided MCP servers through Joule Studio, the A2A protocol, customer-operated MCP servers allowed under FAQ Question 56, and the ADT MCP Server, whose 18 tools work only on development artifacts and are documented as not intended for productive use. It leaves open whether Section 2.2.2 covers ABAP code that calls a model from inside the system, since enforcement is defined at the API-traffic level rather than by a list of tools.published 2026-08-31
September 15th: What's New on developers.sap.comSeptember 15th: What's New on developers.sap.comThomas Jung walks through a week of changes aimed at agentic consumption of developers.sap.com itself: the hosted MCP server gains a published .well-known/mcp.json manifest, curated tools (search_tutorials, get_tutorial_step with a Markdown format option, search_channels), and a listing in the ORD catalog beside its OData, REST and GraphQL APIs. It also documents the site's existing A2A endpoint for the first time and ships a way to turn a tutorial into an installable, cryptographically signed AI Skill with a generated verification script, both concrete instances of agent tooling; separately, five broken GraphQL example queries were fixed and the full SDL is now served, and new sitemap.md, llms.txt fixes and ORD entries round out the site's own metadata publishing.published 2026-09-15
The Easiest Way to Expose a CAP Node.js Project as an MCP ServerThe Easiest Way to Expose a CAP Node.js Project as an MCP ServerFrom cds init to a running MCP server in a handful of steps, ending at the MCP Inspector so the result is something you can see rather than something you have to trust. The claim it makes for the plugin is the absence of work: no REST wiring by hand, the CAP application exposed as a server because the package is installed. A walkthrough rather than an argument — the reasoning about what should be exposed lives elsewhere.Jacky Liu, published 2026-07-03
Turn SAP APIs into MCP Tools for AI Agents using SAP Integration Suite Free TrialTurn SAP APIs into MCP Tools for AI Agents using SAP Integration Suite Free TrialWalks through building an MCP server on SAP Integration Suite's free trial from an existing API artifact — the Business Partner API against a public S/4HANA Cloud sandbox — rather than from an HTTP endpoint with an OpenAPI specification or from RFC-enabled function modules, the creation wizard's other two source types, left unexplained here. Covers the API artifact's Content Modifier policy that injects the Business Accelerator Hub API key before the backend call, and the "Trust Upstream MCP Authorization" setting that lets the MCP server delegate authorization checks to that source API instead of duplicating them. Ends by fetching an OAuth token from a Process Integration Runtime service key and pointing an MCP client at the deployed server over streamable HTTP.published 2026-07-13
What's new in SAP Cloud Application Programming Model – September 2026What's new in SAP Cloud Application Programming Model – September 2026The September 2026 release turns CAP services into A2A-callable agents through the new @cap-js/agents plugin, which generates MCP tools from a service's entities and actions, adds an @agent.hitl approval gate and can read an AGENTS.md/SKILL.md pair for custom behaviour. The @cap-js/mcp plugin for Node.js and com.sap.cds:cds-adapter-mcp for Java reach general availability, serving describe, query and call tools over existing CAP authentication and authorisation. It also names capire/skills, SAP's curated skill library that teaches coding agents current CAP practice.published 2026-09-24
Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149Reads SAPUI5 1.149's framework source, not its release notes, to show Fiori Elements shifting side-effect refresh, AI field placeholders and multi-user drafting from controller extensions into what the backing service annotates. Event-driven SideEffects push over a WebSocket channel through @cap-js-community/websocket, while Draft handling gains ABAP RAP's live field locking on CAP Node.js through Sören Leibach's own cap-collaborative-draft plugin. Both rest on Fiori annotations such as Common.SideEffects and CollaborativeDraft.enabled, which the frontend reads rather than requiring a manifest flag.published 2026-07-09
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
SAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsSAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsTwo years of production SAP Datasphere integrations across SAP and non-SAP sources, settling on Replication Flows over remote access for high-volume Finance analytics because remote queries added latency at query time, then tuning the copy with Datasphere-side partitioning, source-side CDS view optimisation and Cloud Connector sizing. For file-based and Kafka sources, SAP Integration Suite iFlows did work a direct connection could not — flattening nested JSON, PGP decryption and orchestrating the SAP Ariba extraction built on SAP's own BTP Procurement Data Extractor content.saikrishna_kalivarapu2, published 2026-08-17
A method to create an Adobe form attachment for a work item using the class concept.A method to create an Adobe form attachment for a work item using the class concept.Walks through an ABAP workflow class, ZCL_WF_PDF, whose methods call an Adobe form through a Form-Builder-generated function module, convert the returned PDF between hexadecimal string and binary with SCMS_XSTRING_TO_BINARY and SCMS_BINARY_TO_XSTRING, and attach it to a work item via SAP_WAPI_ATTACHMENT_ADD and SAP_WAPI_WRITE_CONTAINER, with the class, background-task and SWDD workflow steps shown in full. It explains document output's ABAP route, rendering a PDF through the Form Builder and getting it back into the program, and a route into attachments's ABAP side distinct from Generic Object Services: a file attached to an SAP Business Workflow work item instead.Mithun_Sharma1, published 2026-08-21
CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry is a prototype that generates a CAP Node.js project with SAP Fiori elements from a written business requirement, discovering the actual data shape from a chosen source — SQLite, a configured SAP HANA HDI container, offline EDMX, live OData through the SAP Destination service, or approved SAP BTP ABAP objects — instead of inventing one. The generated application can carry a Fiori draft lifecycle with optimistic concurrency via ETags and annotation-driven Fiori elements list and object screens, localized independently of the underlying service contract. Attachments can be added with upload, download and delete, gated on a malware-scan status, and the generated project still has to compile, build and pass its generated tests before the run is accepted.Shahid, published 2026-08-20
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
Transforming Enterprise Data Strategy with SAP Business Data CloudTransforming Enterprise Data Strategy with SAP Business Data CloudSAP's layered picture of SAP Business Data Cloud, from lake storage and compute up to a knowledge core and agents, with eight sub-pages that each work one part through. The data products page is the cataloguing and lineage part: datasets described by Open Resource Discovery metadata, listed in the BDC catalog and shared over Delta Sharing to SAP Databricks and SAP HANA Cloud, with SAP Datasphere as a consumer on the intelligent content page; other pages install intelligent content, bring SAP BW data in through the Data Product Generator, provision groups by SCIM from Cloud Identity Services into SAP Databricks, which is identity provisioning, and train predictive models in SAP Databricks that SAP AI Core then serves for batch and real-time scoring. The main page states direction more than mechanism, and the BW page marks SQL Share for derived and OData for analytical data products as to be available.published 2026-05-12
Handling Concurrent Updates in SAP CAP JavaHandling Concurrent Updates in SAP CAP JavaAlice and Bob open the same employee record; Bob saves last and quietly erases Alice's change. The lost-update problem stated concretely and then answered in CAP Java, which is the only entry here on the subject — hence the capability.Anjali_Pathak, published 2026-05-26
Federating, Replicating, and Caching Remote Data in CAP — Part 2Federating, Replicating, and Caching Remote Data in CAP — Part 2The practical half of the pair. Where Part 1 sets out the terminology, what CAP does out of the box and where the gaps are, this one builds a small application that federates, replicates and caches remote data, one step at a time, with the finished project published as sales-cockpit so a reader can either follow along or start from the end. It began as a twenty-minute reCAP talk, which the author says was only room for the intro.published 2026-07-17
Beyond READ_TEXT: Decoding SAPscript Long Texts (STXL) with SQLScript in CDS/AMDPBeyond READ_TEXT: Decoding SAPscript Long Texts (STXL) with SQLScript in CDS/AMDPSTXL stores a SAPscript long text as a compressed ABAP cluster container — LZ77 plus canonical Huffman — so the only official reads are READ_TEXT, one call per text, and its mass variant READ_TEXT_TABLE, both of which ship every decompressed line to the application server and stay invisible to ABAP CDS. The author reverse-engineered that on-disk format and ported the decoder into SQLScript, wrapped in an AMDP procedure and exposed through CDS table functions, turning long texts into a joinable, filterable column read directly in the database. On ABAP 7.56 a table function needs the driver-and-filter pattern shown because a parameter cannot bind to a calling column; on ABAP 7.58/S/4HANA 2023 the same result becomes a parameter-less CDS scalar function with true filter push-down.aamelin1, published 2026-08-20
Deep Insert in SAP CAPM Using Composition and Fiori ElementsDeep Insert in SAP CAPM Using Composition and Fiori ElementsParent and children created in one transaction, which composition already gives you in the model — the post is about what Fiori elements does with it, and what the payload looks like when the UI sends both at once.published 2026-05-22
From SEGW to @OData.publish: Expose Your CDS View as OData in S/4HANAFrom SEGW to @OData.publish: Expose Your CDS View as OData in S/4HANAWalks through exposing an ABAP CDS view as an OData service in an on-premise S/4HANA system by adding the @OData.publish: true annotation, then registering and activating the generated service in SAP Gateway (transaction /IWFND/MAINT_SERVICE) before testing it with $filter, $top and $count. It sets this against the manual route through transaction SEGW, since the annotation generates the service, its navigation properties and its OData properties straight from the CDS view without a Service Builder project.rupalipunekar1234, published 2026-07-09
Automate Recurring Data Updates in SAP HANA CloudAutomate Recurring Data Updates in SAP HANA CloudA walkthrough for marking inventory rows stale after 30 days using SAP HANA Cloud's own scheduler: a SQLScript procedure, a CREATE SCHEDULER JOB statement with its 7-field cron pattern, the M_SCHEDULER_JOBS monitoring view, and the matching DROP statements to remove both. It then names where that approach stops and lists the alternatives for scheduling outside the database: SAP Integration Suite's Timer Event, the SAP Job Scheduling service, SAP Automation Pilot for infrastructure commands, and a custom approach for triggering scheduled REST calls from an application.Joni, published 2026-06-11
Building an SAP BTP Agent Architecture from Scratch: Python + CAP + HANABuilding an SAP BTP Agent Architecture from Scratch: Python + CAP + HANAA first-person build log of a Flask orchestrator on Cloud Foundry that reduces a question to keywords, searches a Node.js service's Documents entity, and passes what it finds to Claude for a grounded answer. Getting there means learning that HANA's fuzzy .search() matches one word but not a full sentence, fixed by splitting the query into terms and merging the per-term hits, and that provisioning SAP HANA Cloud hits a database-level free-tier quota rather than an HDI-container one, with a stopped instance needing to be resumed first. It also covers @sap/cds-dk needing to sit in dependencies rather than devDependencies, since Cloud Foundry's buildpack skips the latter, before cds deploy --to hana can run as part of the push.neilaspin, published 2026-07-28
CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry is a prototype that generates a CAP Node.js project with SAP Fiori elements from a written business requirement, discovering the actual data shape from a chosen source — SQLite, a configured SAP HANA HDI container, offline EDMX, live OData through the SAP Destination service, or approved SAP BTP ABAP objects — instead of inventing one. The generated application can carry a Fiori draft lifecycle with optimistic concurrency via ETags and annotation-driven Fiori elements list and object screens, localized independently of the underlying service contract. Attachments can be added with upload, download and delete, gated on a malware-scan status, and the generated project still has to compile, build and pass its generated tests before the run is accepted.Shahid, published 2026-08-20
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorConnect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorAn end-to-end route from a CAP Node.js application on Cloud Foundry to a PostgreSQL database that is never made publicly reachable, over BTP Connectivity and the Cloud Connector using a TCP destination and SOCKS5. The part worth having is that it covers the deployer as well as the server: the generated PostgreSQL deployer has to reach the same private database to deploy the CDS model, and a guide that only connects the runtime leaves you with a schema you cannot install.Kalaikovan, published 2026-08-07
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]The first of six, and it does the thing the later parts depend on: build the Incident Management application against SQLite on a laptop, with no cloud database in sight. The series is called decoupled because the front end and the back end are deployed separately, and this part is entirely the back end.sanjucs, published 2026-05-06
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-1]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe, Runnable code.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-3]The cloud database appears: a HANA Cloud instance created on BTP and mapped to a Cloud Foundry space. No application code — this is the part where the platform has to be right before the next part can connect to it.sanjucs, published 2026-05-08
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]The switch from SQLite to HANA and the first deploy of the back end to Cloud Foundry — the point in the series where the persistence stops being a file and the build starts producing HDI artifacts.sanjucs, published 2026-05-12
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Explore your Hyperscaler data with SAP Business Data CloudExplore your Hyperscaler data with SAP Business Data CloudSAP's map of the ways data held on hyperscaler and partner platforms is joined with SAP data in SAP Business Data Cloud, with a sub-page each for AWS, Azure, Google Cloud, Databricks and Snowflake. It sets four modes side by side: BDC Connect shares data products in both directions over the Delta Sharing protocol from the object store layer, while in the SAP Datasphere layer federation reads remote tables in place, Replication Flows copy SAP data out to stores such as Amazon S3 or Google BigQuery, and Data Flows import files and transform them into Datasphere tables, the last three being the ground loading a warehouse covers. The Snowflake and BigQuery connectors are dated to 2026 releases, and a closing page lists what slows federation, from source and tenant in different regions to queries that do not filter and aggregate at the source.published 2026-05-08
SAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsSAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsTwo years of production SAP Datasphere integrations across SAP and non-SAP sources, settling on Replication Flows over remote access for high-volume Finance analytics because remote queries added latency at query time, then tuning the copy with Datasphere-side partitioning, source-side CDS view optimisation and Cloud Connector sizing. For file-based and Kafka sources, SAP Integration Suite iFlows did work a direct connection could not — flattening nested JSON, PGP decryption and orchestrating the SAP Ariba extraction built on SAP's own BTP Procurement Data Extractor content.saikrishna_kalivarapu2, published 2026-08-17
Connecting Two SAP CAP Projects Without Duplicating Your DataConnecting Two SAP CAP Projects Without Duplicating Your DataCross-container HDI synonyms, argued from the alternatives rather than presented as a recipe: copying the table, standing up an API, or hard-coding the values are the three things the author reports seeing teams do, and each is named as working but unclean. With synonyms in place the consuming project queries the owner's HANA tables through ordinary SQL and ordinary CAP service code, with no replication and nothing to drift between environments. Covers the same ground as Mio Yasutake's 2021 post from a different angle — that one enumerates four topologies, this one argues for one of them.Inderpreet, published 2026-07-08
SAP Developer New, July 3rd 2026SAP Developer New, July 3rd 2026A "Did You Know" segment in this SAP Developer News video walks through schema evolution: CAP's ability to add a new field to an entity, or make a compatible change to an existing one, then redeploy the model with no data loss or manual migration. The rest of the July 2026 episode covers that month's Developer Challenge, a SAP HANA Cloud Q2 release announcement and a UI5 survey call, none explained in substance here.published 2026-07-02
Building an SAP BTP Agent Architecture from Scratch: Python + CAP + HANABuilding an SAP BTP Agent Architecture from Scratch: Python + CAP + HANAA first-person build log of a Flask orchestrator on Cloud Foundry that reduces a question to keywords, searches a Node.js service's Documents entity, and passes what it finds to Claude for a grounded answer. Getting there means learning that HANA's fuzzy .search() matches one word but not a full sentence, fixed by splitting the query into terms and merging the per-term hits, and that provisioning SAP HANA Cloud hits a database-level free-tier quota rather than an HDI-container one, with a stopped instance needing to be resumed first. It also covers @sap/cds-dk needing to sit in dependencies rather than devDependencies, since Cloud Foundry's buildpack skips the latter, before cds deploy --to hana can run as part of the push.neilaspin, published 2026-07-28
Understanding Fuzzy Search in SAP Fiori ApplicationsUnderstanding Fuzzy Search in SAP Fiori ApplicationsExplains SAP HANA Enterprise Search's fuzzy, relevance-ranked matching behind Fiori's global search bar, its exact-match Search Query Syntax operators, and how a CAP CDS project on @sap/cds tunes the gap between them with @cds.search and @Search.fuzzinessThreshold, shown on a Contracts entity's contractNumber field. Raising the threshold to 0.95 narrows that field to near-exact matches for structured identifiers such as contract numbers, while an unset field keeps HANA's default (~80%) fuzziness for broader free-text discovery.Ruchi5, published 2026-07-27
Mastering Internal Actions in SAP RAP: Automatic Header Calculation in ABAP CloudMastering Internal Actions in SAP RAP: Automatic Header Calculation in ABAP CloudWalks through a sales-order BDEF where an item-level determination triggers a header-only internal action by EML in local mode, so a quantity or price change recalculates the order total and applies a 10% discount above $10,000 without a UI button or external OData call reaching the logic directly. Argues for an internal action over inline determination code on reusability and separation of concerns: a determination decides when logic runs, the action decides what runs, and marking it internal keeps Fiori Elements and external OData clients from invoking it.sharathtm, published 2026-08-06
CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry is a prototype that generates a CAP Node.js project with SAP Fiori elements from a written business requirement, discovering the actual data shape from a chosen source — SQLite, a configured SAP HANA HDI container, offline EDMX, live OData through the SAP Destination service, or approved SAP BTP ABAP objects — instead of inventing one. The generated application can carry a Fiori draft lifecycle with optimistic concurrency via ETags and annotation-driven Fiori elements list and object screens, localized independently of the underlying service contract. Attachments can be added with upload, download and delete, gated on a malware-scan status, and the generated project still has to compile, build and pass its generated tests before the run is accepted.Shahid, published 2026-08-20
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorConnect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud ConnectorAn end-to-end route from a CAP Node.js application on Cloud Foundry to a PostgreSQL database that is never made publicly reachable, over BTP Connectivity and the Cloud Connector using a TCP destination and SOCKS5. The part worth having is that it covers the deployer as well as the server: the generated PostgreSQL deployer has to reach the same private database to deploy the CDS model, and a guide that only connects the runtime leaves you with a schema you cannot install.Kalaikovan, published 2026-08-07
Connect SAP CAP (Node.js) to On-Premise/Private PostgreSQL using SAP Cloud Connector
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Creating an SAP SD Billing Document Using a BAPI in SAP Build and Accessing It Through 'Joule Work'Creating an SAP SD Billing Document Using a BAPI in SAP Build and Accessing It Through 'Joule Work'Walks through the two pieces of connectivity a SAP Build Process Automation action needs to call an on-premise BAPI: mapping the virtual host to the internal S/4HANA host in Cloud Connector over the RFC protocol, and creating an RFC-type destination in the BTP cockpit so BAPI_BILLINGDOC_CREATEMULTIPLE becomes a selectable action. The resulting process creates an SD billing document from a sales document number and is reached through SAP Build Work Zone, including from the Joule Work mobile app.MrRaj, published 2026-06-29
Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsExpose S/4HANA Cloud OData API as an MCP Server via CAP Node.jsA step-by-step walkthrough that wraps SAP S/4HANA Cloud's Outbound Delivery OData v2 API in a CAP Node.js service and exposes it through @cap-js/mcp, so an MCP client can list the generated tools, query the delivery entities and call a custom createDelivery action over JSON-RPC. The remote S/4HANA connection is configured two ways in package.json: direct Basic Authentication credentials for local hybrid testing, and a named BTP destination for the app once deployed to Cloud Foundry.Jacky_Liu1, published 2026-07-29
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-5]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-5]The consequence of decoupling: with the back end live on its own Cloud Foundry route, the front end needs a BTP destination to reach it rather than a relative path. Short, and it is the join the architecture creates.sanjucs, published 2026-05-18
No-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentNo-Code MCP Servers with SAP Integration Suite: From REST API to AI AgentWalks through turning a deployed API artifact into a no-code MCP server in SAP Integration Suite's MCP Gateway: the API artifact's OpenAPI spec must be version 3.0.0-3.0.3, since Swagger 2.0 is rejected, and its backend is reached through a BTP Destination using OAuth2ClientCredentials so the agent calling the server never sees the backend secret. The API artifact's own Authorization policy sets an OAuth scope and Trust Upstream MCP Authorization, and the gotcha list traces a 403 on a valid token to that policy rather than to authentication, before the finished MCP server is published through Developer Hub and connected to Claude Code.eddiedu, published 2026-09-15
Principal Propagation from BTP Web App to S/4HANA via SAP Integration SuitePrincipal Propagation from BTP Web App to S/4HANA via SAP Integration SuiteWalks through configuring principal propagation from a BTP web app, through SAP Integration Suite and Cloud Connector, to an on-premise S/4HANA system, so the backend receives calls as the logged-in user rather than a shared service account. The BTP Destination service uses OAuth2JWTBearer to exchange the user's Cloud Identity Services JWT for an Integration Suite token, and the iFlow's OData V2 receiver adapter reaches S/4HANA through Cloud Connector with Principal Propagation authentication. The Cloud Connector Subject Pattern builds the outbound certificate's CN from the token's user_name claim, which is populated from the IAS email rather than the sub claim, so identity resolution on S/4HANA hinges on that email matching a resolvable logon name.Joni, published 2026-07-10
Using RFC Function Modules and BAPIs in SAP Build Process AutomationUsing RFC Function Modules and BAPIs in SAP Build Process AutomationWalks through calling an S/4HANA BAPI (BAPI_BILLINGDOC_CREATEMULTIPLE, to create a billing document) from an SAP Build Process Automation action: mapping the virtual host to the internal system in SAP Cloud Connector over the RFC protocol and exposing the needed function modules, then creating an RFC-type destination in the BTP cockpit with the virtual message server and SMLG logon group. Once those two are in place, SAP Build lists the exposed BAPIs and RFCs for use in an action.MrRaj, published 2026-07-09
A method to create an Adobe form attachment for a work item using the class concept.A method to create an Adobe form attachment for a work item using the class concept.Walks through an ABAP workflow class, ZCL_WF_PDF, whose methods call an Adobe form through a Form-Builder-generated function module, convert the returned PDF between hexadecimal string and binary with SCMS_XSTRING_TO_BINARY and SCMS_BINARY_TO_XSTRING, and attach it to a work item via SAP_WAPI_ATTACHMENT_ADD and SAP_WAPI_WRITE_CONTAINER, with the class, background-task and SWDD workflow steps shown in full. It explains document output's ABAP route, rendering a PDF through the Form Builder and getting it back into the program, and a route into attachments's ABAP side distinct from Generic Object Services: a file attached to an SAP Business Workflow work item instead.Mithun_Sharma1, published 2026-08-21
On‑the‑Fly Excel Download in a RAP Fiori App — No Database Table, No Persistence, Pure CDS + ABAPOn‑the‑Fly Excel Download in a RAP Fiori App — No Database Table, No Persistence, Pure CDS + ABAPBuilds a CDS custom entity backed by an ABAP class that implements IF_RAP_QUERY_PROVIDER and assembles an XLSX workbook at request time — hand-built from Open XML parts with cl_abap_zip for multiple sheets, or in one line via cl_salv_table=>to_xml for one — then streams it to the browser through the @Semantics.largeObject annotation. The same annotation makes Fiori annotations render the field as a download link with no backing database table, trading the usual persisted-blob approach to document output for a file rebuilt fresh on every click.hemanthmj, published 2026-06-18
Clean Core by Design: Event Enablement Cockpit as a Core Integration Enabler in SAP S/4HANAClean Core by Design: Event Enablement Cockpit as a Core Integration Enabler in SAP S/4HANAWalks through wiring an on-premise SAP S/4HANA system into Event Mesh as an event producer, using the Enterprise Event Enablement framework: creating the service instance and its service key, then an RFC destination and OAuth 2.0 client configuration in SPRO so a channel can publish native S/4 business events over AMQP or MQTT. Covers the channel's reconnect and quality-of-service parameters and activating the Event Discovery Service, and notes that SAP ECC needs a third-party add-on for the same events since S/4's native Business Events are not available there.HammadSharif1, published 2026-06-01
Batch File Pickup and Dynamic ZIP Creation in SAP Integration SuiteBatch File Pickup and Dynamic ZIP Creation in SAP Integration SuiteWalks through configuring a Cloud Integration flow that polls an SFTP server for batches of ten files, using a Content Modifier to preserve each file's name and body before appending them into one temporary file. A Router and Poll Enrich step detect when the batch is complete, a General Splitter breaks the combined payload back into individual messages, and a Gather step reassembles them into a dynamically named ZIP archive that keeps the original filenames, before the archive is sent on to a target SFTP server.sahilminhas, published 2026-05-07
Beyond Basic AI Error Handling in SAP CPI - A Rules-First Architecture with HANA Cloud LearningBeyond Basic AI Error Handling in SAP CPI - A Rules-First Architecture with HANA Cloud LearningBuilds a rules-first error-diagnosis pipeline on Cloud Integration in SAP Integration Suite: a Groovy classifier resolves known failures — auth, timeout, malformed payload — deterministically, and only genuinely novel errors reach an LLM through the AI Adapter, after a sanitizer script replaces every payload leaf value with a typed placeholder before it leaves the tenant. SAP HANA Cloud, reached over JDBC, holds a fingerprinted dedup cache and an accumulating table of past diagnoses. It also documents the AI Adapter configuration — Advanced mode, a Bearer-prefixed Secure Parameter, and a connection/processing URL split — needed to reach a non-SAP OpenAI-compatible endpoint, found by the author to be undocumented.Krishna_Karthik, published 2026-06-11
Cloud Integration- Activating Enterprise Messaging Capabilities for JMS Queue - CFCloud Integration- Activating Enterprise Messaging Capabilities for JMS Queue - CFTraces a JMS iFlow deployment failure on Cloud Integration (Cloud Foundry) — ERROR_MISSING_SERVICE_KEY — to the Message Queues (Enterprise Messaging) capability being switched off on the tenant rather than a missing service key, since an edition upgrade does not turn it on by itself. Resolves it by enabling Message Queues under Manage Capabilities, which restarts the tenant, then redeploying the affected iFlows.Pavan_Koppula1, published 2026-07-21
Connecting SAP Integration Suite with SAP Document AI and SAP Business AIConnecting SAP Integration Suite with SAP Document AI and SAP Business AIWalks through a Cloud Integration flow in SAP Integration Suite that pulls PDF purchase orders from a Gmail mailbox, extracts header and line-item fields through SAP Document AI's job-submission and polling API, and validates the result with SAP AI Core's generative AI hub using GPT-5-mini as a quality check rather than the source of the extracted values. Groovy steps combine the Document AI confidence score and the model's score into one figure that routes low-scoring purchase orders to manual review, with no S/4HANA posting performed.subhojitSaha, published 2026-08-24
Intelligent Error Handling in SAP CPI Using AI AdapterIntelligent Error Handling in SAP CPI Using AI AdapterAdds an AI Receiver Adapter to an Exception Subprocess in Cloud Integration, so a failed iFlow sends its captured exception text to an LLM over a chat-completions endpoint and gets back an error summary, cause and resolution for the sender. The walkthrough is concrete about the flow's own mechanics — Security Material for the API key, the adapter's address and request body, a Content Modifier to extract and return the response — which is why it explains Integration flows rather than only the AI feature riding on top of them.Jayesh8909, published 2026-05-21
Managing JMS Queues Programmatically with the new SAP Cloud Integration JMS OData APIManaging JMS Queues Programmatically with the new SAP Cloud Integration JMS OData APIThe new JMS OData API on Cloud Integration exposes MessagingQueues and MessagingMessages entities, letting a client list, inspect, retry and move JMS messages without opening the monitoring UI, from Cloud Integration 7.52.x on Cloud Foundry and 8.41 on the Edge Integration Cell runtime. It works through OAuth 2.0 client-credentials authentication against a Process Integration Runtime service instance, a fixed row cap with time-window slicing used in place of offset paging because queues change between requests, and a consistent OData error envelope for the codes the surface returns.MarcoKoch, published 2026-06-01
Principal Propagation from BTP Web App to S/4HANA via SAP Integration SuitePrincipal Propagation from BTP Web App to S/4HANA via SAP Integration SuiteWalks through configuring principal propagation from a BTP web app, through SAP Integration Suite and Cloud Connector, to an on-premise S/4HANA system, so the backend receives calls as the logged-in user rather than a shared service account. The BTP Destination service uses OAuth2JWTBearer to exchange the user's Cloud Identity Services JWT for an Integration Suite token, and the iFlow's OData V2 receiver adapter reaches S/4HANA through Cloud Connector with Principal Propagation authentication. The Cloud Connector Subject Pattern builds the outbound certificate's CN from the token's user_name claim, which is populated from the IAS email rather than the sub claim, so identity resolution on S/4HANA hinges on that email matching a resolvable logon name.Joni, published 2026-07-10
SAP BTP - CI - Building Open-Source Custom Adapter EventSmartKafka from Zero with SAP ADK - Part IISAP BTP - CI - Building Open-Source Custom Adapter EventSmartKafka from Zero with SAP ADK - Part IIPart II of a series on EventSmartKafka, an open-source Kafka adapter for Cloud Integration in SAP Integration Suite built with the SAP Adapter Development Kit, walks through the runtime behind a custom adapter: how metadata.xml's fields map onto Java Endpoint properties, how the Component class creates the Endpoint, and how the Consumer's doStart() and doPoll() poll Apache Kafka, convert Avro payloads and dispatch the record into the iFlow pipeline. Its central point is that the Kafka offset must be committed only after the pipeline has processed the message successfully, with a worked table of which failure scenarios (missing Confluent magic byte, invalid schema ID, payload over the configured limit) withhold the commit versus let it through, to avoid poison-pill loops and silent message loss. The adapter is published as a community demo and not SAP-certified or production-validated; Part III covers building the SAP ADK project itself.rhviana, published 2026-06-03
SAP BTP - CI - EventSmartKafka - Custom Kafka Adapter - Part V FINALSAP BTP - CI - EventSmartKafka - Custom Kafka Adapter - Part V FINALEventSmartKafka is an open-source Kafka Consumer/Sender adapter for SAP Cloud Integration in SAP Integration Suite, built with the SAP Adapter Development Kit; it reaches Apache Kafka over SASL, SASL_SSL and mutual TLS, with on-premise brokers reached through Cloud Connector. This final release adds Avro-to-JSON/XML conversion, schema registry integration, message recovery by timestamp and Kafka producer support. The author reports the consumer validated past 6.5 million processed messages with zero failures and the producer run continuously for more than 20 hours, with deployment lifecycle testing — deleting, upgrading and redeploying the adapter — showing no runtime interruption.rhviana, published 2026-07-28
SAP BTP - CI - EventSmartKafka - Custom Kafka Adapter From .ESA v1.1.0 - Validated Runtime - Part IVSAP BTP - CI - EventSmartKafka - Custom Kafka Adapter From .ESA v1.1.0 - Validated Runtime - Part IVPart IV of a series on EventSmartKafka, an open-source Kafka Consumer adapter for SAP Cloud Integration in SAP Integration Suite, built with the SAP Adapter Development Kit. The v1.1.0 release adds mutual TLS client-certificate authentication against the broker, fixes an OSGi classloader bug where a redeployed bundle's static registry lost track of a still-open relay socket from the previous classloader (fixed with a JVM-wide System-property registry instead), replaces infinite retry loops on fatal configuration errors with a fail-fast stop, corrects two offset-handling bugs in timestamp-based message recovery, adds a parallel-consumer option, and drops a planned OAuth2 strategy because no tier of the tested broker services (Confluent Cloud, Redpanda Cloud, Aiven) exposed it for testing on a free plan. The author reports the release validated across 3,000,000 messages over four simultaneous listeners (PLAINTEXT, SASL, SASL_SSL, mTLS) on an SAP BTP Trial tenant with zero failures, closing the adapter's Consumer side before a planned Producer adapter.rhviana, published 2026-06-29
SAP BTP - CI - How I Built an Open-Source Enterprise Custom Kafka Adapter from Scratch - Part ISAP BTP - CI - How I Built an Open-Source Enterprise Custom Kafka Adapter from Scratch - Part IPart I of a series on EventSmartKafka, an open-source Apache Kafka adapter the author built with the SAP Adapter Development Kit to extend SAP Cloud Integration in SAP Integration Suite past the standard adapter's offset management, security options and Avro handling. It covers the architecture: granular offset control via seek(), a security UI that switches between SASL, mutual TLS and OAuth profiles, native Avro-to-JSON/XML conversion against a Schema Registry, configurable resilience policies, and on-premise reach through Cloud Connector. The adapter already runs against a live Confluent Cloud Kafka topic in a real tenant; the source code follows from Part II onward.rhviana, published 2026-05-29
SAP BTP - CI - Immutable Event Routing per Domain with Metadata-Driven Consumer OrchestrationSAP BTP - CI - Immutable Event Routing per Domain with Metadata-Driven Consumer OrchestrationDescribes a metadata-driven "Smart Router" pattern for Cloud Integration in SAP Integration Suite: one Kafka Sender Adapter per domain reads a wildcard topic, and a single immutable router iFlow resolves single, multiple or both consumers at runtime from Value Mapping entries and a Groovy script, instead of one adapter and iFlow per consumer added. It compares three candidate architectures — a two-layer router/dispatcher split, the recommended single-layer router, and a rejected global cross-domain router — and covers AVRO payload handling through Base64 and an externalized schema parameter, and consolidating the routing logic into one cached Groovy class to limit JVM class-loading overhead. The piece continues the author's earlier immutable Kafka topic routing post and names SAP Event Mesh as one of several broker-agnostic alternatives to the Kafka adapter used here.rhviana, published 2026-05-25
SAP Cloud Integration (CI/CPI) - Reusable Script Collection Pattern for Sensitive Data MaskingSAP Cloud Integration (CI/CPI) - Reusable Script Collection Pattern for Sensitive Data MaskingOpens with the question compliance teams ask about Cloud Integration, whether an integration team based outside Europe with Message Monitoring access can read the personal data in a logged payload, and answers that in most standard configurations it can. The pattern against it is a reusable Groovy script collection plus one global variable holding the masking rules: a script near the start of an iFlow AES-encrypts the original payload into a header or property and replaces values in the body by value pattern first and field-name keyword second, a second script restores the original just before the sender, so a Log Payload step anywhere in the flow captures the masked body while the target system still receives the real data. The post names its own limits, that pattern-based masking is heuristic and that CPI trace can capture the payload before the scripts run, and grounds the pattern in GDPR Articles 5(1)(f), 25, 32 and 44-49, reading the EDPB's Guidelines 05/2021 to mean that access from a country without an EU adequacy decision, uncovered by Standard Contractual Clauses or another valid transfer mechanism, can itself constitute a cross-border transfer.AdarshRao, published 2026-05-25
SAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsSAP Datasphere Integration Patterns: Lessons Learned from Two Years of ImplementationsTwo years of production SAP Datasphere integrations across SAP and non-SAP sources, settling on Replication Flows over remote access for high-volume Finance analytics because remote queries added latency at query time, then tuning the copy with Datasphere-side partitioning, source-side CDS view optimisation and Cloud Connector sizing. For file-based and Kafka sources, SAP Integration Suite iFlows did work a direct connection could not — flattening nested JSON, PGP decryption and orchestrating the SAP Ariba extraction built on SAP's own BTP Procurement Data Extractor content.saikrishna_kalivarapu2, published 2026-08-17
Creating an SAP SD Billing Document Using a BAPI in SAP Build and Accessing It Through 'Joule Work'Creating an SAP SD Billing Document Using a BAPI in SAP Build and Accessing It Through 'Joule Work'Walks through the two pieces of connectivity a SAP Build Process Automation action needs to call an on-premise BAPI: mapping the virtual host to the internal S/4HANA host in Cloud Connector over the RFC protocol, and creating an RFC-type destination in the BTP cockpit so BAPI_BILLINGDOC_CREATEMULTIPLE becomes a selectable action. The resulting process creates an SD billing document from a sales document number and is reached through SAP Build Work Zone, including from the Joule Work mobile app.MrRaj, published 2026-06-29
Expose RFCs as MCP Tools in Integration SuiteExpose RFCs as MCP Tools in Integration SuiteWalks through creating an MCP server in SAP Integration Suite from an RFC source: an on-premise RFC destination labelled for Integration Cell inclusion, a search over the backend's function modules (minimum seven characters), and up to 50 selected modules each becoming a tool. Covers the resulting server's configuration (Source, Tools and Prompts, with no Resources section for this source) and the two scopes an RFC-based server's policy adds beyond an API-sourced one, API.invoke and ESBMessaging.send, plus the RFC receiver adapter used at runtime. Demonstrates the flow with a purchase-order scenario where an AI client calls BAPI_PO_CREATE1 and BAPI_PO_GETDETAIL1 as MCP tools.ronit199666, published 2026-09-24
Running AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverRunning AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverNicolasHernandez recounts building and running, over two years, an MCP server written in plain ABAP behind a single ICF node, for SAP ECC 6.0 and S/4HANA on-premise customers that the ADT MCP Server and SAP Joule for Developers, ABAP AI capabilities do not reach. Authorization runs as the calling user rather than a technical RFC user, a choice forced by a customer security team after an earlier version used a technical RFC user, and a later security review found a display-authority check applied uniformly across every write endpoint. The failure modes that cost the most time sat in RFC connectivity itself: RFC_READ_TABLE's empty-table exception collapsed into a false success, a where-used filter was applied only after the row limit, and BAPI calls treated an empty string and an absent parameter as different, silently wrong inputs.NicolasHernandez, published 2026-08-28
SAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenSAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenReading SAP's API Policy v.4.2026a and its FAQ against the reference architectures, the piece narrows the widely repeated claim that SAP bans AI to what Section 2.2.2 actually restricts: an agent planning and chaining API calls outside an SAP-endorsed route, closed off further by Section 3's block on bypassing API Controls through custom code. It compares the endorsed and allowed paths — the MCP Gateway on SAP Integration Suite reaching S/4HANA and ECC through RFC-based back ends under a 15-tool, 200,000-token limit, SAP-provided MCP servers through Joule Studio, the A2A protocol, customer-operated MCP servers allowed under FAQ Question 56, and the ADT MCP Server, whose 18 tools work only on development artifacts and are documented as not intended for productive use. It leaves open whether Section 2.2.2 covers ABAP code that calls a model from inside the system, since enforcement is defined at the API-traffic level rather than by a list of tools.published 2026-08-31
Using RFC Function Modules and BAPIs in SAP Build Process AutomationUsing RFC Function Modules and BAPIs in SAP Build Process AutomationWalks through calling an S/4HANA BAPI (BAPI_BILLINGDOC_CREATEMULTIPLE, to create a billing document) from an SAP Build Process Automation action: mapping the virtual host to the internal system in SAP Cloud Connector over the RFC protocol and exposing the needed function modules, then creating an RFC-type destination in the BTP cockpit with the virtual message server and SMLG logon group. Once those two are in place, SAP Build lists the exposed BAPIs and RFCs for use in an action.MrRaj, published 2026-07-09
ABAP + MCP: Let AI Do Real Development in Your SAP SystemABAP + MCP: Let AI Do Real Development in Your SAP Systemabap-adt-mcp is an open-source MCP server that gives an AI agent full ABAP development capability over ADT: it searches, reads, edits, activates and unit-tests objects, and runs ATC checks, on a connected S/4HANA Cloud or on-premise system, acting as the signed-in developer. It runs on abap-adt-api, the same REST client Eclipse's own ADT tooling uses, and sits beside SAP's own ADT MCP Server, shipped with ADT for VS Code and Eclipse under a different server key, and marianfoo's abap-docs, a read-only server over the ABAP Keyword Documentation and Clean ABAP. Each destination carries a policy — read-only, allowed packages, denied tables and tools — the server checks before every call, and an optional audit file logs each tool call with its outcome and policy gate.Willian_Saez, published 2026-09-03
ABAP development tools for Visual Studio Code: Version 1.1 releasedABAP development tools for Visual Studio Code: Version 1.1 releasedVersion 1.1 of ABAP development tools for Visual Studio Code adds two tools to the extension's local ADT MCP Server: a unified, git-like diff for a transport request, and a runner for ABAP Test Cockpit checks, both meant for an agent to call rather than a person to click through. Both are new instances of what agent access to your code already covers for ABAP — reading and acting on a real system through ADT — reaching now into a transport's changes and a check run rather than only source and objects.thomasalexander_ritter, published 2026-07-21
How to Connect Claude Code to ABAP with Zero-Config MCPHow to Connect Claude Code to ABAP with Zero-Config MCPWalks through wiring Claude Code, via its VS Code extension, to a live SAP system through an ABAP remote-filesystem extension built by Marcello Urbani and its built-in MCP server — a single toggle rather than a hand-rolled Node.js setup — so the agent searches, reads, writes, activates and assigns transports for ABAP objects over the same ADT REST API Eclipse uses, instead of guessing at tables and function modules it has never seen. The demo carries one plain-English prompt through to a real, activated ABAP program on a live S/4HANA system, including a transport-request dialog Claude worked through on its own.Nibedita, published 2026-07-05
SAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenSAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenReading SAP's API Policy v.4.2026a and its FAQ against the reference architectures, the piece narrows the widely repeated claim that SAP bans AI to what Section 2.2.2 actually restricts: an agent planning and chaining API calls outside an SAP-endorsed route, closed off further by Section 3's block on bypassing API Controls through custom code. It compares the endorsed and allowed paths — the MCP Gateway on SAP Integration Suite reaching S/4HANA and ECC through RFC-based back ends under a 15-tool, 200,000-token limit, SAP-provided MCP servers through Joule Studio, the A2A protocol, customer-operated MCP servers allowed under FAQ Question 56, and the ADT MCP Server, whose 18 tools work only on development artifacts and are documented as not intended for productive use. It leaves open whether Section 2.2.2 covers ABAP code that calls a model from inside the system, since enforcement is defined at the API-traffic level rather than by a list of tools.published 2026-08-31
The Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilotsThe Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilotsA walkthrough of ABAP Development Tools for VS Code's general-availability release: connecting to an on-premise or BTP ABAP system, editing classes, CDS and RAP objects, and turning on the extension's built-in ADT MCP Server. Enabled, it lets a co-pilot such as GitHub Copilot or SAP Joule for Developers, ABAP AI capabilities read code, trace dependencies, and run ABAP Unit and ATC checks against the real system rather than guessing from training data.lpodile, published 2026-06-01
Using Claude for SAP ABAP development on RFC-only / SAProuter systems (even ECC R/3)Using Claude for SAP ABAP development on RFC-only / SAProuter systems (even ECC R/3)vibing-steampunk gives Claude read, search, edit and check access to ABAP source over ADT's REST API, but some SAProuters permit only SAP's native RFC and DIAG routes and block raw HTTP to the ICM, so that link can't reach them even though Eclipse ADT can. Eclipse gets through because it tunnels ADT over RFC through the standard SADT_REST_RFC_ENDPOINT function module instead of HTTP, a path the post traces by capturing a live Eclipse session. adt-rfc-bridge reproduces that tunnel as a local HTTP-to-RFC proxy built on PyRFC, put in front of vsp, and the author reports it working on both S/4HANA and classic ECC/R/3 systems where Eclipse ADT already connects.enrico_andreoli, published 2026-06-09
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
ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!Announces the marketplace release of ABAP development tools for Visual Studio Code, an extension that works against any ABAP system already reachable from ADT for Eclipse and is focused on RAP UI service development, so the Fiori/SAPUI5 frontend and the ABAP backend can be built in the same tool. It ships a built-in ADT MCP Server, disabled by default and switched on from the extension settings, and points readers to a documentation template for capturing ABAP-specific rules in a project's AGENTS.md file for chat agents such as Microsoft Copilot.thomasalexander_ritter, published 2026-06-01
ABAP development tools for Visual Studio Code: Patch 1.0.1 releasedABAP development tools for Visual Studio Code: Patch 1.0.1 releasedA patch to SAP's ABAP development tools for Visual Studio Code, released after two weeks of user feedback: RFC destinations with password logon return, undoing what the first release had dropped, and the extension now ships the AGENTS.md template its documentation already carried, so a project gets agent guidance built in rather than copied by hand. The author still recommends duplicating the template and adding project-specific instructions, since the time spent on that onboarding is what the agent's results depend on.thomasalexander_ritter, published 2026-06-12
From Strategy Doc to Runtime Rule: Embedding SAP AI Standards into Claude CodeFrom Strategy Doc to Runtime Rule: Embedding SAP AI Standards into Claude CodeAn experiment in treating published engineering standards as machine-readable instructions an agent follows while it works, rather than as documents somebody is supposed to have read — hooks and skills wired so the rule applies at the moment code is written. The disclaimer is emphatic and worth carrying: a personal exploration, not an SAP product, not an endorsed approach, and readers are told to verify applicability through official channels. Read as a shape for the idea, not as a standard to adopt.ZYT, published 2026-06-25
Teaching AI Agents Best Practices: A Skills Workspace for CAP DevelopmentTeaching AI Agents Best Practices: A Skills Workspace for CAP DevelopmentStates the gap this capability exists for more precisely than most: an agent already knows CAP well enough to generate models, handlers and deployments, but knowing a framework and following its current practice reliably are different things, because a model defaults to whatever it saw most of during training — which may be outdated, subtly wrong, or simply not how a given team works. Skills are offered as the closing mechanism, and the post describes a workspace pattern rather than a single file, with the architecture claimed to be framework-agnostic.daniel_schlachter, published 2026-06-09
UI5 Plugins for Coding Agents: Now Supporting GitHub CopilotUI5 Plugins for Coding Agents: Now Supporting GitHub CopilotUI5/plugins-coding-agents renames itself from "UI5 Plugins for Claude", since the plugin concept — skills, MCP server, guidelines — was always agent-agnostic, and with v0.1.3 adds GitHub Copilot support alongside Claude Code through Awesome GitHub Copilot. Three skills join the ui5 plugin: ui5-best-practices-integration-cards for UI Integration Card manifest and binding rules, ui5-best-practices-opa5, which uses a TestRecorder to inspect the running app's control tree and generate waitFor snippets, and ui5-best-practices-tables, a selection guide across UI5's table controls. Installing the skills alone, for an agent that reads neither marketplace, still leaves @ui5/mcp-server to be set up by hand.published 2026-06-25
What's new in SAP Cloud Application Programming Model – September 2026What's new in SAP Cloud Application Programming Model – September 2026The September 2026 release turns CAP services into A2A-callable agents through the new @cap-js/agents plugin, which generates MCP tools from a service's entities and actions, adds an @agent.hitl approval gate and can read an AGENTS.md/SKILL.md pair for custom behaviour. The @cap-js/mcp plugin for Node.js and com.sap.cds:cds-adapter-mcp for Java reach general availability, serving describe, query and call tools over existing CAP authentication and authorisation. It also names capire/skills, SAP's curated skill library that teaches coding agents current CAP practice.published 2026-09-24
Adapting SAP Joule for Purchase Order Creation from an Existing Purchase RequisitionAdapting SAP Joule for Purchase Order Creation from an Existing Purchase RequisitionA custom Joule Agent and Joule Skill, built in Joule Studio, classic edition to extend SAP Joule past its built-in Purchase Order display and change features: a buyer's single sentence naming a Purchase Requisition number becomes a created Purchase Order, with the skill wrapping the Purchase Requisition and Purchase Order OData V4 APIs as Action Packages reached through two destinations. The author anchors the agent's success condition to a PurchaseOrderNumber in the skill's output rather than an HTTP status code, and reports that the Purchase Requisition item structure does not map one-to-one onto the Purchase Order creation payload.jonathanvi59, published 2026-08-19
Agentic AI & AI AgentsAgentic AI & AI AgentsSAP's target picture for AI agents: Joule as the engagement layer — Joule Work, Joule Assistants, Joule Agents — with custom agents from customers, partners and SAP teams connecting through A2A for agent-to-agent collaboration and MCP for tool connectivity, on the SAP Business AI Platform. It says up front that parts are not generally available yet, in particular bidirectional communication with third-party agents through the Agent Gateway, so it reads as direction with the building blocks named rather than a design to copy today.published 2026-08-27
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIAgentic AI on BTP: a Multi‑Agent App with Pydantic AISplits a single CAP/TypeScript agent that had grown to juggle five BTP MCP servers behind one bloated tool list into btp-multiagent-app, a Python and Pydantic AI rewrite where the Cloud Foundry and BTP Core MCP servers each get a dedicated specialist agent, with an audit log specialist scaffolded but left disabled, behind an orchestrator whose only tools are delegation calls to those specialists, which is the agent-tooling pattern the piece works through. Each specialist authenticates to its MCP server over Streamable HTTP with OAuth 2.1, and a shared module centralises the SAP AI Core GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integration side of the rewrite. Tool lists per agent drop from well over a hundred to a dozen or two, and routing failures become separable from tool-misuse failures by reading the trace.published 2026-05-03
Agentic AI on BTP: a Single Agent with LangGraphAgentic AI on BTP: a Single Agent with LangGraphA CAP TypeScript agent puts a LangGraph StateGraph in front of AzureOpenAiChatClient from @sap-ai-sdk/langchain, reaching SAP AI Core's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP servers — OData MCP Proxy, CI MCP Server, AI Core MCP Server, BTP MCP Server and BTP CF MCP Server — through @langchain/mcp-adapters' MultiServerMCPClient. Because agent, servers and APIs share one XSUAA tenant, the chat service forwards the signed-in user's own JWT instead of a service account, so each downstream server enforces that user's own authorizations. Past roughly a hundred combined tools the single prompt slows down and stops separating concerns, which is why the author's next post splits it into one specialist agent per MCP server behind an orchestrator.published 2026-05-03
AI-native North Star architecture — Platform LayerAI-native North Star architecture — Platform LayerThe platform layer of SAP's North Star architecture, the chapter that says where agents run and what a developer builds them with. It names an AI Golden Path built on the SAP Cloud Application Programming Model, the ABAP Cloud development model with RAP and the SAP Fiori design system, and a managed agent runtime on SAP BTP that is designed to provide software development kits for building agents in any framework, an agent sandbox, container-hosted execution, a skills registry and continuous evaluations, which is the ground agent tooling covers. Agents are extended without changing their code through four patterns, the first of them tool extensibility through the Model Context Protocol, the concern MCP servers is named for; the process-layer chapter adds that a pro-code path with a standardised agent SDK and a prompt-driven path through the Joule Studio solution produce the same code artifact on the same runtime. It describes a design SAP intends rather than products that exist, and the SDK and the registry it names have no entry here yet.published 2026-05-13
AI-native North Star architecture — Platform Layer
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A reference.
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackBanking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackThe risk it is chasing is a graph problem stated in banking terms: a borrower who looks safe alone and is the linchpin of a group ten times the size. Multi-agent, mixed AI stack, on BTP and CAP.Shahid, published 2026-06-24
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI Stack
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A recipe, Runnable code.
Build Your AI Agent prototype for free using SAP CAP, LangChain and Ollama cloudBuild Your AI Agent prototype for free using SAP CAP, LangChain and Ollama cloudA CAP Node.js service action calls an Ollama-hosted model through LangChain's ChatOllama, with the API key read from a .env file instead of any destination or credential binding — the hand-rolled-key route SAP's own SDK call exists to avoid. The same handler then builds a LangChain agent with createAgent and one mock tool, so a question about restaurants triggers a tool call and any other question does not, independent of the @cap-js/agents plugin's A2A-served harness.rajeevgoswami1, published 2026-08-29
Building a Pro-Code Agent on SAP BTP — Part 2: The Agent (LangGraph + GenAI Hub)Building a Pro-Code Agent on SAP BTP — Part 2: The Agent (LangGraph + GenAI Hub)Part 2 of a three-part series builds a separate, non-CAP Node/TypeScript agent that calls the Part 1 CAP service's MCP tools and reasons through SAP AI Core via @sap-ai-sdk/orchestration, using LangGraph's createAgent ReAct loop for provider-agnostic model calls across GPT, Claude and Gemini deployments. It explains why the tool's Zod schema and model-facing description are the agent's actual contract, the gotcha between a foundation-models deployment and an orchestration-scenario one, and how edge-case testing replaced date inference with a server-computed daysOverdue field after the agent wrongly called a delayed order 'on schedule'.rodfior, published 2026-08-20
Building a Pro-Code Agent on SAP BTP — Part 3: Joule Integration via A2ABuilding a Pro-Code Agent on SAP BTP — Part 3: Joule Integration via A2AThe third instalment of a three-part series deploys an already-built CAP service and LangGraph agent to SAP BTP, Cloud Foundry Runtime, wraps the agent in an A2A protocol server, and registers it with SAP Joule through a capability YAML and the @sap/joule-studio-cli, confirming the chain works end to end inside a real Joule assistant. It covers CAP's default JWT/XSUAA authentication in production, what a test deployment needs to get past it, and the cf push, mbt build and environment wiring that run both apps as separate Cloud Foundry containers. A closing section names what stays unfinished by design — a long-lived AI Core service key, no authentication on the BTP destination, no principal propagation — as the gap between this MVP and a production posture.rodfior, published 2026-08-20
Building an LLM Agent in CAP Java with Spring AIBuilding an LLM Agent in CAP Java with Spring AIThe Java counterpart to the author's own Node.js post, and written as one: connecting to AI Core with the SAP AI SDK, then calling an agent and a tool through Spring AI. Opens with a section on libraries and workflows — which framework does what, and what is left to you — before any code.published 2026-06-08
Building an LLM Agent in CAP Java with Spring AI
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building an LLM Agent using CAPBuilding an LLM Agent using CAPThe argument is that CAP is already most of what an agent framework wants — services, handlers, a typed model — so the agent is built inside it rather than beside it. AI Core through sap-ai-sdk, then Langchain for the agent and its tools. Long, with a TLDR at the top for people who want the shape without the walk.published 2026-05-27
Building an LLM Agent using CAP
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building Durable AI Agents - Announcing the cds-langgraph-persistence PluginBuilding Durable AI Agents - Announcing the cds-langgraph-persistence PluginThe announcement, and the argument behind it. Treating an agent as a software architecture rather than a model with tools makes a list of production requirements — identity, authn and authz, multitenancy, persistence, event-driven flows, scalability, observability, CI/CD — and the author's point is that CAP already answers most of them for BTP, which is what makes LangGraph inside CAP Node.js worth doing. The post then narrows to one of those requirements, durability, and the checkpointer that supplies it. Written from a year of building agents next to real business systems rather than as a framework tour.merbinjanselm, published 2026-07-15
Building Durable AI Agents - Announcing the cds-langgraph-persistence Plugin
@mi8y/cds-langgraph-persistence has been through 3 major lines since this was published: 0.5 (2026-07), 0.6 (2026-07), 0.7 (2026-09). Affects Runnable code.
Governance at Scale: Why a Clean Core Is What Makes Agent Governance EnforceableGovernance at Scale: Why a Clean Core Is What Makes Agent Governance EnforceableClosing a six-part clean-core series, the post argues that SAP's two agentic-AI governance mechanisms only work against a documented tool surface: MCP Gateway in SAP Integration Suite auto-translates API specifications into MCP tool schemas augmented with natural-language semantics, carrying forward existing authentication, authorization and rate limiting into the agentic layer, while AI Agent Hub, built on SAP LeanIX, discovers and runs verification assessments on agents, LLMs and MCP servers before the resulting badge is read by Joule Studio or SAP Integration Suite to decide what is trusted. Its argument holds the mechanisms up against an undocumented internal interface, where the auto-generated schema and the verification badge have nothing real underneath them, and against a consolidated CAP service exposing only released APIs, where both do.DEEPA_DORAIRAJ, published 2026-09-21
SAP Joule: Invoice Agent for Faster Supplier Invoice Release in SAP S/4HANA Accounts PayableSAP Joule: Invoice Agent for Faster Supplier Invoice Release in SAP S/4HANA Accounts PayableWalks through building an Invoice Release Agent in SAP Joule: a custom OData service surfaces supplier invoices whose S/4HANA Flexible Workflow approval is overdue, the agent ranks them by invoice value, aging, payment tenor or a combined score, and a Joule Skill calls the standard SAP AP Invoice OData API to release them, re-prioritizing the remainder after each action. It sets out the detect-prioritize-act loop and the four ranking criteria in enough detail to rebuild the pattern, and leaves authorization, auditability and segregation-of-duty controls to the reader's own design.idc, published 2026-08-11
SAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenSAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves OpenReading SAP's API Policy v.4.2026a and its FAQ against the reference architectures, the piece narrows the widely repeated claim that SAP bans AI to what Section 2.2.2 actually restricts: an agent planning and chaining API calls outside an SAP-endorsed route, closed off further by Section 3's block on bypassing API Controls through custom code. It compares the endorsed and allowed paths — the MCP Gateway on SAP Integration Suite reaching S/4HANA and ECC through RFC-based back ends under a 15-tool, 200,000-token limit, SAP-provided MCP servers through Joule Studio, the A2A protocol, customer-operated MCP servers allowed under FAQ Question 56, and the ADT MCP Server, whose 18 tools work only on development artifacts and are documented as not intended for productive use. It leaves open whether Section 2.2.2 covers ABAP code that calls a model from inside the system, since enforcement is defined at the API-traffic level rather than by a list of tools.published 2026-08-31
September 15th: What's New on developers.sap.comSeptember 15th: What's New on developers.sap.comThomas Jung walks through a week of changes aimed at agentic consumption of developers.sap.com itself: the hosted MCP server gains a published .well-known/mcp.json manifest, curated tools (search_tutorials, get_tutorial_step with a Markdown format option, search_channels), and a listing in the ORD catalog beside its OData, REST and GraphQL APIs. It also documents the site's existing A2A endpoint for the first time and ships a way to turn a tutorial into an installable, cryptographically signed AI Skill with a generated verification script, both concrete instances of agent tooling; separately, five broken GraphQL example queries were fixed and the full SDL is now served, and new sitemap.md, llms.txt fixes and ORD entries round out the site's own metadata publishing.published 2026-09-15
What's new in SAP Cloud Application Programming Model – September 2026What's new in SAP Cloud Application Programming Model – September 2026The September 2026 release turns CAP services into A2A-callable agents through the new @cap-js/agents plugin, which generates MCP tools from a service's entities and actions, adds an @agent.hitl approval gate and can read an AGENTS.md/SKILL.md pair for custom behaviour. The @cap-js/mcp plugin for Node.js and com.sap.cds:cds-adapter-mcp for Java reach general availability, serving describe, query and call tools over existing CAP authentication and authorisation. It also names capire/skills, SAP's curated skill library that teaches coding agents current CAP practice.published 2026-09-24
Beyond Basic AI Error Handling in SAP CPI - A Rules-First Architecture with HANA Cloud LearningBeyond Basic AI Error Handling in SAP CPI - A Rules-First Architecture with HANA Cloud LearningBuilds a rules-first error-diagnosis pipeline on Cloud Integration in SAP Integration Suite: a Groovy classifier resolves known failures — auth, timeout, malformed payload — deterministically, and only genuinely novel errors reach an LLM through the AI Adapter, after a sanitizer script replaces every payload leaf value with a typed placeholder before it leaves the tenant. SAP HANA Cloud, reached over JDBC, holds a fingerprinted dedup cache and an accumulating table of past diagnoses. It also documents the AI Adapter configuration — Advanced mode, a Bearer-prefixed Secure Parameter, and a connection/processing URL split — needed to reach a non-SAP OpenAI-compatible endpoint, found by the author to be undocumented.Krishna_Karthik, published 2026-06-11
Connecting SAP Integration Suite with SAP Document AI and SAP Business AIConnecting SAP Integration Suite with SAP Document AI and SAP Business AIWalks through a Cloud Integration flow in SAP Integration Suite that pulls PDF purchase orders from a Gmail mailbox, extracts header and line-item fields through SAP Document AI's job-submission and polling API, and validates the result with SAP AI Core's generative AI hub using GPT-5-mini as a quality check rather than the source of the extracted values. Groovy steps combine the Document AI confidence score and the model's score into one figure that routes low-scoring purchase orders to manual review, with no S/4HANA posting performed.subhojitSaha, published 2026-08-24
SAP Document AISAP Document AISAP's reference architecture for SAP Document AI, first as SAP composes the service on BTP for document extraction: OCR, pretrained models, customer-defined schemas and LLM calls through SAP AI Core and its Prompt Registry in one pipeline, with tenant-isolated persistence in SAP HANA Cloud, PostgreSQL and an object store. Its scenario pages then lay out a solution in three layers: intake through Outlook and SharePoint inbound channels, the workspace UI, the Joule Work mobile app or the upload API; classification and extraction with a confidence score per field, automatic confirmation above a threshold and review of the rest in the workspace; and posting through outbound channels, directly to a REST API, through an SAP Integration Suite flow, or through a CAP service that maps the fields and calls SAP S/4HANA over OData. Enrichment beyond the service's own master data lookup is left to a CAP application or an Integration Suite flow triggered from an outbound channel, and direct API posting leaves error handling, retries and monitoring to the application.published 2026-06-03
What a Second Document AI Workshop Taught Me About GovernanceWhat a Second Document AI Workshop Taught Me About GovernanceFrom questions raised at a second SAP Document AI workshop: the retention period for extracted data is a setting in the service's administration rather than a fixed property, with the source file deleted after processing and the decommissioning period for the extracted data configured to the customer's own policy. It also draws a boundary readers kept merging: Document AI extracts across languages but does not translate, so turning a document into a reviewer's own language is a separate step, pointing on BTP at SAP Translation Hub.Nicolas_BacaStorni, published 2026-08-25
Why Our First Document AI Exercise Was a Résumé, Not an InvoiceWhy Our First Document AI Exercise Was a Résumé, Not an InvoiceWorking through a SAP Document AI workshop, the author explains why its exercises teach extraction on a résumé before an invoice: a résumé has no stable layout to map fields against, so it forces the point that the tool extracts from a written description of a schema rather than from position-matched templates. Describing the schema is shown to carry real judgment — what a missing end date should become, what a vague field name like "number" costs the model, who in a company should decide these things — and the piece argues that preparing for a project is chiefly a business task of writing down knowledge that otherwise stays in people's heads.Mariano_BacaStorni, published 2026-09-03