BrowseAll ecosystems
Everything in the atlas
89 of 2341
Domain: Operations & Runtime
Signals
Content: 2
More
Group by: Capability
EntryBySignalsLast activity
050: Clean Core Measurement (Preview)050: Clean Core Measurement (Preview)Walks through Clean Core Measurement (CCM), an open-source tool for tracking ABAP Cloud readiness across a system landscape: a dashboard showing Cloud Ready and Upgrade Stable status and a Technical Debt Score per system, runs recorded under administration, and a process area where custom APIs not released by SAP can be documented and excluded from the score. Reporting breaks the score down to individual objects, the unreleased APIs behind them, and which team or product cluster carries the most outstanding work.Björn S., published 2026-08-03
ABAP development under the Clean Core paradigm: From BAPIs to BO and CDSABAP development under the Clean Core paradigm: From BAPIs to BO and CDSSAP's Level Based Clean Core classification (2025) grades ABAP APIs A through D by cloud readiness, and this piece uses the S/4HANA Cloudification Repository's own count — of 3,847 BAPI function modules for SAP Cloud ERP Private, only 23 are Level A — to show how much Classic API (Level B) code needs to move to RAP business objects instead. A worked Bank Master example matches each BAPI to its EML statement or ABAP CDS SELECT equivalent, and states when that move is actually required: mandatory once on SAP Public Cloud, optional but advisable on Private Cloud/On-Premise as BAPIs stop gaining new fields.published 2026-05-21
ARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleBrings the same BTP-deployed ARC-1 endpoint into Joule through a Joule Studio, classic edition agent configured with Anthropic Claude Sonnet 4 and two MCP servers, ARC-1 and mcp-sap-docs, for work that starts in SAP where the previous part started in Microsoft 365. Two read-only showcases carry the ABAP Cloud readiness edge: a clean core check of one class that reports it is not released, uses USR02 and BUT000 directly and has no ATC findings, and a modernisation backlog for package ZSD_LEGACY which, as that package did not exist, grouped 28 ZSD* objects into risk buckets instead. The route through SAP Integration Suite API Management or a future MCP gateway is presented as a target architecture and not yet a productive setup, because Joule Studio's documentation requires streamable HTTP destinations and does not support MCP servers that need interactive OAuth user authorisation.published 2026-05-06
ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule
arc-1 has been through 2 major lines since this was published: 0.9 (2026-05), 1 (2026-07). Affects Runnable code.
CCM - Calculate Key FiguresCCM - Calculate Key FiguresExplains how the Clean Core Measurement (CCM) project turns ABAP Test Cockpit findings into the Technical Debt Score shown on its Clean Core Dashboard: messages from the ABAP_CLEAN_CORE_READINESS check are weighted by severity level (B/C/D) and summed per object, while the object's overall classification follows its highest message level rather than the point total. Covers where the calculation can be tuned — configurable weights, an exemption process, and additional metrics for documented but unreleased API use — and how the resulting score and classification drive the object list and per-object processing views.Björn S., published 2026-08-05
Clean Core IndexClean Core IndexDescribes a company-built KPI, the Clean Core Index, that scores existing custom ABAP code by object type — reports, function modules, SAPScript/Smartforms, ATC S/4 readiness-check findings, user exits and modifications — each weighted by a severity the author sets for redesign effort and upgrade risk, with counts read off CDS views built for the purpose. The index is the author's own definition rather than an official one and does not by itself certify public-cloud readiness, but tracking it weekly shows where custom code still blocks a move to ABAP Cloud and lets progress be read per module or per object type.patrick_weber11, published 2025-08-15
Object Release State in Cloudification Repository Viewer for Clean Core ExtensibilityObject Release State in Cloudification Repository Viewer for Clean Core ExtensibilityWalks through the five release states the Cloudification Repository Viewer assigns to an object — Released, Deprecated, Classic API, Not to be Released, and No API — and what each means for ABAP Cloud readiness: the clean core level it maps to and the ATC check priority it triggers. Explains why the same object can carry two states at once, such as a Classic API that later also becomes Released, and why the check has to be run against the specific release being developed on rather than assumed to hold across releases.PrasanthPadmanabhan, published 2026-03-20
Recommendations for Wrapper Interface DesignRecommendations for Wrapper Interface DesignWalks through designing a wrapper interface that encapsulates a classic BAPI (BAPI_USER_GET_DETAIL) behind a C1-released interface, so the code released for ABAP Cloud stays limited to types and structures ABAP Cloud can actually access. Covers when a non-released SAP structure can still be referenced safely, when it cannot, and how the API_CONSISTENCY and API_COMPATIBILITY ATC checks catch the difference before an upgrade breaks it.kaidehmann, published 2026-06-25
Taking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsTaking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsWalks through how SAP's standard path classifies custom ABAP extensions into Clean Core Levels A through D, running ABAP Test Cockpit against the Cloudification Repository's release status for each SAP object an extension touches, then feeding results into the RISE with SAP Methodology Dashboard in SAP Cloud ALM. Contrasts that with Project Kernseife, an open-source custom ATC check that lets a team override SAP's classification with project-specific rules, define its own successor objects (including custom wrappers), and expose a Score and Potential Score per finding through a CDS view for prioritizing cleanup — at the cost of owning and maintaining that classification. States which situations favor each: Kernseife where the standard rules are too rigid for the project's reality, the standard dashboard where cross-system comparability and low maintenance effort matter more.LBretschneider, published 2025-11-04
Transitioning Architectures from SAP NetWeaverTransitioning Architectures from SAP NetWeaverA community contribution from Glencore, an SAP customer, on what replaces NetWeaver-based products as their standard maintenance ends in 2027: the scenarios where NetWeaver-era solutions fall short — integration with cloud-based landscapes, extensibility — and the successor options per use case, pointing at SAP's product availability matrix and note 1648480 for the official successors. Customer-authored, so the framing is a migration decision rather than a product description.published 2025-08-02
SAP BTP Account Architecture Best Practices: A Practitioner's Field GuideSAP BTP Account Architecture Best Practices: A Practitioner's Field GuideLays out BTP account-hierarchy conventions — one subaccount per business domain and environment, a naming pattern, and a service catalogue entry with a named owner and monthly budget — against the common failure of sharing one subaccount across Dev, Test and Production. It also sets out a four-stage CI/CD pipeline that builds, tests in a Dev subaccount, then stages through Test to Production, naming SAP Continuous Integration and Delivery or Jenkins/GitHub Actions with the BTP CLI as the tooling.basanireddy, published 2026-07-10
🚀 秒速で学ぶ SAP AI Core Agent 開発 🚀 - Part 8 CloudFoundry にデプロイ🚀 秒速で学ぶ SAP AI Core Agent 開発 🚀 - Part 8 CloudFoundry にデプロイPart 8 of a Japanese-language series deploys the Python backend and SAPUI5 chat UI built in earlier parts to SAP BTP, Cloud Foundry Runtime: the backend's manifest.yaml declares its buildpack, memory and start command for cf push, while the UI's MTA project is built with mbt build and uploaded with cf deploy, then has its ENDPOINT constant repointed at the live API's route. It closes with adding the deployed HTML5 app to SAP Build Work Zone, standard edition through Channel Manager's content sync, Content Explorer and a new Site Directory site.Ryota_Ito, published 2025-06-16
How to Build Application Jobs in SAP Business AI Platform, ABAP environmentHow to Build Application Jobs in SAP Business AI Platform, ABAP environmentA Devtoberfest 2026 session on the application job framework in the cloud ABAP environment, built from the repository objects outwards: a class implementing the new application job interface, whose public attributes become the parameters and select options, the application log object it writes to, a job catalog entry that lays out sections, groups and value helps, and a job catalog template that works like a report variant. The demo schedules and monitors runs in the Application Jobs Fiori app, starts a job from a RAP action through the scheduling API under a job user of its own, and debugs one through the template's run-for-testing entry. It closes on the alternatives for work that should not be a job — the background processing framework for short-running work, and RAP events consumed locally or sent over the event mesh — which is the async processing this session covers for SAP BTP ABAP environment.published 2026-09-28
SAP BAIP, ABAP environment – How to build partner solutions and get them certifiedSAP BAIP, ABAP environment – How to build partner solutions and get them certifiedA Devtoberfest 2026 session on the two ways a partner ships an ABAP Cloud solution built on SAP BTP ABAP environment, which the session calls the ABAP environment of SAP Business AI Platform: software delivery, where an add-on product is published with the solution ID from SAP Store onboarding and the customer discovers and deploys it into their own system, and service delivery, where the partner operates the same add-on as a multi-tenant SaaS and a new version is deployed rather than published again. That is the ABAP environment edge; the static analysis edge rests on the quality steps shown in the landscape portal, where the Manage Continuous Testing app released with 2608 runs an ATC check variant against a configured system on a recurrence pattern, beside test product version builds and managed test tenants. The second half walks through the SAP Integration and Certification Center process and the three BTP certification options open to an add-on product.SAP Developers, published 2026-10-12
CAP Developers - Call to Action to mitigate and Apply Solution provided in SAP Note 3747787CAP Developers - Call to Action to mitigate and Apply Solution provided in SAP Note 3747787Four malicious npm package versions published on 29 April 2026 that exfiltrate credentials and propagate into adjacent repositories, and what a CAP developer should check. A security advisory rather than a technique, and dated precisely for that reason.Yogananda, published 2026-05-01
CAP Heaven? Not Yet — But You Can See It from HereCAP Heaven? Not Yet — But You Can See It from HereAn assessment from someone with Java, Azure and AWS behind them as well as ABAP and Fiori, which is a rarer vantage point than it sounds. The title is the verdict.published 2026-02-07
CAP, RAP, or Both: Stop Hiding Behind 'It Depends'CAP, RAP, or Both: Stop Hiding Behind 'It Depends'Opens by refusing the answer every other post on this gives — "both are complementary, choose based on context" — and then commits to a framework, including the parts usually left out: the staffing bias behind the decision, and what to do about a landscape with thousands of Z-objects. Argument, not tutorial.published 2026-04-09
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
Declarative Programming in CAP: Less Code, More ValueDeclarative Programming in CAP: Less Code, More ValueAn argument for annotations over handlers, made from the case where it is most obvious: repetitive validation logic that could be declared instead of written. Describes what you want rather than how to get it, and lets the runtime decide the how.published 2026-02-05
Hello React & Vue : SAP CAP’s New UI Layer is Here!Hello React & Vue : SAP CAP’s New UI Layer is Here!CAP gaining a UI layer for React and Vue, which changes the default assumption that the front end is UI5. Short, and the significance is larger than the length.Yogananda, published 2026-06-25
What's new in SAP Cloud Application Programming Model – January 2026What's new in SAP Cloud Application Programming Model – January 2026December and January together: the new @assert feature, revised documentation, CDS editor work, and Kyma deployment additions.published 2026-02-09
What's new in SAP Cloud Application Programming Model – November 2025What's new in SAP Cloud Application Programming Model – November 2025The November edition, led by the Status Transition Flows feature presented at reCAP 2025.published 2025-12-08
What's new in SAP Cloud Application Programming Model – September 2025What's new in SAP Cloud Application Programming Model – September 2025The monthly release communication for CAP itself, and this edition carries the MCP servers and the Application Frontend Service integration. Kept because a dated list of what shipped when is the only record of that; three editions are indexed here rather than the whole run.published 2025-10-14
🚀 秒速で学ぶ SAP AI Core Agent 開発 🚀 - Part 8 CloudFoundry にデプロイ🚀 秒速で学ぶ SAP AI Core Agent 開発 🚀 - Part 8 CloudFoundry にデプロイPart 8 of a Japanese-language series deploys the Python backend and SAPUI5 chat UI built in earlier parts to SAP BTP, Cloud Foundry Runtime: the backend's manifest.yaml declares its buildpack, memory and start command for cf push, while the UI's MTA project is built with mbt build and uploaded with cf deploy, then has its ENDPOINT constant repointed at the live API's route. It closes with adding the deployed HTML5 app to SAP Build Work Zone, standard edition through Channel Manager's content sync, Content Explorer and a new Site Directory site.Ryota_Ito, published 2025-06-16
A 25x faster mta.yaml build for SAP CAP Node.js projectsA 25x faster mta.yaml build for SAP CAP Node.js projectsOne change to the build descriptor, arrived at after discarding the obvious alternatives — the author reports trying shell scripts, npm caching and offline installs, swapping npm for pnpm, and cds build --no-clean, all of which helped and none of which was this. The value is as much in the record of what was ruled out as in the trick itself.published 2025-03-17
Adding Shell Plugin to SAP Fiori CAP Application and Deploying to Cloud Portal ServiceAdding Shell Plugin to SAP Fiori CAP Application and Deploying to Cloud Portal ServiceA launchpad shell plugin built as a CAP application and deployed to the Cloud Portal service — extending the shell around your app rather than the app itself.Abhinandan2, published 2025-11-24
Architecting Multi-Region HA/DR resiliency patternsArchitecting Multi-Region HA/DR resiliency patternsPatterns for running BTP applications across regions when the default multi-availability-zone resilience is not enough: DNS-based load balancing across regional endpoints with Azure Traffic Manager, Route 53 or Cloud DNS, replication of data and configuration between regions, and the fundamentals of single-region versus multi-region resiliency in its sub-pages. BTP services are multi-AZ by default; a multi-region setup is something the customer architects, and this is SAP's description of how.published 2025-02-19
Autonomous Diagnostics on Kyma Unplugged: Goose + LiteLLM + KRO + SAP AI Core in ProductionAutonomous Diagnostics on Kyma Unplugged: Goose + LiteLLM + KRO + SAP AI Core in ProductionAn in-cluster autonomous diagnostic pipeline on Kyma Unplugged (open-source Kyma, noted to also run on SAP BTP, Kyma runtime): a Goose agent with kubectl access calls SAP AI Core through a LiteLLM proxy, and most of the post is about the quirks of that route — drop_params silently swallowing unrecognised parameters and beta headers, streaming that has to be off when tools are attached, and prompt caching that sits on the Orchestration V2 API rather than the foundation-model path the LiteLLM provider hits. A second Node.js proxy reaches that API, and the author reports caching unconfirmed at production scale, which leaves the roughly $0.004 per static run a target rather than a measured figure. Spend metrics reach SAP Cloud Logging over OTLP through Kyma's Telemetry MetricPipeline while the health analysis itself lands in Kubernetes custom resources read in Busola, and the stack is declared as KRO Resource Group Definitions applied with one Terraform command.quovadis, published 2026-07-09
Build BTP CAP App with Fiori Integration – Part 2: Implementing End to End AppBuild BTP CAP App with Fiori Integration – Part 2: Implementing End to End AppThe implementation half of the series whose first part set up the account and the database: the application itself, end to end.SuryaRamesh, published 2026-04-09
Build, Configure, and Deploy SAP CAP Projects to the CloudBuild, Configure, and Deploy SAP CAP Projects to the CloudA full CAP application with a Fiori UI taken from creation to the cloud in one post. Long, and it covers the configuration between the two that shorter guides skip.Dhanushwar, published 2025-05-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
CAPM Basics - Part 2CAPM Basics - Part 2Walks through deploying a CAP application to SAP BTP, Cloud Foundry Runtime: provisioning a SAP HANA Cloud instance and HDI container, then running cds add hana and cds add xsuaa --for production, cds build --production, and an MTA build and deploy. Tests the deployed service in Postman with an OAuth 2.0 client credentials token from the XSUAA binding (SAP Authorization and Trust Management service), explicitly leaving out any role templates or scopes.archisman92, published 2025-02-28
CAPM Basics - Part 4CAPM Basics - Part 4Part 4 of a CAPM Basics series binds the deployed XSUAA and SAP HANA Cloud service instances with cds bind and runs the project against them from a laptop via cds watch --profile hybrid, the hybrid-testing loop @sap/cds-dk provides. It then restricts the service with @restrict (READ granted to a Viewer role, full access to Admin) and adds OData Capabilities restrictions plus @odata.draft.enabled so a Fiori elements client renders create, update and delete without UI code. It closes by adding a UI module with the SAP Fiori Generator, wiring an approuter via cds add approuter to forward the auth token, and updating the SAP Authorization and Trust Management service instance with the generated redirect URI before redeploying.archisman92, published 2025-05-10
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryCreate a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryThe whole lifecycle in one post rather than a series — model, service, HANA binding, build, deploy. Useful as a single reference for the order things have to happen in, which is the part that is easy to get wrong when it is spread over six posts.MaheshSirsat1708, published 2025-11-19
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud Foundry
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Deploying a CAP app with Fiori app standalone (HTML5 Repo Host)Deploying a CAP app with Fiori app standalone (HTML5 Repo Host)A step-by-step alternative to deploying a CAP app's Fiori frontend through SAP Workzone or Launchpad: exposing it to the SAP HTML5 Application Repository service for SAP BTP instead of serving it straight from @sap/approuter, for zero-downtime content updates, versioning and permissions. It builds a sample with @sap/cds-dk's cds add hana,html5-repo,approuter,mta and cds add xsuaa --for production, generates the Fiori app through Business Application Studio's module wizard, then wires the app router's xs-app.json routes, the mta.yaml service binding and SAP Authorization and Trust Management service before building with mbt and deploying to SAP BTP, Cloud Foundry Runtime.Christopher_Ketzler, published 2025-04-22
Deploying first CAP Project in SAP Cloud : A Step-by-Step GuideDeploying first CAP Project in SAP Cloud : A Step-by-Step GuideThe terminal route rather than the template wizard, from cds init to a deployed application, with each command written out. For the case where the generated project is the thing you are trying to understand.satyanarayanpradhan, published 2025-07-02
DevOps with SAP BTPDevOps with SAP BTPHow SAP frames a delivery pipeline for applications on BTP Cloud Foundry: continuous integration through the SAP Continuous Integration and Delivery service and its pipeline templates for CAP and Fiori, transport and change management across environments, and a section on reasonable alternatives for teams with existing CI infrastructure. Culture first, tools second, and explicit that the setup differs on other BTP environments.published 2025-06-06
Event Driven SAP CAP on Kyma with Agentic AI and UI Auto RefreshEvent Driven SAP CAP on Kyma with Agentic AI and UI Auto RefreshA prototype, described as one: a plain CAP application made to react to external events on Kyma, with an agent in the loop and the UI refreshing itself rather than being reloaded. Short — it reports what was built and why, not how to rebuild it.Shahid, published 2025-12-01
Exploring Application Frontend Service: Deploying the UI of an MTA AppExploring Application Frontend Service: Deploying the UI of an MTA AppApplication Frontend Service, which arrived in May 2026 and overlaps the HTML5 Application Repository without replacing it. The post is careful about the difference — single-tenant, stand-alone, and no Work Zone integration yet — which is what you need to decide between them.MioYasutake, published 2025-07-12
From Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationFrom Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationThe CAP Operator applied to a real application rather than a sample of its own — SAP's Partner Reference Application, taken from plugin integration through containerisation to custom resources. The transition to CRDs is the part that repays attention: it is where the deployment stops being an mta and becomes Kubernetes.ChristianWeiss, published 2026-05-21
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]The switch from SQLite to HANA and the first deploy of the back end to Cloud Foundry — the point in the series where the persistence stops being a file and the build starts producing HDI artifacts.sanjucs, published 2026-05-12
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-4]
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-6]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-6]The last part: the Fiori application built and deployed into the HTML5 Application Repository, separately from the service it talks to. Opens with a checklist of the five parts before it, which is the clearest statement of what the whole series covers.sanjucs, published 2026-05-14
Joule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたJoule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたA walkthrough of building a custom Joule Studio skill on a CAP bookshop app: cds add sample and cds add mta scaffold the project and its deployment descriptor, cds compile srv/ --to xsuaa generates the role template behind the @requires: 'admin' check on AdminService from the SAP Authorization and Trust Management service (XSUAA), and mbt build packages the app for deployment to the SAP BTP, Cloud Foundry Runtime. The skill reaches the deployed OData API through the SAP Destination service, configured with the OAuth2 Client Credentials grant using the client ID, secret and token endpoint from the app's XSUAA service key, so Joule answers a natural-language question about a book by its ID.takayuki_tanaka, published 2025-07-30
Kyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsKyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsWritten by an extensibility expert building against Cloud ERP under clean core, and it treats Kyma as something to shape rather than to adopt — what has to be added to the runtime before it is a SaaS platform for CAP extensions. The Partner Reference Application post is the hands-on sequel.ChristianWeiss, published 2026-02-03
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)Opens with the observation the whole series rests on — CAP is usually demonstrated locally, and the interesting part starts when it is deployed. Part one of the run that continues into PostgreSQL and Work Zone.yashbhosle789, published 2026-02-25
Part 1: Creating and Deploying a SAP CAP Application with SAP HANA on SAP BTP (Cloud Foundry)
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionPart 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler OptionThe middle of a series that runs from database to Work Zone: the CAP application from part one pointed at PostgreSQL on the hyperscaler option, and deployed. The service binding and the build are where it spends its time.yashbhosle789, published 2026-03-04
Part 2: Creating and Deploying a CAP Application with PostgreSQL, Hyperscaler Option
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Part 2: Runtime Architecture & Cost efficiency gainsPart 2: Runtime Architecture & Cost efficiency gainsThe technical half of the Kyma Evolution series: why a cluster tuned for CAP multitenancy is not just somewhere to run containers, and where the cost efficiency actually comes from.ChristianWeiss, published 2026-02-04
Quickly Deploy a Sample CAP Application to BTPQuickly Deploy a Sample CAP Application to BTPPrerequisites first and at length — account, dev environment, CLI tools, MBT — because that is where a first deployment actually fails. The deploy itself is short once they are true.AminAlmarsafy, published 2025-11-15
Receive Events from Event Mesh of Integration Suite to CAP Node.js ApplicationsReceive Events from Event Mesh of Integration Suite to CAP Node.js ApplicationsWalks a CAP Node.js application through consuming events from SAP Integration Suite, Event Mesh: adding the messaging and xsuaa services with cds add, writing messaging.on handlers for named topics, and building and deploying the service as an MTA to Cloud Foundry. Documents a mismatch between Cloud Foundry's automatic queue provisioning and Event Mesh's management API, worked around by pointing the service key's management URI at a mock endpoint that always returns 201.KevinWang_ST_Consultancy, published 2026-02-13
SAP BTP Account Architecture Best Practices: A Practitioner's Field GuideSAP BTP Account Architecture Best Practices: A Practitioner's Field GuideLays out BTP account-hierarchy conventions — one subaccount per business domain and environment, a naming pattern, and a service catalogue entry with a named owner and monthly budget — against the common failure of sharing one subaccount across Dev, Test and Production. It also sets out a four-stage CI/CD pipeline that builds, tests in a Dev subaccount, then stages through Test to Production, naming SAP Continuous Integration and Delivery or Jenkins/GitHub Actions with the BTP CLI as the tooling.basanireddy, published 2026-07-10
SAP CAP Lessons Learned: Quick deployment with manifest and cf pushSAP CAP Lessons Learned: Quick deployment with manifest and cf pushShows a shortcut for testing CAP behaviour that only shows up on SAP BTP: a manifest.yml scoped to the service module (path: gen/srv, the service's bound BTP services), generated quickly with cds add cf-manifest, then cds build -- production followed by cf push to send just that module. This partial deployment skips the database and UI, so the author notes it can skip usual build tasks and any other change still needs a full MTA build and deploy.LucasMagriniRigo, published 2025-01-07
SAP CAP With Prostgres Serice in BTPSAP CAP With Prostgres Serice in BTPA step-by-step walkthrough of a CAP bookshop project on @cap-js/postgres, provisioning PostgreSQL on SAP BTP, hyperscaler option's trial plan through mta.yaml, building the MTA archive and deploying it to Cloud Foundry by hand, then inspecting the deployed database with pgAdmin over an SSH tunnel. It updates an earlier post by Mike Zaschka on the same topic to the package CAP now ships by default, though the manual build-and-deploy sequence it shows predates cds up folding those steps into one command by a day.satya-dev, published 2025-03-30
Streamlined Kyma deployment for CAP applicationsStreamlined Kyma deployment for CAP applicationsUnder two thousand characters on getting a CAP application onto Kyma with less ceremony than the long guides require. Short by design.published 2025-12-08
The fastest way to a deployable CAP app on SAP BTP Cloud FoundryThe fastest way to a deployable CAP app on SAP BTP Cloud FoundryThe gap between an application that runs locally and one that runs deployed — binding, bundling, the database connection, authorization — treated as the problem rather than as setup. Since updated for cds up, which is the shortest answer the core now offers, and the post carries that update inline rather than leaving the original standing.published 2025-02-13
Clean Core maturity and the new Extensibility LevelsClean Core maturity and the new Extensibility LevelsSets out SAP's Clean Core Level concept, the successor to the 3-Tier Development Model, which grades extensibility by how upgrade-safe it is rather than by where it runs: Level A covers on-stack extensions on released RAP and CDS views plus side-by-side apps on BTP, Level B covers upgrade-stable classic APIs listed in the Cloudification Repository, Level C covers internal-object use flagged through SAP's Changelog for SAP Objects, and Level D covers direct modifications and implicit enhancements that ABAP Test Cockpit checks must block. Choosing between an on-stack and a side-by-side implementation is left to the SAP Application Extension Methodology, and the official Level classifications are filed under SAP Note 3578329.EmilianoAyub, published 2025-12-19
Clean Core清洁核心概况介绍Clean Core清洁核心概况介绍Explains Clean Core as SAP's architecture methodology for decoupling custom code from standard code, and walks through the A-D grading SAP uses for a single extension's cleanliness: D for direct modification of standard tables, programs, classes or functions, or disallowed patterns such as implicit enhancements; C for internally developed functions calling unreleased APIs; B for using only SAP's classic or released APIs (BAPI, ALV Grid, BAdI); A for side-by-side extensions reached only through released interfaces onto the SAP Build extension suite. It lays out a six-step roadmap for reaching Clean Core — inventorying existing extensions, setting a reduction target, surveying SAP's extension routes (SAP GUI SE80, Fiori custom fields and logic, BTP high/low-code, workflow/RPA), writing a decision tree, splitting new development from legacy migration, and reviewing periodically — while noting that in-app development is not inherently unclean and that real decisions should weigh ROI rather than follow the theory absolutely.ArthurYang, published 2025-11-10
Enhancing Customer Master with a Custom Tab Using SAP TAXI Framework (BAdI + SE80)Enhancing Customer Master with a Custom Tab Using SAP TAXI Framework (BAdI + SE80)Walks through adding a custom "Repayment" tab to the Customer Master (XD01/XD02/XD03) using SAP's TAXI framework: an append structure on table KNB1, a subscreen built in SE80, and two BAdI implementations — CUSTOMER_ADD_DATA and CUSTOMER_ADD_DATA_CS — registered through SPRO. The BAdIs are the released extension points that keep the tab upgrade-safe without modifying standard code, the developer-extension half of the capability's tiered model.Divya_palem, published 2026-06-01
Enhancing Standard BAPIs: When and How to Do ItEnhancing Standard BAPIs: When and How to Do ItWalks through why a standard BAPI needs enhancing — a missing field, an extra validation, logic before or after the call, or a performance tweak — and five ways ABAP offers to do it: a BAdI found in SE18/SE19, an append structure for extra fields, a classic user exit wired through SMOD/CMOD, a wrapper function module copied from the original, or an implicit enhancement when no other extension point exists. Each technique gets its own steps, and two carry a short ABAP code example.Shantalinga, published 2025-09-29
Extending Standard S/4 HANA OData API'sExtending Standard S/4 HANA OData API'sWalks through extending a standard S/4HANA OData API with a custom field, preferring OData V4 over V2 for its closer OASIS compliance and simpler service enablement, then tracing the extensibility objects documented for the entity before touching any code. The custom field reaches the API by layering three CDS view extensions — extendView on I_Product, extendViewEntity on R_ProductTP and on A_Product_3 — following the projection chain down to where the base table is first selected, built in ABAP Development Tools for Eclipse.JuanDK78, published 2026-04-08
S/4HANA公有云版的内部ABAP拓展S/4HANA公有云版的内部ABAP拓展Argues that S/4HANA Cloud public edition's in-app ABAP extensibility is still real ABAP development, just under stricter rules: developer extensions require ABAP Development Tools rather than SAP GUI transactions, data models are defined as CDS views instead of SE11 tables, business logic is a RAP behavior definition instead of a function module, and service exposure is an auto-generated OData service from a Service Definition instead of a hand-built RFC/BAPI. The piece walks a worked example — a Fiori app that triggers the Purchase Requisition API — through CDS, RAP, OData activation on SAP Gateway, and authorization via business catalogues, and frames the whitelist of released APIs and CDS views as upgrade-safety rather than a restriction.ArthurYang, published 2025-11-24
Streamline User Targeting with Segments in SAP Feature FlagsStreamline User Targeting with Segments in SAP Feature FlagsWalks through segments in the SAP Feature Flags service: reusable, named user lists — up to 1,000 direct user IDs or 15 attribute-based conditional rules per segment — referenced across every feature flag in a service instance instead of redefined per flag. Covers creating a segment from the Feature Flags Dashboard and the per-instance limit of 20 segments, plus the safeguard that a segment in use cannot be deleted.Maksimiliana, published 2026-02-05
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
How to Create an Application Job (APJ) in SAP S/4HANA ABAP — With Single Values & Select OptionsHow to Create an Application Job (APJ) in SAP S/4HANA ABAP — With Single Values & Select OptionsWalks through implementing an Application Job end to end on the ABAP door: a class implements IF_APJ_RT_EXEC_OBJECT for runtime execution and IF_APJ_DT_EXEC_OBJECT to define parameters, covering both single-value parameters and select options, then registers the class as a job catalog entry and template in ADT for scheduling through the Application Jobs Fiori app. Frames Application Jobs as the class-based, ADT-defined successor to the classic SM36/SM37 background job transactions.PM_iiits, published 2026-05-22
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
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.jsSAP Job Scheduling Service: Set Job Run Status with the REST API and Node.jsWalks through recovering a stuck asynchronous job run in SAP Job Scheduling service: when a triggered app fails to call back, the run stays at ACK_RECEIVED and eventually UNKNOWN, since the scheduler never assumes success or failure on its own. The fix is a Node.js script that reads a downloaded service key, gets an OAuth2 client-credentials token, and calls PUT /scheduler/jobs/{jobId}/schedules/{scheduleId}/runs/{runId} with a success/message body to set the run to FAILURE or SUCCESS by hand.DenisDuev, published 2025-08-11
SAP S/4HANA Cloud: Scheduling Background Jobs Using Application Job TemplatesSAP S/4HANA Cloud: Scheduling Background Jobs Using Application Job TemplatesWalks through moving S/4HANA Cloud and ABAP Environment job scheduling off ECC's SUBMIT and JOB_OPEN/JOB_SUBMIT/JOB_CLOSE pattern onto the Application Job Framework: a job template built from an ABAP class that implements IF_APJ_DT_EXEC_OBJECT and IF_APJ_RT_EXEC_OBJECT, then scheduled through the Manage Application Job Templates Fiori app or programmatically with CL_APJ_RT_JOB_SCHEDULING_API's SCHEDULE_JOB method. The resulting job is tracked in the Monitor Application Jobs app, where status, logs and failed runs are reviewed.TalluriSudheerKumar, published 2025-08-06
Scheduling a Background Job for the BDC Session Method Using RSBDCSUBScheduling a Background Job for the BDC Session Method Using RSBDCSUBWalks through uploading data with GUI_UPLOAD, building a BDC session with BDC_OPEN_GROUP, BDC_INSERT and BDC_CLOSE_GROUP, then scheduling the standard program RSBDCSUB as a background job with JOB_OPEN, SUBMIT ... VIA JOB and JOB_CLOSE so the session processes without manual SM35 intervention. Shows the resulting job's status and spool read back through SM37, the way a reader confirms afterwards that a scheduled job actually ran.Saikrishna_reddy, published 2026-07-29
ABAP Cloud LoggerABAP Cloud LoggerWraps ABAP Cloud's cl_bali_* Application Log classes in ZCL_CLOUD_LOGGER, an open-source, MIT-licensed logger installed via abapGit. One fluent entry point takes free text, sy-msg-style messages, exceptions, BAPIRET2 tables or arbitrary data serialised to JSON, and multiton instances keyed on object/subobject/external number let unrelated code share a logger without passing instances around. It adds sticky per-iteration context, built-in timing, and a readable trail of the cx_bali_runtime errors the class swallows internally.Greltel, published 2026-04-30
Authorization management with OpenSearch's Document Level Security - SAP Cloud LoggingAuthorization management with OpenSearch's Document Level Security - SAP Cloud LoggingWhere the predecessor SAP Application Logging service reused CF space permissions for read-only access, SAP Cloud Logging integrates with SAP Cloud Identity Services (IAS) and controls per-document visibility through OpenSearch's Document Level Security: an IAS group becomes a backend role, mapped to an OpenSearch role that carries a DLS query filter, so a search request only ever returns documents whose indexed field (space_name, organization_id, or another keyword field) matches what that role's filter allows. It walks through fixed per-space roles, a shared multi-space role using a terms query, and a single dynamic role that substitutes ${user.roles} into the filter so the match is against the caller's own groups, then lists operational pitfalls — wildcard index patterns breaking Dashboards, DLS roles that also hold write access creating log entries nobody can read back, and match queries against a .keyword field being non-deterministic where term queries are exact.Hariharan-Gandhi, published 2025-11-24
Capturing Background Job Errors in SAP Using the Application Log (SLG0/SLG1)Capturing Background Job Errors in SAP Using the Application Log (SLG0/SLG1)Walks through ABAP's Application Log framework for recording errors from a background job that has no screen to show them on: defining an Object and Sub-object in SLG0, then building the log in code with BAL_LOG_CREATE, adding a free-text or message-class entry with BAL_LOG_MSG_ADD_FREE_TEXT or BAL_LOG_MSG_ADD, and persisting it with BAL_DB_SAVE so it survives after the job finishes. The worked example is a report inserting student records into a custom table, scheduled via SM36 and reviewed afterwards in SLG1, filtered by the Object and Sub-object that created it.bhuvaneswarg, published 2026-08-26
How to Access SAP Cloud Logging Service Dashboards Using IAS SAML AuthenticationHow to Access SAP Cloud Logging Service Dashboards Using IAS SAML AuthenticationWalks through wiring SAML 2.0 single sign-on between SAP Cloud Identity Services (IAS) and SAP Cloud Logging so its OpenSearch dashboards accept IAS logins instead of a service key: creating the SAML application in IAS, editing the instance's saml parameters (admin_group, idp.metadata_url, idp.entity_id, sp.entity_id), setting the matching entity ID and endpoints on the IAS side, and mapping an IAS group to the all_access role through a groups attribute. It also shows how to read a 403 on the dashboard as SAML login succeeding while the group-to-role mapping is still missing.Umezuki, published 2025-12-30
How to implement SAP BTP Audit log service in a CAP ApplicationHow to implement SAP BTP Audit log service in a CAP ApplicationThe setup half: binding the BTP Audit Log service to a CAP application and getting the annotated path working, which is the step before anything custom becomes a question.KrishnaSharma7, published 2025-01-01
How to implement SAP BTP Audit log service in a CAP Application
@cap-js/audit-logging has been through 2 major lines since this was published: 0.9 (2025-06), 1 (2025-07). Affects A recipe.
Implementing Custom Audit Logging in SAP CAP ApplicationsImplementing Custom Audit Logging in SAP CAP ApplicationsWhere the annotations stop. CAP logs personal-data operations automatically once a model is annotated; this is about the events that are not that — an unauthorised access attempt, a business action somebody wants a trail for — and what writing those yourself involves.gopalanand, published 2025-10-09
Instance Sharing - SAP Cloud LoggingInstance Sharing - SAP Cloud LoggingExplains how to share one SAP Cloud Logging instance across Cloud Foundry spaces, subaccounts and regions instead of provisioning one per space, contrasting built-in platform sharing, where credentials are transferred automatically but the scope stays narrow, within a single subaccount in the post's own example, with reusing a service key through a Cloud Foundry User-Provided Service, which applies across regions, subaccounts and environments but leaves credential transport and rotation to the customer. Walks through a cf share-service example and the cost, legal and ingestion-throughput tradeoffs against dedicated instances.Hariharan-Gandhi, published 2025-08-13
Migration Journey from MuleSoft to SAP Integration Suite (CI)Migration Journey from MuleSoft to SAP Integration Suite (CI)Maps MuleSoft Anypoint's error handling onto SAP Integration Suite: the Global Error Handler and MuleSoft's built-in retries become Exception Subprocesses with scripted Groovy retry logic or JMS-based retry, since Cloud Integration has no automatic equivalent. MuleSoft's searchable logger text becomes Content Modifier headers and Groovy-scripted Message Log entries, correlated by application message ID and correlation ID for traceability across complex interfaces. The mapping is drawn from the author's own migration project across assessment, development and validation phases, and is explicitly flagged as not an SAP- or MuleSoft-approved design.Shailaja, published 2025-09-21
SAP API ManagementのアクセスログをSAP Cloud Loggingで可視化する方法SAP API ManagementのアクセスログをSAP Cloud Loggingで可視化する方法In Japanese. API Management's own screens show call counts but not the individual request log — no audit trail, no header or IP detail, which leaves auth failures hard to diagnose. The author's fix is an API Policy that builds a structured log entry with AssignMessage and forwards it through a syslog drain to SAP Cloud Logging, and confirms the ingest endpoint works by PUTting a test message to it directly with Postman before wiring the policy.yasuyukiuno, published 2025-09-24
Build Solutions for SAP Cloud ERP with confidenceBuild Solutions for SAP Cloud ERP with confidenceThe Partner Reference Application family described as what it is meant to be: a golden path for a partner becoming a multi-tenant SaaS provider, covering building, running and integrating rather than only building.pankajkumar_agrawal, published 2026-04-24
Building a SaaS Multitenant Application Using SAP CAP Framework — Without a DatabaseBuilding a SaaS Multitenant Application Using SAP CAP Framework — Without a DatabaseMultitenancy with the database taken out, which is a useful way to see what is left: the approuter and its tenant host pattern, the XSUAA instance in shared tenant mode, and the SaaS Registry binding that makes a subscription happen. Everything here is subscription lifecycle and routing, so the parts that are usually entangled with HDI container provisioning are visible on their own.DebashishDas, published 2026-05-06
Building SaaS Products on SAP BTPBuilding SaaS Products on SAP BTPAn architecture essay rather than a build, written against SAP's own ABAP Cloud Partner Reference App material and explicitly extending it. Part one of a pair; the second is where the hard problem is.michal_majer, published 2025-09-30
CAP multitenancy with Work ZoneCAP multitenancy with Work ZoneA gap in the tooling and the manual edit that closes it. cds add portal wires the Portal service, which is deprecated; Work Zone supports multitenancy but has no equivalent command. The author runs the portal command anyway and then rewrites the resource and module config in mta.yaml to point at Work Zone. Short, and honest that it is a workaround rather than a supported path.published 2025-03-14
Custom Business Logic Extensibility in CAP (CDS-Oyster)Custom Business Logic Extensibility in CAP (CDS-Oyster)A Devtoberfest 2026 session walking @sap/cds-oyster — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravels, from the application developer's side and the extension developer's side. The application developer adds a submit-for-review action to the status flow and opens exactly one surface for custom code: a separate extension service marked as extensible code, holding a no-op validate action and two read-only helper entities, which the host application calls before the status change; nothing else is extensible, because the annotation defaults to false. The extension developer works in a project whose base model came from cds pull, with test data, a server.js and types from @cap-js/cds-typer added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs extension, after which the next request rejects a travel over the policy limit without a restart — the code having been stored as an annotation in the tenant's model and run in a Rust WebAssembly sandbox with no database connection, whose queries go back to the CAP runtime as CQL strings, which is tenant extensibility extended from fields to logic.published 2026-10-09
Designing a Multi‑Tenant Solutions on SAP BTP – Architecture and Prototype WalkthroughDesigning a Multi‑Tenant Solutions on SAP BTP – Architecture and Prototype WalkthroughWritten back from a delivered project, and it lists the constraints that shaped it rather than the features that showcase it — several customers, strict data isolation, central lifecycle management, and operations kept simple.Avinash_Vaidya, published 2026-02-17
Developing CAP java/node.js mixed mono Multitenant SaaS Applications with Shared DatabaseDeveloping CAP java/node.js mixed mono Multitenant SaaS Applications with Shared DatabaseTwo CAP projects, one Java and one Node.js, in one npm workspace sharing a single tenant database. The interesting part is which sidecar wins: both sub-projects get an MTX sidecar, both have cds.xt.SaasProvisioningService switched off, and a third onboarding project keeps provisioning to itself. Configuration listings rather than prose, and it assumes you already know why you would want this.xuelong, published 2025-01-08
Developing CAP java/node.js mixed mono Multitenant SaaS Applications with Shared Database
@sap/cds-mtxs has been through 2 major lines since this was published: 3 (2025-06), 4 (2026-06). Affects A recipe, Runnable code.
From Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationFrom Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationThe CAP Operator applied to a real application rather than a sample of its own — SAP's Partner Reference Application, taken from plugin integration through containerisation to custom resources. The transition to CRDs is the part that repays attention: it is where the deployment stops being an mta and becomes Kubernetes.ChristianWeiss, published 2026-05-21
Kyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsKyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsWritten by an extensibility expert building against Cloud ERP under clean core, and it treats Kyma as something to shape rather than to adopt — what has to be added to the runtime before it is a SaaS platform for CAP extensions. The Partner Reference Application post is the hands-on sequel.ChristianWeiss, published 2026-02-03
Multitenant SaaS Application using CAPMultitenant SaaS Application using CAPSAP's reference architecture for a multitenant SaaS application on BTP built with CAP: one deployment serving many tenants with logically separated data, the subscription and onboarding flow, and the BTP services the design leans on. Written for partners and line-of-business teams building on BTP, and it is SAP's own side of the shape multitenancy takes on BTP.published 2025-01-31
Part 2: Architecting SaaS Resilience Against S/4HANA VariancePart 2: Architecting SaaS Resilience Against S/4HANA VarianceThe unspoken problem it names is a good one: a multitenant SaaS application faces not one S/4HANA but every customer's, each at a different release with different extensions. What resilience means when the backend varies per tenant.michal_majer, published 2025-10-20
Part 2: Runtime Architecture & Cost efficiency gainsPart 2: Runtime Architecture & Cost efficiency gainsThe technical half of the Kyma Evolution series: why a cluster tuned for CAP multitenancy is not just somewhere to run containers, and where the cost efficiency actually comes from.ChristianWeiss, published 2026-02-04
Setting Up Alerts for SAP Cloud Integration Using SAP Alert Notification ServiceSetting Up Alerts for SAP Cloud Integration Using SAP Alert Notification ServiceWalks through wiring SAP Alert Notification service for SAP BTP to a Cloud Integration tenant: creating the service instance and its OAuth2 service key, adding an email action and a subscription on the CPIIntegrationFlowExecutionFailure event, then deploying SAP's standard alert-notification iflow, which polls the Message Processing Logs API for failures. The author tests the setup by deploying a deliberately failing iflow and confirming the alert email arrives.Nikhil_Gursal, published 2026-03-05
ABAP's Parallel Processing Frameworks: Practical Guide to Performance Tuning of Mass Data ProcessingABAP's Parallel Processing Frameworks: Practical Guide to Performance Tuning of Mass Data ProcessingSurveys ABAP's two parallel processing technologies, asynchronous RFC (aRFC) and the queued, exactly-once background RFC (bgRFC), and the six frameworks built on top of them, SPTA, SHDB, CL_ABAP_PARALLEL, the Background Processing Framework, the Parallel Processing Framework and the Mass Data Framework, each by its own entry point: a function module, a factory class or a Customizing transaction. A Qualitative Weight and Summ matrix then compares the frameworks across criteria such as package creation, load balancing and documentation quality, stated as the author's own subjective scoring for one project rather than a ranking.marc_steinert, published 2025-09-29
Product Updates for SAP Build Code – June 2025 EditionProduct Updates for SAP Build Code – June 2025 EditionThe Q2-2025 release of SAP Build Code adds a Joule-based SAP HANA Application Migration Assistant extension that automates converting XS Classic and XS Advanced service-layer artifacts — XSJSLIB, XSODATA and XSJS — into CAP service definitions and handlers on SAP HANA Cloud, extending the existing database migration assistant with generative AI. It walks through the "XS Classic to CAP" and "XS Advanced to CAP" templates that trigger the conversion.published 2025-06-27
Simplifying ABAP Proxy Migration: From SAP PO to Integration Suite (No MDR Required)Simplifying ABAP Proxy Migration: From SAP PO to Integration Suite (No MDR Required)A migration walkthrough for moving ABAP proxy scenarios, both outbound and inbound, from SAP PO to SAP Integration Suite without introducing MDR or a full pipeline redesign. It repoints the SAP_PROXY_ESR RFC destination from the PO Enterprise Repository to the Integration Suite tenant so SPROXY reads Service Interfaces straight from Cloud Integration design packages, and routes inbound calls through SAP Cloud Connector to the ABAP system's /sap/xi/engine endpoint.naveen_kanagaraj, published 2026-04-29
Autonomous Diagnostics on Kyma Unplugged: Goose + LiteLLM + KRO + SAP AI Core in ProductionAutonomous Diagnostics on Kyma Unplugged: Goose + LiteLLM + KRO + SAP AI Core in ProductionAn in-cluster autonomous diagnostic pipeline on Kyma Unplugged (open-source Kyma, noted to also run on SAP BTP, Kyma runtime): a Goose agent with kubectl access calls SAP AI Core through a LiteLLM proxy, and most of the post is about the quirks of that route — drop_params silently swallowing unrecognised parameters and beta headers, streaming that has to be off when tools are attached, and prompt caching that sits on the Orchestration V2 API rather than the foundation-model path the LiteLLM provider hits. A second Node.js proxy reaches that API, and the author reports caching unconfirmed at production scale, which leaves the roughly $0.004 per static run a target rather than a measured figure. Spend metrics reach SAP Cloud Logging over OTLP through Kyma's Telemetry MetricPipeline while the health analysis itself lands in Kubernetes custom resources read in Busola, and the stack is declared as KRO Resource Group Definitions applied with one Terraform command.quovadis, published 2026-07-09
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
Implementation of Observability using OpenTelemetry in SAP BTPImplementation of Observability using OpenTelemetry in SAP BTPTracing across a landscape rather than inside one service — BTP applications, integrations, workflows and automations that also call non-SAP microservices the customer runs. That span is where correlation stops being a nice-to-have, and it is the half @cap-js/telemetry's automatic instrumentation does not reach on its own.Deepankar, published 2025-02-05
S/4HANA Observability: Streaming SAP Cloud ALM & LogServ Telemetry to BigQuery & Vertex AIS/4HANA Observability: Streaming SAP Cloud ALM & LogServ Telemetry to BigQuery & Vertex AIWalks through pulling SAP Cloud ALM's Outbound Logs, Metrics and Traces APIs — OAuth 2.0 client-credentials auth, protobuf-encoded OTLP payloads, and the guardrails needed against its rate limits and 24 GB/30-day retention baseline — plus SAP LogServ's infrastructure logs, into Google BigQuery for multi-year, cross-domain storage. A time-window SQL join then correlates ABAP exceptions, health metrics, infrastructure events and ITSM tickets, with the joined record passed to Vertex AI (Gemini) to draft a structured incident dossier.Rudrapuneet, published 2026-07-22
Custom Business Logic Extensibility in CAP (CDS-Oyster)Custom Business Logic Extensibility in CAP (CDS-Oyster)A Devtoberfest 2026 session walking @sap/cds-oyster — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravels, from the application developer's side and the extension developer's side. The application developer adds a submit-for-review action to the status flow and opens exactly one surface for custom code: a separate extension service marked as extensible code, holding a no-op validate action and two read-only helper entities, which the host application calls before the status change; nothing else is extensible, because the annotation defaults to false. The extension developer works in a project whose base model came from cds pull, with test data, a server.js and types from @cap-js/cds-typer added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs extension, after which the next request rejects a travel over the policy limit without a restart — the code having been stored as an annotation in the tenant's model and run in a Rust WebAssembly sandbox with no database connection, whose queries go back to the CAP runtime as CQL strings, which is tenant extensibility extended from fields to logic.published 2026-10-09
Multitenant SaaS Application using CAPMultitenant SaaS Application using CAPSAP's reference architecture for a multitenant SaaS application on BTP built with CAP: one deployment serving many tenants with logically separated data, the subscription and onboarding flow, and the BTP services the design leans on. Written for partners and line-of-business teams building on BTP, and it is SAP's own side of the shape multitenancy takes on BTP.published 2025-01-31