NewABAP, RAP and ABAP Cloud
Domain Learning & ReferenceDomain Protocols & APIsDomain UI & Frontend Bridge

Today
11 changes
ZASISadded to the atlasRegex RuleSets that read barcode strings into named fieldsPackage,
Clean code conventionscore coverage revisedReassessed against the graph (check:capabilities): FORMfactor, an independent ABAP generator, provides this capability, so the community is present on the door.Capability,
Documentationcore coverage, coverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): absence claims about providers go stale as providers arrive. The flavor states are unchanged.Capability,
Error handlingcoverage by ecosystem revisedReassessed against the graph (check:capabilities): brandeis-consulting-abap-prc arrived after the block was last looked at, and the block named no community kinds.Capability,
Show 7 more
HTTP clientscore coverage revisedReassessed against the graph (check:capabilities): two providers added since 2026-09-14 that the text never named; the singular "one client interface" also read as a count.Capability,
Launchpad pluginscore coverage, coverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): removed an absence claim and a count of providers (WRITING §3); the flavor states are unchanged.Capability,
Localizationcoverage by ecosystem revisedReassessed against the graph (check:capabilities): providers arrived after the block was last looked at, an XLIFF editor and an MCP server among them, and the text named none of the kinds.Capability,
ODatacoverage by ecosystem revisedReassessed against the graph (check:capabilities): the note counted the repositories and named none of the kinds that arrived since the block was assessed; it now names the kinds and links the ones that define them. State unchanged.Capability,
Serialisationcore coverage revisedReassessed against the graph (check:capabilities): abap-architect, an ide-extension that provides this capability, was not named; ajson linked as the defining parser.Capability,
Serve your application over MCPcoverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): the note counted providers, and sap-security-mcp no longer provides this capability. The unmapped state is unchanged.Capability,
UI written in ABAPcore coverage, coverage by flavor revisedReassessed against the graph (check:capabilities): removed the claim that abap2UI5 is the sole provider, which went stale as providers arrived.Capability,
Thu 22
2 changes
B-Tocs ABAP SDKadded to the atlasWeb service client and connector layer for calling out of ABAPPackage,
pyapi4abapadded to the atlasTemplate pairing a FastAPI service with ABAP reports that call itSample,
Wed 21
1 change
abap-ai/mcp2added to the atlasStateless ABAP MCP server SDK for the 2026-07-28 protocol draftMCP server,
Mon 19
2 changes
What's new with draft handling in RAP?publishedAn ABAP-day session at Devtoberfest 2026 on two additions to draft handling in RAP: collaborative draft, where two users work on the same draft instance and a field is locked only while the other is in it, and draft scope, where editing an instance of one draft-enabled business object puts the related instances of a dependent one into draft as well. Andre Fischer shows what each costs in the behaviour definition and projection, the draft query view and its DCL that collaborative draft needs over a table-based business object, and the CDS table entities that remove both the draft query view and the persistence table, with their current restrictions in ABAP analytics and extensibility; the from-scratch generator in ADT grows a checkbox for them. Both demos run against the DMO flight scenario of SAP-samples/abap-platform-refscen-flight, and the last part hides the draft-related features of an OData V4 app in its manifest, which the session gives as the reason a simple create-update-delete app no longer needs a V2 service binding.Talk,
XLF Translatorflavors, type properties revisedThe flavor rests on the page's "The tool is mainly used to translate ABAP Cloud Content, which is generated using the 'Maintain Translation' app (XLIFF Version 1.2)." The web-tool block's uploads key carries the one sentence the page gives about the file leaving the machine, "After uploading, all fields that have a translation element are available for translation.", verbatim; access is left out because neither the page nor the site's FAQ says what it takes to use the tool. The prose no longer says the file is opened in the browser, which the word "uploading" does not support, no longer treats XLIFF 1.2 as what the tool accepts (the page states the version of the ABAP Cloud content it is mainly used for), and attributes "without installing an additional tool" to the maker. when_not_to_use was "One file per session, translated by hand, field by field", none of which the page states.Web tool,
Sun 18
1 change
CAP in the age of AI #3 - from MCP to A2ApublishedThe episode that finishes @cap-js/mcp with authorisation and then crosses to agents. @requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.Video,
Sat 17
37 changes
@abap2ui5/embed-controladded to the atlasUI5 custom control that runs an abap2UI5 app inside a host appPackage,
abap-cloud-guiadded to the atlasReport-style programming model for abap2UI5 on ABAP CloudPackage,
abap2UI5 for Exceladded to the atlasOffice add-in running an abap2UI5 app in Excel's task paneApp,
abap2UI5 frontendadded to the atlasabap2UI5 frontend as ABAP artefacts installed with abapGitPackage,
Show 33 more
abap2UI5 frontend-webcomponentadded to the atlasabap2UI5 frontend rendering with UI5 Web ComponentsPackage,
abap2UI5 mobile shelladded to the atlasNative iOS and Android shell for one abap2UI5 endpointDesktop app,
abap2UI5 protocoladded to the atlasVersioned specification of the abap2UI5 roundtrip protocolPractice,
abap2UI5 samplesadded to the atlas129 abap2UI5 sample apps, one ABAP class eachSample,
abap2UI5-addons/open-source-libsadded to the atlasEleven abap2UI5 apps, one per open-source ABAP librarySample,
abap2UI5-addons/popupsadded to the atlasReady-made dialogs for abap2UI5 appsPackage,
abap2UI5-localadded to the atlasabap2UI5 folded into the local classes of one HTTP handlerPackage,
abap2UI5/samples-controlsadded to the atlasUI5 Demo Kit samples rebuilt as abap2UI5 appsSample,
abap2UI5/samples-stackadded to the atlasabap2UI5 apps in front of OData, RAP, events and other technologySample,
custom-controlsadded to the atlasThirteen custom UI5 controls for abap2UI5 appsPackage,
custom-controls-customeradded to the atlasTemplate repository for own UI5 artefacts served to abap2UI5Sample,
http-connectoradded to the atlasForwards abap2UI5 roundtrips to another system over HTTPApp,
launchpad-kpiadded to the atlasPuts a number from an abap2UI5 app on a Fiori launchpad tilePackage,
layout-managementadded to the atlasTable and form layouts with saved variants for abap2UI5Package,
rap-extadded to the atlasFloorplans rendered from CDS UI annotations as abap2UI5 appsPackage,
selection-screenadded to the atlasSelect-options with saved variants for abap2UI5 appsPackage,
Agentic CAP: Build MCP servers and enterprise AI agentsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Talk,
Clean code conventionsdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.abap. Maintainer-requested scope audit.Capability,
From R/3 ABAP to CAP/Fiori Elements on SAP BTP- Deploymentexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
From R/3 ABAP to CAP/Fiori Elements on SAP Cloudexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
How to rename an OData V4 service?explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Launchpad pluginsdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.ui5. Maintainer-requested scope audit.Capability,
ODatadescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
OData $batch Deleting Records Across Multiple Tables in Single Transactionexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
OData Deep Insert: Implementation and Real-Life Examplesexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
OpenAPIdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
RAP - Navigation (App to App)explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Running AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
SAP GUI screens and listsdescription revisedKeep the technology that defines the concern in the default; move implementation detail to framing_by_ecosystem.abap. Maintainer-requested scope audit.Capability,
Serve your application over MCPdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Step-by-Step Guide to Display System Details on SAP Fiori Launchpad Shellexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
UI written in ABAPdescription revisedKeep the technology that defines the concern in the default; move implementation detail to framing_by_ecosystem.abap. Maintainer-requested scope audit.Capability,
Understanding and Developing Fiori Plugins with Extension API & TypeScriptexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Blog,
Fri 16
1 change
Extending Standard S/4 HANA OData API'spublishedWalks 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.Blog,
Thu 15
4 changes
cross-http-clientadded to the atlasHTTP client for classic on-premise ABAP and ABAP CloudPackage,
open-abap-guiadded to the atlasGUI controls for ABAP transpiled to JavaScriptPackage,
open-abap-odataadded to the atlasOData and Gateway shims serving SEGW-style services on Node.jsPackage,
Fiori annotationscore coverage, coverage by flavor revisedThe door has two flavors and neither was assessed, so both were derived from the options alone. Java reads core-only: the three community providers are cds-plugins @sap/cds loads, and the Java side's own facts are the compiler running under the Maven build and the one hierarchy annotation the Java runtime reads itself.Capability,
Wed 14
1 change
Running AI agents against SAP ECC 6.0: lessons from building an in-system MCP serverpublishedNicolasHernandez recounts building and running, over two years, an MCP server written in plain ABAP behind a single ICF node, for SAP ECC 6.0 and S/4HANA on-premise customers that the ADT MCP Server and SAP Joule for Developers, ABAP AI capabilities do not reach. Authorization runs as the calling user rather than a technical RFC user, a choice forced by a customer security team after an earlier version used a technical RFC user, and a later security review found a display-authority check applied uniformly across every write endpoint. The failure modes that cost the most time sat in RFC connectivity itself: RFC_READ_TABLE's empty-table exception collapsed into a false success, a where-used filter was applied only after the row limit, and BAPI calls treated an empty string and an absent parameter as different, silently wrong inputs.Blog,
Tue 13
1 change
How to rename an OData V4 service?publishedRenaming an OData V4 service binding changes its Service Alias and the resulting service URL, breaking any app already deployed against the old one — shown on a /DMO/TRAVEL-based example in the SAP BTP ABAP environment by unpublishing, renaming and republishing the binding, then reading the new URL back from the OData V4 service catalog's ServiceGroups entry. It weighs that against two alternatives: adding a second service definition and publishing it as a new service version under the same binding, or creating an entirely new service definition and binding, which keeps the original URL live during the cutover.Blog,
Mon 12
2 changes
A Guide to CDS Metadata Extensions, Fiori App Generation and SAP UI5 Controller ExtensionspublishedWalks 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.Blog,
Serve your application over MCPcore coverage, coverage by ecosystem, core coverage, description, facets revisedThe comparison separates exposed contracts, context mechanisms, execution paths and surface selection; provider explanations retain conditions and restrictions. The capability definition and all nine provider conversions must be published together; accepting only the vocabulary leaves legacy provider strings incompatible.Capability,
Sun 11
1 change
Agentic CAP: Build MCP servers and enterprise AI agentspublishedCAP applications become AI agents over the Model Context Protocol and the Agent2Agent protocol, which is the serve your application over MCP concern, and SAP AI Core is the LLM integration through which AI is embedded in a CAP app, with recommendations from the SAP-RPT-1 model as the abstract's example. The abstract names the two protocols and the one model and does not say which packages carry them. A two-hour TechEd 2026 session in a hands-on room (Tuesday 27 October, Berlin), presented by Daniel Hutzel, Daniel Schlachter, Marc Huber and Sami Lechner, written here from SAP's abstract; the recording is not yet published.Talk,
Fri 9
1 change
Serve your application over MCPecosystems, name revisedThe Commerce and SuccessFactors providers reach into a system from outside and moved to agent access to your systems with their slots.Capability,
Tue 6
1 change
Basic code's of ABAPpublishedNine standalone ABAP reports built around REUSE_ALV_GRID_DISPLAY and CL_SALV_TABLE, covering display, screen validation, spool creation, Excel upload and table maintenance without SM30. One report raises and catches a custom exception class with RAISE EXCEPTION and TRY/CATCH, the class-based mechanism error handling names for ABAP; another submits a job to spool, converts it to PDF with CONVERT_ABAPSPOOLJOB_2_PDF and exports a CL_SALV_TABLE result to Excel before mailing both, producing document output from spool rather than Form Builder.Blog,
Sun 4
3 changes
LISAadded to the atlasMCP server for reading and writing ABAP object translationsMCP server,
Step-by-Step Guide to Display System Details on SAP Fiori Launchpad ShellpublishedA 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.Blog,
LISAentry revisedEntered by intake from the README, found through ARC-1's extensions page, which names it in its example of driving a custom ABAP HTTP service.MCP server,
Sat 3
1 change
OData Deep Insert: Implementation and Real-Life ExamplespublishedWalks through implementing OData Deep Insert on classic SAP Gateway: two entity types joined by an association in SEGW, and a redefined CREATE_DEEP_ENTITY method in the DPC_EXT class that unpacks the header and item payload and calls BAPI_SALESORDER_CREATEFROMDAT2 to create a sales order with its line items in one request instead of separate calls per item. Gives a sample JSON payload to test with Postman or /IWFND/GW_CLIENT and names the usual failure points — an unmapped association, a method that was never redefined, or a commit left out after the BAPI call.Blog,
Fri 2
1 change
Invoking Business Agent Foundation Agents from ABAP: A Step-by-Step GuidepublishedWalks through calling a Business Agent Foundation agent's chat endpoint from an on-premise ABAP report: an OAuth 2.0 client profile configured in SE80/SOAUTH2_CLIENT with client-credentials grant against the service key, an HTTP (type G) RFC destination in SM59 bound to that profile, and an ABAP report using CL_HTTP_CLIENT=>CREATE_BY_DESTINATION to POST a JSON message to the agent's sendMessage endpoint and extract the reply by splitting the response string. The destination and client code are the same shape as any outbound REST call from ABAP; nothing here is specific to the agent service beyond the request body and URL.Blog,
Thu 1
1 change
ABAP Architectadded to the atlasEclipse plug-in turning JSON or XML into ABAP types and DDIC objectsIDE extension,

Sun 27
7 changes
Calling the Sales Order (A2X) OData V2 API from BTP Using a Service Consumption ModelpublishedWalks through ABAP's Service Consumption Model for OData V2 in ABAP Development Tools for Eclipse: generating a client proxy from the Sales Order (A2X) API's downloaded EDMX, then using it from an ABAP console class to create a deep sales order with items, texts, partners and pricing elements, read it back and patch a field. The client itself is built the way HTTP clients describes for SAP BTP ABAP environment: a communication arrangement resolved through cl_http_destination_provider=>create_by_comm_arrangement, handed to cl_web_http_client_manager=>create_by_http_destination, reaching the inbound SAP_COM_0109 scenario configured on the SAP S/4HANA Cloud Public Edition side.Blog,
Calling the Sales Order (A2X) OData V4 API from BTP Using a Service Consumption ModelpublishedWalks through calling SAP S/4HANA Cloud Public Edition's Sales Order (A2X) OData V4 API from an ABAP class on SAP BTP ABAP environment: a communication arrangement on each side, a Service Consumption Model built in ADT from the API's downloaded EDMX, and a client proxy wired through cl_http_destination_provider=>create_by_comm_arrangement and cl_web_http_client_manager=>create_by_http_destination, the same HTTP clients pattern for ABAP for Cloud Development. The sample class creates a deep sales order with an item, a text, a partner and a pricing element, reads it back, then updates a field guarded by its ETag.Blog,
Usage of Expand Entity in OData Service Consumption ModelpublishedExplains how to use OData's $Expand option when SAP BTP, ABAP Environment consumes a remote service through a generated client proxy, the way HTTP clients describes it, using stubs ABAP Development Tools for Eclipse generates from the service's $metadata. The expanded association only comes back from get_business_data when the caller supplies its own ABAP type that redeclares the association as a nested table, in place of the generated CDS entity type. The same workaround still applies from release 2311 on, where the consumption model generates flat ABAP types rather than abstract CDS entities.Blog,
Documentationcore coverage revisedPackage pass 2026-09-27: the capability had no paragraph and no source at all.Capability,
Show 3 more
Localizationcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Capability,
ODatacore coverage, facets revisedA role in a design is filled from evidence that an option speaks what the fixed part exposes, and that join runs over one protocol vocabulary (docs/concepts/design-roles-and-interfaces.md, P2). Declared here so options can state it; absent stays "does not say".Capability,
Serve your application over MCPcore coverage revisedcapire audit 2026-09-27, link-only pages read a fourth time: MCP services are one of the three things SAP frames as CAP's native AI support, in the one sentence the section's index says of its own.Capability,
The last 30 days. Older changes stay in each entry's history.