NewABAP, RAP and ABAP Cloud
Domain Protocols & APIsDomain Process & Workflow

Today
6 changes
ZASISadded to the atlasRegex RuleSets that read barcode strings into named fieldsPackage,
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,
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,
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,
Show 2 more
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,
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
1 change
Supply Chain Rescueadded to the atlasCAP and SAPUI5 demo of recovery from a supply disruptionSample,
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
9 changes
launchpad-kpiadded to the atlasPuts a number from an abap2UI5 app on a Fiori launchpad tilePackage,
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,
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,
ODatadescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Show 5 more
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,
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,
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,
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
2 changes
cross-http-clientadded to the atlasHTTP client for classic on-premise ABAP and ABAP CloudPackage,
open-abap-odataadded to the atlasOData and Gateway shims serving SEGW-style services on Node.jsPackage,
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
1 change
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,
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
5 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,
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,
Show 1 more
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,
Mon 21
3 changes
From SEGW to @OData.publish: Expose Your CDS View as OData in S/4HANApublishedWalks through exposing an ABAP CDS view as an OData service in an on-premise S/4HANA system by adding the @OData.publish: true annotation, then registering and activating the generated service in SAP Gateway (transaction /IWFND/MAINT_SERVICE) before testing it with $filter, $top and $count. It sets this against the manual route through transaction SEGW, since the annotation generates the service, its navigation properties and its OData properties straight from the CDS view without a Service Builder project.Blog,
OData $batch Deleting Records Across Multiple Tables in Single TransactionpublishedWalks through implementing a multi-table DELETE inside a single OData v2 $batch changeset on SAP Gateway: setting cv_defer_mode = abap_true in CHANGESET_BEGIN so more than one delete is collected per change set instead of being executed immediately, looping the collected operations in CHANGESET_PROCESS to delete from each backend table in turn, and issuing one COMMIT WORK in CHANGESET_END so all tables commit or roll back together. The example is a supplier master spread across basic, address, identification and purchasing-organisation tables, deleted as one logical unit of work instead of one HTTP call per table.Blog,
Outbound Integration from SAP BTP, ABAP to SAP S/4HANA Cloud via Service Consumption ModelpublishedWalks through ABAP's Service Consumption Model for OData in ABAP Development Tools for Eclipse: generating a V4 client proxy from a remote service's EDMX metadata, then calling one of its bound actions by hand because the 2311 release's ADT tooling does not yet generate that code. 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 to create the client.Blog,
Sun 20
1 change
Error handlingcore coverage revisedcds-error-outbox, an independent cds-plugin first seen on 2026-09-07, carries a provides edge to this capability on the CAP door, so SAP-official and independent providers are both present there. The previous state was assessed on 2026-08-31, before that entry. The relationship is unassessed: no retrieved document gives a history between the plugin and the runtimes.Capability,
Fri 18
1 change
@root3287/cap-segwadded to the atlasCompiler from a CDS service to SEGW model and data provider classesBuild tool,
Thu 17
1 change
How to create a Purchase Order through BAPI in the SAP through program ( SE38 ) T-CODE .publishedWalks through creating a purchase order from an ABAP report (SE38) by filling the BAPIMEPOHEADER/BAPIMEPOITEM structures and their X-indicator counterparts, then calling BAPI_PO_CREATE1 within the same session. Its error handling centres on the BAPIRET2 return table: looping over entries typed E or A, skipping BAPI_TRANSACTION_COMMIT when one is found, and displaying the returned message text rather than assuming success once the function module returns.Blog,
Wed 16
2 changes
OData Batch Creatoradded to the atlasBuilds OData batch request payloads from an uploaded $metadata fileWeb tool,
OData Batch Creatorentry revisedEntered from software-heroes.com's tools page. ecosystem: abap is an editorial placement rather than a stated fact — the tool's own page names nothing ABAP-specific (it takes any OData $metadata XML) and capability:odata covers both cap and abap doors. Placed on abap for now because it sits among seven other explicitly ABAP tools on the same site and page; worth revisiting if a CAP use turns up.Web tool,
Tue 15
2 changes
Moving from Hub Gateway to Direct S/4HANA OData V4: A Customized Reusable RAP Processing FrameworkpublishedA generic base class for RAP custom-entity query providers — one implementation of IF_RAP_QUERY_PROVIDER~SELECT, subclassed per entity — lets a service expose OData V4 directly from S/4HANA instead of through a separate Gateway Hub. The framework loads entity configuration, extracts the request context, fetches and transforms backend data into the target entity shape, and returns it through the RAP response object, with field mapping and conversion exits left for each subclass to fill in.Blog,
SAP CI to ABAP Integration: Seamless XML to Internal Table MappingpublishedShapes an XML payload in SAP Cloud Integration with the mandatory abap/values wrapper tags so ABAP can deserialise it straight into an internal table with CALL TRANSFORMATION id, the same identity transformation ABAP uses for asJSON. Derives the XSD for that shape from an RFC-enabled function module's WSDL instead of writing it by hand, then exchanges the XML over a plain HTTP client call to a destination.Blog,
Mon 14
34 changes
ABAP CSV Manageradded to the atlasConfigurable CSV reader and writer for ABAPPackage,
ABAP JSON APIadded to the atlasJSON renderer and parser for ABAP with camelCase conversionPackage,
ABAP JSON Encoder/Decoderadded to the atlasJSON encoder and decoder for ABAP, modelled on Go's encoding/jsonPackage,
ABAP OpenAPI UIadded to the atlasSwagger UI for SAP NetWeaver Gateway servicesApp,
Show 30 more
ABAP SDK for Azureadded to the atlasABAP classes for calling Azure services from SAP processesPackage,
ABAP to JSON serializer and deserializeradded to the atlasOpen-source Z* version of /UI2/CL_JSON for ABAP to JSONPackage,
abap-openapiadded to the atlasGenerates ABAP client classes and server stubs from OpenAPIGenerator,
abap-platform-refscen-flight-soap-serveradded to the atlasServer side of the flight reference scenario for SOAP in ABAP CloudSample,
abap-protobufadded to the atlasProtocol Buffers (proto2) implementation in ABAPPackage,
abap-soql-queryadded to the atlasABAP report that runs Salesforce SOQL queries and exports resultsApp,
ABAP-Swaggeradded to the atlasExposes ABAP class methods as REST services with Swagger UIPackage,
abap2gappsadded to the atlasABAP API for Google Apps, with upload to Google DocsPackage,
abap2gsheetadded to the atlasABAP framework wrapping the Google Sheets API for SAP S/4HANAPackage,
ABAPFireadded to the atlasABAP client for Firebase's Realtime Database REST APIPackage,
abapify/fetchadded to the atlasFetch API-style HTTP polyfill for cloud and classic ABAPPackage,
abapify/fetch-cloudadded to the atlasCloud-compatible plugin for the abapify Fetch API polyfillPackage,
abapify/fetch-legacyadded to the atlasLegacy-release Fetch API implementation for outbound HTTP in ABAPPackage,
ajsonadded to the atlasJSON parser and serialiser for ABAP with a node treePackage,
building_gateway_servicesadded to the atlasABAP code and slides from a talk on building SAP Gateway servicesSample,
EITHER-FOR-ABAPadded to the atlasABAP class implementing the Either patternPackage,
JSON2ABAPTypeadded to the atlasGenerator of ABAP type definitions from JSON structuresGenerator,
odata-fwadded to the atlasABAP framework for OData services with one class per entityPackage,
RESULT-for-ABAPadded to the atlasResult pattern for ABAP instead of exceptions for expected failuresPackage,
SAP-samples/abap-platform-refscen-flight-soap-clientadded to the atlasClient side of the flight reference scenario for SOAP in ABAP CloudSample,
sap-usi-exceptionadded to the atlasShared root exception class and text getter for USI developmentsPackage,
sbcgua/text2tabadded to the atlasParser of TAB-delimited text into ABAP internal tables and backPackage,
throwadded to the atlasRaises an ABAP exception from a text or the last system messagePackage,
zcl_mdp_jsonadded to the atlasABAP library generating and parsing JSON stringsPackage,
ZwdCSVadded to the atlasRFC 4180 CSV parser and generator for ABAPPackage,
Error handlingecosystems revisedWidened to ABAP: dominikpanzer/RESULT-for-ABAP and furkancosgun/EITHER-FOR-ABAP return failures as values, SchwarzIT/sap-usi-exception converts exception texts into BAPIRET2 and SYMSG, and abapify/throw raises an exception from a text or a system message.Capability,
ODataecosystems, description revisedThe old wording made the model a CDS model, which is false for a Gateway service modelled in SEGW. CDS now qualifies what CAP generates from rather than the concern.Capability,
OpenAPIecosystems revisedabap-openapi, abap-openapi-ui and ABAP-Swagger generate code from OpenAPI documents and serve Swagger UI in an ABAP system. SAP-samples/manage-apis-codejam imports APIs by their OpenAPI specification into SAP API Management, which runs on BTP as part of Integration Suite.Capability,
Serve your application over MCPcoverage by flavor revisedSAP's Sapphire 2026 ABAP MCP Server announcement, checked against its own documentation, turned out to answer agent-code-access, not this capability. None of the ABAP door's three providers of this capability states ABAP Cloud as a flavor; abap-ai/mcp names SAP NetWeaver 7.52, a classic-ABAP requirement, and the concern is not one of the classic-only kinds ABAP Cloud excludes, so it reads as unmapped rather than not-applicable.Capability,
XML payloadsdescription, ecosystems revisedSAP-samples' abap-platform-refscen-flight-soap-client and abap-platform-refscen-flight-soap-server consume and expose SOAP services from ABAP Cloud, which is XML exchanged with a system that does not speak JSON.Capability,
Sun 13
1 change
OpenAPIname revisedThe map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans.Capability,
Sat 12
1 change
Serve your application over MCPcoverage by ecosystem, framing by ecosystem revisedThe framing said what is exposed on BTP is usually SAP's own product. That still holds for the hosted servers, and the Integration Suite gateway is the case it did not cover.Capability,
Thu 10
5 changes
abap-ai/mcpadded to the atlasMCP server SDK written in ABAPMCP server,
MarkWuRY168/SAP_MCPadded to the atlasMCP server publishing SAP functions as tools from config tablesMCP server,
abap-ai/mcpentry revisedTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.MCP server,
MarkWuRY168/SAP_MCPentry revisedTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README. Filed on the BTP door because there is no door for the SAP product it fronts and hard rule 9 allows one — the same strain recorded on the LeanIX entries.MCP server,
Show 1 more
Serve your application over MCPecosystems revisedAdded a day earlier for a CPI configuration that has moved to the BTP door. A capability listing an ecosystem with no door produces an "also in" link to a 404, which is how this was caught.Capability,
Wed 9
1 change
Serve your application over MCPdomain, description, ecosystems revisedAn SAP-published MCP server entered from the sap-ai-mcp-servers catalogue answers this concern on the BTP door, and the door had no tile for it to sit under.Capability,
Mon 7
2 changes
ODataid, core coverage revisedcommunity-owns-it described V2 alone. Across the whole capability the core owns V4 and stops at the V2 runtime on purpose, having deprecated it — the core is narrow here by decision, not by absence.Capability,
Serve your application over MCPcore coverage revisedAssessed against the capire MCP adapter page and the June 2026 release notes. The boundary is unusually explicit for a beta feature: capire enumerates the governance it does not provide and forbids gateway use outright, which is what the community plugins here are answering.Capability,

Mon 31
4 changes
Error handlingcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
ODatacore coverage revisedThe old sentence said V2 is 'explicitly out of scope for the core', which the V2 Support section disproves. It is in scope as documentation and out of scope as runtime — a narrower and more useful distinction.Capability,
OpenAPIcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Serve your application over MCPcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,

Thu 4
1 change
abap-ai/mcpreleased 1.0Server code written for 0.x that assigns CAPABILITIES-PROMPTS = ABAP_TRUE, references the ANNOTATIONS types of the response classes, or calls PARSE_BATCH_REQUEST.MCP server,
Everything the feed holds.