BrowseAll ecosystems
Everything in the atlas
649 of 2357
Domain
Signals
Content: 2
More: 4
Group by: Capability
Still applies Nothing recordedStill applies Version driftSource capireSource SAP websiteSource SAP Developer CenterSource SAP CommunityClear all
EntryBySignalsLast activity
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 Initializr: Generate SAP CAP Projects in SecondsCAP Initializr: Generate SAP CAP Projects in SecondsA hosted project generator for CAP in the shape of Spring Initializr — pick the structure, dependencies and configuration in a browser and download the result, rather than running cds init and then wiring the facets by hand. The post is an MVP announcement asking for feedback, and the tool lives at a Cloud Foundry trial URL rather than on npm, so it is a direction being tested in public rather than something to depend on.Saptarshi017, published 2026-03-23
CAP Now Supports ReactJS - With working demo + UI5 Web componentsCAP Now Supports ReactJS - With working demo + UI5 Web componentsA walkthrough of scaffolding a React front end onto a CAP Bookshop project with cds add react --into <app>, wiring UI5 Web Components for React to the generated OData service, then adding further facets one command at a time — cds add app-frontend, cds add ias or cds add xsuaa, and cds add hana — before cds up deploys the result with IAS authentication and a HANA Cloud database. Each command expands the project by one facet rather than scaffolding everything up front, the grow-as-you-go shape generators describes.published 2026-06-09
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
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
First Java Cap ApplicationFirst Java Cap ApplicationA step-by-step walkthrough of a first CAP Java project: com.sap.cds:cds-services-archetype scaffolds the initial Maven project, and the domain model is then rewritten in the db folder with entities, the cuid and managed aspects, associations, compositions and a CodeList, so a hand-coded event handler serving a single entity gives way to a service that CAP's generic persistence handling serves without custom code. It deploys that model to SQLite for local development — cds deploy --to sqlite, then a Spring profile pointing at the generated database file — and ends by adding an index.cds so the model and service can be published as a reusable npm module.bruce_wang3, published 2020-12-08
Give Your AI Agent Some Tools: Introducing the UI5 MCP ServerGive Your AI Agent Some Tools: Introducing the UI5 MCP ServerAnnounces @ui5/mcp-server, SAP's open-source MCP server for UI5 development, and walks through its initial six tools. get_project_info, get_api_reference and run_ui5_linter (which applies UI5 linter fixes) read the project's own version, manifest and code rather than an LLM's training data, which is what agent access to your code explains. create_ui5_app scaffolds a new JavaScript or TypeScript project, standalone or inside an existing CAP application, from templates with pre-configured OData model setups, which is generators.published 2025-09-03
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
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
Prompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesPrompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesA user story in, a scaffolded full-stack CAP application out, through SAP Build Code and Joule. The question it is actually asking is how much of the foundational code is worth generating, and it answers by generating all of it.AnuradhaDhingan, published 2025-12-11
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 Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
SAP Fiori Application Generator Available in Open SourceSAP Fiori Application Generator Available in Open SourceThe SAP Fiori tools team announces that the code behind @sap/generator-fiori has moved entirely to open source, and names the packages it is built from: writers that output SAP Fiori elements and freestyle SAPUI5 application files, inquirer prompts for picking a back end, and ABAP deploy tasks, coordinated by a sub-generator. Before publishing, the team broke up what had been a monolith, added TypeScript typings and raised test coverage.jlong, published 2025-05-27
UI5 MCP Server Got Extended for UI Integration Cards GenerationUI5 MCP Server Got Extended for UI Integration Cards GenerationVersion 0.2.1 of the UI5 MCP Server adds three tools for UI Integration Cards: get_integration_cards_guidelines feeds an agent current best practices and API versions, create_integration_card scaffolds a new card project, and run_manifest_validation checks the generated manifest against the schema. The post frames these as closing the same gaps as the server's existing tools — an LLM's outdated or wrong card API knowledge — this time for scaffolding and validating a card rather than a full app.daniel_vladinov, published 2026-01-22
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
Building Secure SAPUI5 Applications: Best Practices for DevelopersBuilding Secure SAPUI5 Applications: Best Practices for DevelopersA developer-facing rundown of secure coding habits for SAPUI5 apps: typed bindings and custom formatters to reject bad input before it reaches a handler, encodeHTML() instead of rendering untrusted HTML, keeping tokens and URLs out of local and session storage, and CSRF token handling on the ODataModel. It sets up linting with ESLint and an eslint-config-ui5 rule set to catch unsafe DOM access, eval calls and unused imports as part of CI, alongside the same input validation instinct: reject invalid input early rather than trust the backend to catch it.Manisha_19, published 2025-12-10
Introducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationIntroducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationThe author's own announcement, and precise about scope: today it catches deprecated key/value entries in CAP's JSON configuration, and the ambition is that it grows into best practices, suggestions and autofixes the way any ESLint plugin does. The implementation detail worth knowing is that it uses modern ESLint's JSON language support rather than a generic parser, which is what makes linting a configuration file rather than source code work at all.published 2025-09-08
Migrate your code with UI5 linter – Autofix has landedMigrate your code with UI5 linter – Autofix has landedUI5 linter v1.12.0 adds an initial autofix, reached with ui5lint --fix, and the post walks through it end to end: the tool first reports a deprecated global reference (sap.ui.model.json.JSONModel), then the fix rewrites it into the equivalent module import and local variable. This first version only handles that one class of deprecation — replacing deprecated globals with imports — with more fix types left for later releases tracked on the tool's GitHub roadmap.published 2025-03-19
A Fiori Launchpad Sandbox for all your CAP-based projects - OverviewA Fiori Launchpad Sandbox for all your CAP-based projects - OverviewWhere cds-launchpad-plugin came from, told as a learning exercise: the author wanted a real problem to teach himself TypeScript on, and picked the thing he kept redoing in every CAP project — a launchpad to see all the UI applications in one place. The origin post for an entry whose 2023 update is also indexed here.published 2022-03-14
A Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupA Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupThe hands-on half published the same day as the overview: the launchpad module wired into the CAP sample repository, step by step from a global cds-dk install. Same-day pairs like this are worth keeping together — the overview argues, this one is the thing you follow.published 2022-03-14
BTP CAP : How to Connect to Remote Services Locally in CAP ApplicationBTP CAP : How to Connect to Remote Services Locally in CAP ApplicationThe same problem four years earlier: a CAP application that consumes a remote service, running locally against the real thing rather than against a mock.showkath_naseem, published 2022-12-12
CAP for nodejs安全的暴露接口练习CAP for nodejs安全的暴露接口练习Starting from the risk-management sample, the walkthrough adds an open ExternalAPI service beside the existing RiskService, then moves every security annotation into a separate service-auth.cds file: @requires: authenticated-user on one entity, role-scoped @restrict grants for RiskViewer and RiskManager on another. It tests the unprotected action locally with cds watch, calling it from Postman with the session cookie read out of SAP Business Application Studio's preview tab. It then deploys to BTP and reads Risks with a client-credentials OAuth token fetched from a service key of the cpapp-auth instance, after changing that entity's READ grant from RiskViewer to authenticated-user, which the post, citing capire's CDS-based Authorization page, describes as a grant for a technical user integrating systems rather than for access from a front end.ArthurYang, published 2024-12-10
CAP with Local App Previews – Tips for Smooth DevelopmentCAP with Local App Previews – Tips for Smooth DevelopmentUI5's virtual endpoints remove the sandbox files a local preview used to need, and this is what that means for a CAP project specifically. Tips from trying it rather than an announcement of it.MioYasutake, published 2025-08-16
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
cds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async Launchpadcds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async LaunchpadThe maintainer on a set of changes rather than on the plugin's original purpose, which is indexing every SAPUI5 project in a workspace into one sandbox launchpad so all of them can be tested together. What moved: it became a CAP plugin, gained UI5 Tooling support, and moved to the async launchpad — each framed as keeping pace with where SAPUI5 itself is going rather than as a feature.published 2023-12-11
Create a Simple CAP Application and Explore the DefaultsCreate a Simple CAP Application and Explore the DefaultsThe shortest way in: a project from the wizard, then a look at what CAP assumed on your behalf. The defaults are the subject rather than the application — which is the right first lesson in a framework whose whole argument is convention over configuration.SAP
Develop CAP Project with Lazyvim in DockerDevelop CAP Project with Lazyvim in DockerA Docker image running Lazyvim with language server support for CDS, TypeScript and JSON, so a CAP project can be developed with an editing experience comparable to VS Code without leaving the keyboard. Narrow by intent, and the useful general point underneath it is that CAP's editor support reaches anything that speaks LSP.published 2024-03-28
Don't Wait for SAP: Unlocking MCP Servers in BAS Right NowDon't Wait for SAP: Unlocking MCP Servers in BAS Right NowA workaround post with a grievance behind it: MCP servers were promoted heavily at SAP TechEd, most IDEs support them, and Business Application Studio limits you to Joule. This is how to run them there anyway. Worth reading as evidence of where the tooling gap sits rather than only for the recipe, which by nature has a shelf life.published 2025-11-27
Establishing connectivity between a local CAP runtime and on-premise systemsEstablishing connectivity between a local CAP runtime and on-premise systemsReaching S/4HANA, an on-premise HANA or any HTTP service from a CAP process running on your laptop — the case where the connectivity proxy the platform provides is not there and the tunnel has to be arranged.vLeonkev, published 2025-10-15
Get an introduction to the cds REPLGet an introduction to the cds REPLcds repl as a way to ask the running model questions directly, which is the fastest route from a suspicion about a query to knowing.SAP
How to Call a Remote OData API from Your Local CAP Java ProjectHow to Call a Remote OData API from Your Local CAP Java ProjectThe Business Accelerator Hub sandbox called from a CAP Java project on a laptop, with a concrete finish line — a localhost URL that returns business partners. Everything needed to get there is listed, Maven and JDK versions included.Umezuki, published 2025-08-11
How to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASHow to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASA specific npm failure when creating a CAP app from a template, and the post now opens with its own July 2025 update saying the version has been published so this instance is gone. It stays useful because the cause — a dependency pointing at a version nobody published yet — recurs, and the unblocking steps are general.Ryota_Ito, published 2025-07-28
Hybrid testing using PostgreSQL on SAP BTP, hyperscaler optionHybrid testing using PostgreSQL on SAP BTP, hyperscaler optionA short note rather than a guide — the author says they came across the feature reading someone else's post on PostgreSQL with Kyma. Hybrid testing against a real PostgreSQL instance, which until then people assumed meant HANA.martinfrick, published 2023-08-08
My CAP Projects ToolboxMy CAP Projects ToolboxA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.vvdries, published 2024-12-23
Remote Debugging of SAP CAPM App - NodejsRemote Debugging of SAP CAPM App - NodejsDebugging a CAP Node.js application that is not on your machine, built up from cds init and a custom action so there is something to breakpoint. The part people need is at the end; the beginning is there so the end is reproducible.darshanv23, published 2025-06-05
Running CAP Node Applications in SAP Business Application StudioRunning CAP Node Applications in SAP Business Application StudioThe Run Configurations tool, which is where binding and mocking live in BAS rather than in a terminal. Three things it does: several named configurations per application in a tree, dependencies bound to real service instances, and OData dependencies mocked. The author notes the configurations are standard launch entries underneath, which is the detail that lets you leave the tool behind if you want to.liat_b, published 2020-10-22
SAP CAP Lessons Learned: SQLite is single threaded, HANA is notSAP CAP Lessons Learned: SQLite is single threaded, HANA is notA page long, and one of the more useful pages here: the local database serialises what the deployed one runs in parallel, so concurrency bugs are invisible until they are not. Filed by the author as something the tutorials do not make clear.LucasMagriniRigo, published 2025-01-22
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
Set up a self-contained development environment for CAP Node.jsSet up a self-contained development environment for CAP Node.jsA CAP development environment that carries its own dependencies, so the machine it runs on stops being part of the setup.SAP
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesSurviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesThree hurdles in running a CAP application locally: services mocked with cds run --with-mocks return no data across OData associations until the ON clause is hand-written into the imported CDS, an on-premise API reached through the SAP Cloud Connector times out because its proxy is part of destinations and connectivity and reachable only from inside SAP BTP, and a Fiori frontend served from the HTML5 Application Repository needs the HTML5 Repo Mock to reach a local backend at all. It closes with the launch configurations the author uses for debugging cds watch locally and attaching to a running Cloud Foundry instance.maxstreifeneder, published 2023-02-02
The fastest and easiest way to run full-stack applications in SAP Business Application StudioThe fastest and easiest way to run full-stack applications in SAP Business Application StudioThe gap between a mocked local run and a real one, and the tooling that closes it — live data, remote services, defaults overridden. The same author's Run Configurations post is the reference for the tool; this is the case it was built for.liat_b, published 2023-08-02
Use mocking to embrace auth in your domain model from the outsetUse mocking to embrace auth in your domain model from the outsetMock users locally so authorization is modelled from the first commit instead of retrofitted — the argument being that auth added late reshapes a domain model rather than sitting on top of it.SAP
Diagrams related to OData entities (CAP & ECC)Diagrams related to OData entities (CAP & ECC)Builds a small CAP service that uses the framework's reflection API to read an OData entity's elements and associations and emits PlantUML diagram source for it, as a hand-rolled alternative to the OpenAPI/Yuml-based diagram export capire documents. The author contrasts the PlantUML result with the OpenAPI/Yuml diagram, calling it more detailed and giving more control over orientation, colors and links. Part 1 of a two-part series; part 2 covers the same idea for ECC/ABAP.Pierre_Godart, published 2022-09-06
BTP CAP : Custom plugin to separate generic change log capture logicBTP CAP : Custom plugin to separate generic change log capture logicWalks through building a custom [CAP](ecosystem:cap) plugin that centralises change-log capture: on cds.once('served') it collects entities annotated @audit, then hooks srv.before('UPDATE') to read the existing record, diff it field by field against the incoming payload, and record old/new values with the user and timestamp. It also documents a cds build failure packaging the plugin's own directory into gen/srv for MTA deployment, fixed by adding it as a copyfiles build-parameter step in mta.yaml.sreehari_vpillai, published 2023-05-10
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
How to build reusable plugin components for CAP Java applicationsHow to build reusable plugin components for CAP Java applicationsA companion to Daniel Schlachter's Reusable components for CAP with cds-plugin, showing the same mechanism on CAP Java: a plugin ships as its own Maven artifact with an event handler and a CdsRuntimeConfiguration implementation, registered through the JDK's ServiceLoader rather than any CAP-specific wiring. The walkthrough builds a cds-emoji-plugin-java jar that decorates @emoji-annotated fields on read, installs it to the local Maven repository, and adds it as a runtime dependency to a cds init --add java bookshop application. It argues the plugin mechanism was not new to CAP Java, just previously undocumented.robinjayasinghe, published 2023-05-16
Reusable components for CAP with cds-pluginReusable components for CAP with cds-pluginThe post that taught the mechanism, and it teaches it by picking a requirement small enough to be absurd: every string a service returns should end in a random emoji. Working through that on the bookshop example leaves nothing to argue about except the plumbing, which is the point — what a cds-plugin is, where it hooks in, and why packaging it beats copying it into the next project. Vinícius Barrionuevo credits this post as the thing that gave him the idea for sap-cap-sdm-plugin, and it is hard to read the plugin ecosystem in this graph without it.published 2023-04-30
SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3Building on Reusable components for CAP with cds-plugin by Daniel Schlachter, this part walks through a custom CAP plugin — a cds-plugin.js plus a lib_cap_dox.js helper — that authenticates against SAP's Document Information Extraction (DOX) service and calls its schema and job-status APIs to fill an entity from extracted document fields. It covers reading the service key from Cloud Foundry (cf service-key) for the OAuth token endpoint, and dynamically mapping DOX's header and line-item output onto CAP entity properties.sabarna17, published 2024-06-11
A Handy Custom Report to Scan SAP CDS Views for Usage of Search StringsA Handy Custom Report to Scan SAP CDS Views for Usage of Search StringsA custom SE38 report, ZSCAN_CDS_VIEWS, reads each Z-prefixed CDS view's DDL source through the function module /ABEX/SEFW_MOD_CVA_HANA and scans it for a list of search strings, listing the view and matching code line in an ALV grid. The author built it because ABAP Development Tools for Eclipse's ABAP Source Search, the code search SAP ships, is unwieldy for scanning many custom views at once or searching several strings together.shasankgupta024, published 2026-01-08
Add useful Extensions to Dev spaces in SAP Business Application StudioAdd useful Extensions to Dev spaces in SAP Business Application StudioStarts from the point capire makes — that CAP is editor-agnostic and BAS is the preconfigured option — and then does the thing that undoes preconfiguration: adds two extensions to a dev space for initialising data in a CAP application, with the uninstall procedure as well as the install. The uninstall half is what makes it worth keeping.showkath_naseem, published 2022-11-13
Avoiding Data Loss When Loading Initial Data with CSV Files in CAPAvoiding Data Loss When Loading Initial Data with CSV Files in CAPcds add tiny-sample gives you a CSV in db/data and it loads on deploy, which looks like a way to seed a productive application. The catch, stated plainly: change the CSV or the schema and HANA is reinitialised from the file, taking whatever users had entered with it.MioYasutake, published 2025-09-15
CAP: Consume External Service - Part 1CAP: Consume External Service - Part 1Builds a CAP Node.js service from scratch that consumes the public NorthWind OData V4 service: cds import turns its EDMX metadata into a CSN model under srv/external, and a CatalogService projects Products from it with a custom READ handler that runs the request through cds.connect.to('NorthWind'). Shows the same projection working two ways — against a CSV mocked under srv/external/data with the <service>-<entity>.csv naming the framework expects, then against the real service once credentials.url is added to the CAP configuration and @sap-cloud-sdk/http-client is installed — and defers routing that connection through the Cloud Foundry Destinations service to the next post in the series.published 2020-05-26
Handling CSV Data Deployment in CAP HDI Without Data LossHandling CSV Data Deployment in CAP HDI Without Data LossThe same trap from the HDI side: .hdbtabledata hands the container full ownership of the data, so the next deployment overwrites the table from the file. Two independent posts three months apart on the same sharp edge, which is a fair signal about how sharp it is.Sekar_Somasundaram, published 2025-06-04
New tutorial for UI5 Middleware FE MockserverNew tutorial for UI5 Middleware FE MockserverA step-by-step tutorial accompanying a Devtoberfest session walks through @sap-ux/ui5-middleware-fe-mockserver across nine exercises: zero-config mock data generated from OData metadata, custom JSON datasets with consistent IDs and referential keys, JavaScript actions, multi-service and cross-service scenarios, tenant isolation through sap-client, returning 400/404/422/500/501 responses for UI error-handling tests, and offline end-to-end tests run with wdi5. A companion tool, ui5-middleware-odata-recorder, captures real backend OData traffic to generate the mock datasets used for offline replay.published 2025-10-14
Random Numbers and Probability Distributions in the ABAP Environments for 2508Random Numbers and Probability Distributions in the ABAP Environments for 2508Introduces CL_ABAP_PROB_DISTRIBUTION and CL_ABAP_PROB_DISTRIBUTION_DF34, new ABAP system classes that generate random numbers from a distribution — normal, lognormal, exponential, gamma, chi-squared, Poisson, binomial, Student's t, hypergeometric, geometric — rather than only the uniform spread CL_ABAP_RANDOM gives. The worked example builds customer payment dates clustered around a due date instead of spread evenly across it, which is the shape seed data needs to look real rather than merely present; the same classes also compute CDFs and quantiles for statistical tests like a t-test on payment lateness. SAP plans this for on-premise and the private cloud with the 2025 major S/4HANA release, subject to change.kilian_kilger, published 2025-08-18
Using the UI5 Mockserver for Client-Specific Data and TestingUsing the UI5 Mockserver for Client-Specific Data and TestingWalks through a same-day feature in @sap-ux/ui5-middleware-fe-mockserver, 'Support autoloading mockdata file for specific tenants', which loads a <Entity>-<client>.json file keyed to the sap-client URL parameter and falls back to the entity's plain JSON file when no client-specific one exists. Shows the setup replacing generated mock data with hand-written JSON, then drives the same sap-client parameter through separate package.json scripts so wdi5 end-to-end tests can run against distinct tenant datasets.published 2024-11-18
Claude ported ABAP functions to new APIClaude ported ABAP functions to new APIA first-person account of using Claude Code, driven through the sapcli command line, to install and repair RFC function modules that let a CI pipeline control abapGit and gCTS remotely, rather than treating git as a way to read ABAP source. Instead of trusting a local checkout, Claude read the abapGit login manager class and queried the target system's own type catalogue through sapcli, then used what it found to update a renamed API method and swap a TABLES parameter's structure for the table type BAPIRET2_T.jakub_filak, published 2026-03-16
How to extend ABAP Test Cockpit on SAP BTP for custom use casesHow to extend ABAP Test Cockpit on SAP BTP for custom use casesWalks through the released, C1-contract APIs and CDS views for extending ABAP Test Cockpit on SAP BTP: the single entry point CL_SATC_API=>CREATE_API_FACTORY, reading a run's findings and headers through SATC_API_FINDINGS and SATC_API_RESULT_HEADERS, starting synchronous local ATC runs for a transport, approving or rejecting exemptions programmatically, configuring approver responsibility areas without a UI, and implementing a custom check through IF_CI_ATC_CHECK. Code snippets show each API in use, including the CDS views that join ATC results to the Custom Code Migration app's own findings.OlgaDolinskaja, published 2026-05-20
How to Scan Custom ABAP for Security Issues in Eclipse (Step-by-Step)How to Scan Custom ABAP for Security Issues in Eclipse (Step-by-Step)Written by someone who works on the tool, this is a setup walkthrough for the RedRays ABAP Scanner Eclipse plugin: get a demo API key, install the plugin via an update site, point it at a backend, and scan an ABAP object from the Project Explorer. Findings for SQL/ADBC injection, OS command execution, path traversal, missing AUTHORITY-CHECK and similar are grouped by severity with a CVSS score and an automated exploitability check, and a REST API extends the same scan to a CI/CD allow/block gate on a transport.vahagn, published 2026-07-03
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
A Fiori Launchpad Sandbox for all your CAP-based projects - OverviewA Fiori Launchpad Sandbox for all your CAP-based projects - OverviewWhere cds-launchpad-plugin came from, told as a learning exercise: the author wanted a real problem to teach himself TypeScript on, and picked the thing he kept redoing in every CAP project — a launchpad to see all the UI applications in one place. The origin post for an entry whose 2023 update is also indexed here.published 2022-03-14
A Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupA Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupThe hands-on half published the same day as the overview: the launchpad module wired into the CAP sample repository, step by step from a global cds-dk install. Same-day pairs like this are worth keeping together — the overview argues, this one is the thing you follow.published 2022-03-14
CAP full-stack testing with BDD flavourCAP full-stack testing with BDD flavourIntroduces Behavior-Driven Development for CAP applications: specifications written in Gherkin against a running app, validated by Cucumber, using cds-cucumber's ready-made step definitions for SAP Fiori elements and OData screens. The library handles service lifecycle — starting the app, assigning a port, driving the browser and authenticating a named user — and its OData steps know the service's entities and fields from the CDS model itself, so a scenario can open a list report, search it and assert row counts without hand-written glue code.published 2023-10-10
cds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async Launchpadcds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async LaunchpadThe maintainer on a set of changes rather than on the plugin's original purpose, which is indexing every SAPUI5 project in a workspace into one sandbox launchpad so all of them can be tested together. What moved: it became a CAP plugin, gained UI5 Tooling support, and moved to the async launchpad — each framed as keeping pace with where SAPUI5 itself is going rather than as a feature.published 2023-12-11
Create Automated System Tests for SAP Cloud Application Programming Model ProjectsCreate Automated System Tests for SAP Cloud Application Programming Model ProjectsEnd-to-end tests driving the UI with wdi5, run in the pipeline — the layer above cds.test, which stops at the service boundary.SAP
Enhancing Unit Testing in SAP CAP Java Applications with GitHub CopilotEnhancing Unit Testing in SAP CAP Java Applications with GitHub CopilotBuilt on SAP's own CAP Java unit-testing guide, and the question is narrow: how much of that does an assistant actually write for you. The author's own getting-started post is the one to read first.Anjali_Pathak, published 2025-09-04
How to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpHow to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpEntities are exposed with full CRUD by default, and this is how to take operations away again — @Capabilities for Insert, Update and Delete individually, @readonly for the blunt version. Tested with .http files rather than a UI, which keeps the check on the service.DeepaRagho, published 2026-05-22
New tutorial for UI5 Middleware FE MockserverNew tutorial for UI5 Middleware FE MockserverA step-by-step tutorial accompanying a Devtoberfest session walks through @sap-ux/ui5-middleware-fe-mockserver across nine exercises: zero-config mock data generated from OData metadata, custom JSON datasets with consistent IDs and referential keys, JavaScript actions, multi-service and cross-service scenarios, tenant isolation through sap-client, returning 400/404/422/500/501 responses for UI error-handling tests, and offline end-to-end tests run with wdi5. A companion tool, ui5-middleware-odata-recorder, captures real backend OData traffic to generate the mock datasets used for offline replay.published 2025-10-14
Simplifying SAP BTP Authentication in Pipelines with SAP Passport and PlaywrightSimplifying SAP BTP Authentication in Pipelines with SAP Passport and PlaywrightClient-certificate login to BTP works locally and has historically not worked in automated pipelines. The post uses Playwright's then-new client certificate support to close that, which is a sideways use of a browser automation library and the reason it is worth recording — the constraint it removes is a CI constraint, not a testing one.published 2024-11-08
Using Postman for API Testing with XSUAAUsing Postman for API Testing with XSUAAA way to get a JWT without routing traffic through the approuter and picking the token out of it. The author walks the alternatives first — redirect through the router, intercept the token — and says what is wrong with each, before requesting the token from the service directly.mariusobert, published 2020-03-02
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
How to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSHow to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSA dependency that is ESM-only inside a project that is CommonJS, and the author's judgement that converting the project was too risky. What follows is the esbuild workaround, which is the honest answer when the ecosystem has moved and your codebase has not.Jacky_Liu1, published 2025-08-01
How we could potentially have nestjs as runtime for SAP CAPHow we could potentially have nestjs as runtime for SAP CAPA proof-of-concept that swaps @sap/cds's ApplicationService and ODataAdapter dispatch for NestJS controllers, providers and interceptors, built by the author to learn NestJS rather than to ship a runtime. It works through CAP's run-dispatch-handle loop and AsyncLocalStorage-based transaction boundaries in detail before mapping them onto NestJS dependency injection and interceptors — one community answer to the controller-service-repository layering question core TypeScript support leaves open. The author's own conclusion is that the result reimplements CAP Java in Node.js, and they do not plan to take it further.alex_myakinkii, published 2024-09-19
Quick Implementation of DI/DI Container on SAP CAP: Node.js Hands-on PartQuick Implementation of DI/DI Container on SAP CAP: Node.js Hands-on PartThe hands-on half of a pair — the theory is in the author's earlier post — built on the official bookshop sample with the directories flattened so the pattern is visible rather than the scaffolding. Assumes CAP and TypeScript already.Umezuki, published 2025-05-02
Use TypeScript with the SAP Cloud Application Programming ModelUse TypeScript with the SAP Cloud Application Programming ModelWritten from the position of someone who avoided JavaScript for years and then had to cover CAP, which gives it a useful angle: what TypeScript buys a person arriving from a typed language, and where to start rather than how to finish. Ends on a worked example rather than a survey.KevinR, published 2024-06-24
debug a CAP app with UI5 TypeScript UI component with VS Codedebug a CAP app with UI5 TypeScript UI component with VS CodeDebugging both runtimes at once — the CAP server and a UI5 component written in TypeScript, the latter stepped through in its own sources rather than in the transpiled output. Written when TypeScript for UI5 had just become possible, and the combination it sets up is the one CAP's app folder invites.published 2021-11-16
TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)The middle part of three, and the one about SAP: where TypeScript is supported across a side-by-side extension on BTP, as of July 2023. It says the SAP Cloud SDK already generates OData clients as .ts files and UI5 ships types for its controls and modules, the ground of TypeScript support in UI5, while CAP offers standard types and the new @cap-js/cds-typer generates types for a service, which is typing, with the caveat that running cds-ts commands could overwrite what cds-typer generated.MikeDoyle, published 2023-07-05
TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)The middle part of three, and the one about SAP: where TypeScript is supported across a side-by-side extension on BTP, as of July 2023. It says the SAP Cloud SDK already generates OData clients as .ts files and UI5 ships types for its controls and modules, the ground of TypeScript support in UI5, while CAP offers standard types and the new @cap-js/cds-typer generates types for a service, which is typing, with the caveat that running cds-ts commands could overwrite what cds-typer generated.MikeDoyle, published 2023-07-05
Create Automated System Tests for SAP Cloud Application Programming Model ProjectsCreate Automated System Tests for SAP Cloud Application Programming Model ProjectsEnd-to-end tests driving the UI with wdi5, run in the pipeline — the layer above cds.test, which stops at the service boundary.SAP
Using the UI5 Mockserver for Client-Specific Data and TestingUsing the UI5 Mockserver for Client-Specific Data and TestingWalks through a same-day feature in @sap-ux/ui5-middleware-fe-mockserver, 'Support autoloading mockdata file for specific tenants', which loads a <Entity>-<client>.json file keyed to the sap-client URL parameter and falls back to the entity's plain JSON file when no client-specific one exists. Shows the setup replacing generated mock data with hand-written JSON, then drives the same sap-client parameter through separate package.json scripts so wdi5 end-to-end tests can run against distinct tenant datasets.published 2024-11-18
By-passing function modules in aunitsBy-passing function modules in aunitsWalks through registering a function module as a test double with CL_FUNCTION_TEST_ENVIRONMENT inside an ABAP Unit test class: class_setup names the function module to replace, an input configuration matches on the importing parameters, and an output configuration sets what the double returns before the calling class is asserted against it. The Function Test Double Framework is presented as ABAP Unit's way of testing code that calls a function module — procedural, without a class's native test-double support — without triggering the database, RFC or BAPI calls the real function module would make.Jagadish_R31, published 2026-06-01
SAP Business Technology Platform: Authorization and Trust Management ServiceSAP Business Technology Platform: Authorization and Trust Management ServiceWalks through how the SAP Authorization and Trust Management service secures a BTP application: scopes, attributes and role templates in the security descriptor, and the OAuth 2.0 resource-owner, client and resource-server roles it builds on. Covers the XSUAA microservice as the OAuth 2.0 authorization server bound to each application through its service broker, the signed JSON Web Token it issues after authentication, and the App Router's place in front of the resource apps as the gateway that starts authentication and checks for cross-site request forgery.SekhuteTK, published 2022-09-09
Simple Table Maintenance in SAP Fiori Using UI5 Smart ControlsSimple Table Maintenance in SAP Fiori Using UI5 Smart ControlsStarts from SM30 and the table maintenance dialog it generated with almost no code, then asks what the equivalent is now. That framing is the value: a maintenance screen for a custom table was a solved problem in SAP GUI and is not an obviously solved one on Fiori, and the post works through what smart controls give you towards it.published 2025-02-11
The Complete Guide to Calling Actions in UI5 with Custom CodeThe Complete Guide to Calling Actions in UI5 with Custom CodeWritten because the documentation is thin and the samples sparse, and openly as a note to the author's future self — hand-coding an action call has become a rare task for anyone mostly working in Fiori elements, which is exactly why it is hard to look up when it comes round. Comes with a CAP sample project, so the service half is there too.published 2025-07-21
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
A simple example of a SAP RAP Application based on Legacy API without UUID keysA simple example of a SAP RAP Application based on Legacy API without UUID keysWalks through building a managed RAP business object over the Flight Reference Scenario's Travel and Booking entities with unmanaged save and late numbering, so CRUD operations route through the legacy /DMO/FLIGHT_TRAVEL_CREATE, _UPDATE and _DELETE function modules instead of generated persistence, a worked case of ABAP's transactional model. Covers the ADJUST_NUMBERS and SAVE_MODIFIED saver methods that map preliminary draft keys to the legacy-assigned travel and booking IDs, and a GetDefaultsForBookings action that proposes the next booking ID during draft handling.cseijas, published 2025-09-01
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
Custom Handlers for Entities in SAP CAPCustom Handlers for Entities in SAP CAPWritten from the moment of not knowing: a two-level composition with drafts, the Fiori elements UI working perfectly, and no idea which handlers are actually needed. What comes out is the action lifecycle laid out as a reference — NEW, EDIT, PATCH and the rest — with a matrix saying which handler fires for which, which is the thing the documentation leaves you to assemble.xavisanse, published 2026-02-20
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceExtend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServiceWalks through writing a service definition in SAP Business Application Studio that projects entities from an existing CDS model: one entity gets @odata.draft.enabled because Fiori Elements only shows CRUD actions on a draft-enabled entity, and a read-only projection of an already-imported SuccessFactors OData entity fails with the generic handlers because the call is delegated to the remote service, so a custom handler is needed. Running cds watch then serves the entities, drafts and $metadata at the declared service path.published 2022-03-23
How to ensure that users can efficiently enter data in SAP Fiori elements applicationsHow to ensure that users can efficiently enter data in SAP Fiori elements applicationsGuidance for draft-enabled Fiori Elements applications aimed at the user who spends their day in them: entering data quickly and by keyboard, on a slow network, without the round trips a draft-backed form can otherwise impose. Written from the design side rather than the implementation side, which is the half most CAP writing about drafts leaves out.published 2022-12-05
Keep the Core Clean with Rizing CDSXKeep the Core Clean with Rizing CDSXJhodel Cailan recounts hitting a wall where neither RAP nor CAP supported more than a non-draft OData V2 service for the side-by-side extensibility scenario he wanted, and built Rizing CDSX (@rizing/cds-extension) to add draft handling over a shadow persistence entity that mirrors a remote, cds import-ed service. He walks through the @cdsx.api annotation that proxies the entity, bootstrapping the module from cds.on('bootstrap') in server.js, and testing the result through a generated Fiori elements app backed by an OData V4 draft service.published 2023-05-07
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
UI5ers Buzz #56: New full-stack UI5 sample app featuring CAP + OData V4 + draft modeUI5ers Buzz #56: New full-stack UI5 sample app featuring CAP + OData V4 + draft modeA sample app published as code rather than described — SAPUI5 over a CAP service with OData V4 and draft mode — and the note that it was built on what the team learned from an application written in March 2020 to help the German Foreign Office repatriate citizens. That provenance is unusual and worth keeping.AndreasKunz, published 2020-11-06
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
Adaptation Project: SAP標準Fioriアプリのフィルタ項目を必須入力へするための方法Adaptation Project: SAP標準Fioriアプリのフィルタ項目を必須入力へするための方法Walks through making a filter field mandatory on a standard SAP Fiori elements app (Manage Purchase Orders) without modifying it: an Adaptation Project created in SAP Business Application Studio adds a local OData annotation file that applies the Org.OData.Capabilities.V1 FilterRestrictions term — RequiresFilter and RequiredProperties on the Plant field — and registers it in manifest.appdescr_variant.json against the mainService data source. It also shows how to look up the target OData service, entity container and entity set through the SAP Fiori Apps Reference Library and the service's own metadata.hironobu_nakayama, published 2025-10-19
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
Building an Enterprise Application Using Fiori Elements and CAP - Part 1Building an Enterprise Application Using Fiori Elements and CAP - Part 1Part one of three, and it is all backend: the CAP service the UI will sit on. The author states the constraint the series works under — simple enough for someone new to the stack, without departing from the standard project layout.Farooq, published 2025-12-10
Building an Enterprise Application Using Fiori Elements and CAP – Part 2Building an Enterprise Application Using Fiori Elements and CAP – Part 2The generator run and the List Report it produces, on top of the service from part one. This is where the annotations start doing the work rather than the CDS entities.Farooq, published 2025-12-10
CALL BAPI IN CUSTOM ENTITY THROUGH RAPCALL BAPI IN CUSTOM ENTITY THROUGH RAPBuilds a read-only RAP Custom Entity, ZCE_BANK, whose query provider class calls BAPI_BANK_GETDETAIL directly instead of reading a CDS-based persistency, handling filtering, sorting, paging and the total count from the request object in IF_RAP_QUERY_PROVIDER~SELECT. It walks through the @UI annotations — headerInfo, presentationVariant, lineItem, selectionField, identification — that drive the entity's Fiori Elements list report, which is Fiori annotations on the ABAP door.harsha_reddy24, published 2025-12-09
Calling bound / unbound CAP actions from Fiori elements application.Calling bound / unbound CAP actions from Fiori elements application.invokeAction from the Fiori elements Edit flow API, with the difference between bound and unbound actions spelled out first because the call shape differs. Under three thousand characters and it answers exactly one question.vidhyasagarmule, published 2024-09-07
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
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
Case-insensitive filters in Fiori Elements (List report + CAP)Case-insensitive filters in Fiori Elements (List report + CAP)A blocker rather than a feature: filters on a List Report are case-sensitive, the business wanted them not to be, and the CAP backend is where it gets fixed. Node and Java both.Kishannaicker, published 2022-04-26
Create an SAP Fiori Elements UI for CAP Node.js applications in SAP Business Application StudioCreate an SAP Fiori Elements UI for CAP Node.js applications in SAP Business Application StudioWritten the week Fiori elements gained OData V4 support, which is what made a generated List Report over a CAP Node.js service possible at all. Short, and dated in the useful sense — it marks when the generator stopped being a V2-only path.liat_b, published 2021-01-11
Create Fiori List Report with object page using CAPM(node.js) ServiceCreate Fiori List Report with object page using CAPM(node.js) ServiceThe short version of the generated-app walkthrough — an existing CAPM Node.js service, and the List Report with Object Page on top of it. Under three thousand characters.Md_sanaullah, published 2023-09-06
Creating Material Master Data in SAP S/4HANA Using RAP and EML .Creating Material Master Data in SAP S/4HANA Using RAP and EML .Builds an unmanaged Transactional model RAP business object for Article (Material) master data on top of the standard interface views I_Product, I_ProductDescription and I_ProductPlant, replacing BAPI_MATERIAL_SAVEDATA with EML operations in the create, update and custom extendplant behaviour methods. A CDS metadata extension adds the Fiori annotations — headerInfo, facets, line items and value helps — that drive the generated Fiori elements UI.Sudhanshu07, published 2026-01-08
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
Develop a Full-Stack CAP Application Following SAP BTP Developer's GuideDevelop a Full-Stack CAP Application Following SAP BTP Developer's GuideThe eight-part path SAP's own Developer's Guide prescribes: a CAP service, Fiori Elements over it, custom logic, authorization, tests, and the preparation deployment needs. It is the closest thing to an official answer to 'what does a whole CAP application look like', which is why it sits under reference applications rather than under any one of the capabilities it touches.SAP
Discovering SAP Fiori Elements Analytical functions by implementing SAP Support Message ReportingDiscovering SAP Fiori Elements Analytical functions by implementing SAP Support Message ReportingAnalytical annotations learned by building something the author wanted — a view over SAP support messages — after a conversation in February 2021 that the post dates precisely. Exploration written up as exploration.published 2021-03-14
Dynamic Criticality in SAP CAP Using Fiori Elements and Node.jsDynamic Criticality in SAP CAP Using Fiori Elements and Node.jsColouring rows by status, which sounds like a UI question and is not: criticality is a value the service has to compute and expose, so the work is a virtual element in CDS and the annotation that points at it. Comes from a real requirement — business users wanting to spot the records that need attention.Pranesh_SD, published 2026-06-05
Extend SAP SuccessFactors on SAP BTP with CAP - Develop the SAP Fiori Elements ApplicationExtend SAP SuccessFactors on SAP BTP with CAP - Develop the SAP Fiori Elements ApplicationThe UI instalment of the SuccessFactors extension series — the imported service is already modelled and this is the application over it. Names the three posts it depends on.ale_biagi, published 2022-03-30
Fiori Elements Standard App Extension using virtual Elements: Manage Billing Document ( Real Time Extension Scenario)Fiori Elements Standard App Extension using virtual Elements: Manage Billing Document ( Real Time Extension Scenario)Extending a delivered standard application — Manage Billing Documents — rather than building a new one, using virtual elements to add what the standard model does not carry. A different problem from most of this capability, and a common one.mohit_bansal3, published 2021-08-24
Fiori Elements のList Reportアプリにカスタムアクションボタンを追加し、カスタムコントローラーを用いてアイコン化するFiori Elements のList Reportアプリにカスタムアクションボタンを追加し、カスタムコントローラーを用いてアイコン化するIn Japanese. A custom action button added to a generated List Report and then given an SAPUI5 icon through a custom controller — the point where an annotation-driven app needs a piece of code, and what that costs.takayuki_tanaka, published 2024-08-02
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-2]Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-2]Part 1 left a working OData service whose Fiori preview showed nothing useful. This is the annotations that fix that — the UI vocabulary added to the CDS model until the generated list report has columns worth reading.sanjucs, published 2026-05-07
How to Control the Visibility of CRUD and Custom Actions in Fiori Elements Based on AuthorizationHow to Control the Visibility of CRUD and Custom Actions in Fiori Elements Based on AuthorizationHiding Create, Edit and custom action buttons according to what the user may actually do — the join between the authorisation model and the annotations, which is where the two usually fail to agree and the UI offers something the service will refuse.published 2025-05-14
How to ensure that users can efficiently enter data in SAP Fiori elements applicationsHow to ensure that users can efficiently enter data in SAP Fiori elements applicationsGuidance for draft-enabled Fiori Elements applications aimed at the user who spends their day in them: entering data quickly and by keyboard, on a slow network, without the round trips a draft-backed form can otherwise impose. Written from the design side rather than the implementation side, which is the half most CAP writing about drafts leaves out.published 2022-12-05
Introducing the Cloud Application Programming Model (CAP)Introducing the Cloud Application Programming Model (CAP)SAP's own general-availability announcement for CAP, laid out as a Golden Path: a data model and service defined in CDS gets a generated service provider that serves metadata publishing and CRUD requests, fills in primary keys and audit data, and writes trace and audit logs without application code. The same CDS model carries annotations that translate to OData vocabularies and generate a Fiori elements app skeleton, which is how Fiori annotations work in CAP.Daniel7, published 2018-06-05
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
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
SAP BTP Developer's Guide: Extending Fiori Elements with the Flexible Programming ModelSAP BTP Developer's Guide: Extending Fiori Elements with the Flexible Programming ModelExtension points, building blocks and controller extensions in the Flexible Programming Model, aimed at developers who know the annotations but stop where the floorplan does. The premise is that the capability has been available for a while and is still being discovered, which is a fair description of where most Fiori Elements work runs out of documented ground.published 2025-10-15
SAP Fiori Application Generator Available in Open SourceSAP Fiori Application Generator Available in Open SourceThe SAP Fiori tools team announces that the code behind @sap/generator-fiori has moved entirely to open source, and names the packages it is built from: writers that output SAP Fiori elements and freestyle SAPUI5 application files, inquirer prompts for picking a back end, and ABAP deploy tasks, coordinated by a sub-generator. Before publishing, the team broke up what had been a monolith, added TypeScript typings and raised test coverage.jlong, published 2025-05-27
SAP Fiori Element using CAP Model – List Report AppSAP Fiori Element using CAP Model – List Report AppThe build half of the same author's pair: the List Report application over the CAP model introduced in the previous post.jhodel18, published 2020-10-19
SAP Fiori Elements using CAP Model - IntroductionSAP Fiori Elements using CAP Model - IntroductionThe introduction to a demo project, and it says where the project came from — exploring what the then-new Fiori tools could do. Context rather than code; the List Report post is the one that builds.jhodel18, published 2020-09-29
Side Effects in Fiori: Triggering Actions and Updating Data in Your Unmanaged RAP ApplicationSide Effects in Fiori: Triggering Actions and Updating Data in Your Unmanaged RAP ApplicationShows how to add a Common.SideEffects Fiori annotations block to an unmanaged RAP application's annotation.xml, naming the action and the navigation path of the entity set it should refresh, for the case the RAP layer does not refresh automatically: a bound action whose returned instance differs from the bound one, a copy action for example. Works through a "Redetermine All Quotations" button as the example and verifies the resulting POST and GET calls in the browser's network tab.VarunVarshney, published 2024-09-02
Simple Table Maintenance in SAP Fiori Using UI5 Smart ControlsSimple Table Maintenance in SAP Fiori Using UI5 Smart ControlsStarts from SM30 and the table maintenance dialog it generated with almost no code, then asks what the equivalent is now. That framing is the value: a maintenance screen for a custom table was a solved problem in SAP GUI and is not an obviously solved one on Fiori, and the post works through what smart controls give you towards it.published 2025-02-11
The SAP Fiori elements feature showcase with CAP CDS annotationsThe SAP Fiori elements feature showcase with CAP CDS annotationsThe feature showcase, which is the closest thing to a reference for what the annotations can do, presented here with its CAP CDS side. Short, because the value is in what it points at.stefaniehager, published 2021-12-07
Tips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiesTips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiesFour settings, from somebody who works on the annotation language server. The premise is the interesting part: CAP's annotation syntax is looser than ABAP CDS or EDMX — a record can be written with or without an explicit type — so the completion has to guess how verbose you want it, and this is where you tell it. Then filtering the completion list, reading the icons, ordering diagnostics by severity, and turning i18n problems on only when you want them.maryana_naboka, published 2021-10-25
Tree-Table Support in CAP is Now Generally AvailableTree-Table Support in CAP is Now Generally AvailableThe announcement that closes a gap other posts here worked around for years — hierarchy maintenance for Java in February, recursive support in March, generally available since July. Read it beside the 2022 post that had to build hierarchies by hand.published 2025-09-01
Use SAP CAP SAPUI5 Smart Filter to Show Value Help that are not Associated EntititesUse SAP CAP SAPUI5 Smart Filter to Show Value Help that are not Associated EntititesValue help for a field with no association behind it, which is the case the annotation assumes away. Short, and the workaround is the content.JhoelAnthonyRamosRomeroPE, published 2024-10-07
XML Annotations: The Essentials Before Adapting Documentation Samples to Your ProjectXML Annotations: The Essentials Before Adapting Documentation Samples to Your ProjectWhat to understand before copying an annotation out of the UI5 Demo Kit, which is what everybody actually does. The samples assume context the sample does not carry, and adapting one without that context is where the afternoon goes.MioYasutake, published 2026-04-09
CAP, CORS and custom headersCAP, CORS and custom headersWhat CAP itself does about CORS, and where it stops. The starting point is a colleague's request and a deliberate constraint: @sap/approuter has full CORS support, but the author wanted to know what the CAP server offers on its own and how to extend it. Ends up covering preflight requests and custom servers, which is the mechanism a frontend hosted outside BTP actually runs into.published 2024-04-11
🚀 秒速で学ぶ 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 Deploy a Custom Fiori App to S/4HANA Public Cloud and Add a Tile in SAP Build Work ZoneHow to Deploy a Custom Fiori App to S/4HANA Public Cloud and Add a Tile in SAP Build Work ZoneA step-by-step walkthrough of taking a RAP-based Fiori app from SAP Business Application Studio deployment to a working tile in SAP Build Work Zone, standard edition on SAP S/4HANA Cloud Public Edition: the crossNavigation/inbounds block in manifest.json that creates the Launchpad App Descriptor Item, the IAM App that links it to a Business Catalog and Business Role, and the semantic-object-and-action intent Work Zone resolves against. SSO between BTP and S/4 works because both trust the same Cloud Identity Services tenant.sushweta_bhattacharya, published 2026-05-28
Step-by-Step Guide to Display System Details on SAP Fiori Launchpad ShellStep-by-Step Guide to Display System Details on SAP Fiori Launchpad ShellA step-by-step build of a plugin for the SAP Fiori launchpad shell that shows the system ID and client on every app it hosts: an OData service modelled in SAP Gateway Service Builder (SEGW), its GetEntitySet method redefined to call the function module RSAPI_CTC_GET_SYSTEM_DETAILS, then consumed from a project in SAP Business Application Studio with the Component.js and manifest.json changes a shell plugin needs instead of a standalone app. It covers the registration step a plugin needs beyond a normal Fiori app: a Catalog and Target Mapping with Semantic Object Shell and Action Plugin, deployed on-premise and assigned to roles.RahulManchala, published 2025-07-30
Developing Mobile Apps with SAP BuildDeveloping Mobile Apps with SAP BuildA tutorial that builds a cross-platform mobile app with the Mobile Development Kit on top of the CAP-based data service from the author's earlier posts, using the mobile Dev Space in SAP Business Application Studio to configure and deploy the app to SAP Mobile Services. It sets up the mobile destination against SAP Destination service two ways — reusing the BTP destination already created for the CAP service, or an Internet Destination with OAuth2 User Token Exchange and a manually retrieved client secret — and turns on Cross Context SSO so a token issued in the browser carries into the generic SAP Mobile Services Client app on the phone.published 2025-05-22
New POD 2.0 Framework: The New Generation of SAP Digital Manufacturing Worker UIsNew POD 2.0 Framework: The New Generation of SAP Digital Manufacturing Worker UIsThe opening post of SAP's sixteen-part series on POD 2.0, the UI framework inside SAP Digital Manufacturing for building worker-facing execution screens: it replaces the architectural foundation of the existing POD model, drops the fixed POD types such as Work Center and Order in favour of POD templates, and exposes contextual execution data directly to the UI layer. The edge to POD plugins holds on what it states about plugins themselves: the large monolithic plugins of the old framework have been broken into smaller, focused components, and layout, dialogs, buttons and actions that previously required UI extensions or custom plugins are configured in a WYSIWYG designer instead. It stops at the direction, with no code, no API and no packaging steps: new execution features will target the new framework and the legacy POD architecture will gradually phase out, while the designer, custom dialogs, dynamic PODs and notifications are left to the fifteen later posts the series list names.ManoelCosta, published 2026-02-10
Enable App-to-App Navigation in BASEnable App-to-App Navigation in BASTesting navigation between two Fiori applications inside Business Application Studio, which Web IDE Full-Stack made easy and BAS initially did not. Two paths: between Fiori elements applications it is a few clicks in Fiori tools with both apps in the same workspace, and for a freestyle application the same result takes a short sequence of manual steps. Written in 2021 against the Fiori tools of the time, so read the mechanism rather than the clicks.published 2021-05-24
Creating a Custom F4 Help for Currency Fields in ABAP Using F4IF_INT_TABLE_VALUE_REQUESTCreating a Custom F4 Help for Currency Fields in ABAP Using F4IF_INT_TABLE_VALUE_REQUESTWalks through building a custom F4 help popup for a currency selection-screen field: an AT SELECTION-SCREEN ON VALUE-REQUEST handler reads currency codes and texts from TCURC and TCURT into an internal table, then passes it to F4IF_INT_TABLE_VALUE_REQUEST to render the popup list. It is offered as a replacement for the field's standard search help when that does not fit the business requirement.vinodkumarreddyappannagari, published 2026-06-03
Create your first CAP pluginCreate your first CAP pluginA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.published 2024-12-09
Combine Power Automate, Microsoft Teams Approvals and an SAP Cloud Application Programming Model (CAP) AppCombine Power Automate, Microsoft Teams Approvals and an SAP Cloud Application Programming Model (CAP) AppWeighs how to give an approver in a bookshop-demo CAP app a screen to act on — S/4HANA's My Inbox via a custom task provider class, the not-yet-GA SAP Task Center, Microsoft Outlook, Microsoft Teams or plain mail — and settles on Teams approvals, wired to a Power Automate flow that calls the app's OAuth2-secured API through a custom connector. The setup worked, but every request runs as the one user who created the connection, since OAuth2 client credentials flow isn't yet supported for Power Automate's custom connectors.published 2021-04-29
Configure Journal Entry Posting Approval from Store Template in Build Process AutomationConfigure Journal Entry Posting Approval from Store Template in Build Process AutomationWalks through deploying SAP's Journal Entry Posting Approval template from the SAP Build Process Automation Store against an on-premise S/4HANA system that has no Secure Network Connection: destinations for S/4HANA via Cloud Connector, for SAP Document Management service, integration option to hold the approval's supporting documents, and for the BPA service and its SMTP mail. It then swaps the template's SNC action groups for basic-connection BAPI calls and deploys the approval's UI5 applications so the task lands in My Inbox, with a Desktop Agent registered to run the unattended document-check and document-post automations.published 2025-01-28
Enhancing Standard CDS Views in FIORI My InboxEnhancing Standard CDS Views in FIORI My InboxExtends the standard CDS view C_PurchaseOrderFs consumed by the Fiori My Inbox purchase-order approval screen, adding requester, buyer-note, supplier-note and approver fields as virtual elements resolved by an ABAP class implementing IF_SADL_EXIT_CALC_ELEMENT_READ, then reloading the OData metadata through transaction /IWFND/MAINT_SERVICE. The result is a My Inbox task screen carrying approval context that was not visible on the standard screen before.gsureshkumar, published 2026-03-02
How to Approve/Reject Task via API in SAP Build Process AutomationHow to Approve/Reject Task via API in SAP Build Process AutomationWalks through the Workflow API's /task-instances PATCH call that SAP Build Process Automation exposes to approve or reject a user task from outside its Inbox, matching the instance ID from the Monitoring tab and the identifier of the button the approval form defines. Covers the permission split between an authenticated user, who needs the ProcessAutomationAdmin or ProcessAutomationParticipant role collection to appear as the one who completed the task, and Client Credentials, which completes it as a generic client identity, plus the error codes the API returns for a missing instance, an already-completed task or an invalid status.Dan_Wroblewski, published 2025-02-10
SAP Build Process Automationで「グループ宛て承認ワークフロー」を構築するSAP Build Process Automationで「グループ宛て承認ワークフロー」を構築するWalks through building a group-addressed approval workflow in SAP Build Process Automation: a user group created in SAP Cloud Identity Services is bound to the app so an approval step can send one request to every group member's inbox at once, closing as soon as any one of them acts. The approval form shown in that inbox carries a Claim button that hides a claimed task from the other members, and the workflow's approval step binds its group recipients to the field the requester chose on the start form.takayuki_tanaka, published 2025-07-25
SAP MDG Cloud Ready Mode: 5 Solution Patterns, Zero BADIs: How We implemented 5 typical requirementsSAP MDG Cloud Ready Mode: 5 Solution Patterns, Zero BADIs: How We implemented 5 typical requirementsA field report from an 80%-complete SAP MDG-BP Cloud Ready Mode implementation, showing five requirements it met without BAdIs or modification: business-partner context and the MDG UI shown inside the My Inbox app, rule-based multi-step approval routing with exclusive-choice nodes, agent determination through BTP role collections, and role-specific Fiori App Variants that give Finance Experts only bank-detail fields while Approvers get full write access. Each pattern works the same way underneath — a BTP Workflow service task reads business-partner attributes over OData into the workflow context, and a user task, route or app variant reacts to it — built with key-user extensibility or SAP Business Application Studio rather than custom ABAP.steffen_ulmer, published 2026-06-01
Testing SAP Build Process Automation task UI in SAP Business Application StudioTesting SAP Build Process Automation task UI in SAP Business Application StudioA task UI built from the Workflow Task UI template cannot be run in Business Application Studio: it expects the task model and the inbox API as startup parameters, and without them it fails before the view renders. The post shows the error, explains why it happens, and supplies a wrapper that provides the missing context locally, so the alternative to deploying on every change is not deploying on every change.published 2023-10-15
Why SAP Cloud Identity Matters for SAP Task Center: It’s About Trust and Global User IDWhy SAP Cloud Identity Matters for SAP Task Center: It’s About Trust and Global User IDA step-by-step configuration walkthrough for wiring SAP Cloud Identity Services as the trust and user-correlation layer behind SAP Task Center: establishing Identity Authentication as the sole trusted identity provider for the BTP subaccount, and generating the Global User ID — carried in the token's user_uuid claim rather than the SAML name identifier — that Task Center uses to match logged-in users to their tasks. It also covers syncing that ID between Microsoft Entra ID, the Identity Directory and SAP S/4HANA through Identity Provisioning jobs, and the principal-propagation trust the cloud connector needs to pass it through to an on-premise task provider.ivelinakiryakov, published 2024-11-25