NewABAP, RAP and ABAP Cloud
In the last 90 days
23 changes
Mon 19
Always in Sync — Field-level and event-driven side effects for reactive UIs in RAPpublishedA Devtoberfest 2026 session on side effects in RAP — the declarations in a behaviour definition that tell a draft UI to reload what a change affected, instead of leaving the user to refresh the browser. Field-level side effects recalculate a total price from a determination when a booking fee is entered, including across the association from a child item up to the root entity, and a permissions side effect toggles a description field between read-only and editable; a global side effect is attached to a determine action, fires when the user presses Enter, and only one may exist per business object, which is why the prepare action and a second determine action cannot both carry it. The last part starts a long-running calculation through the background processing framework and raises a business event that the behaviour definition lists as a side effect source and the projection makes public, so the Fiori app is updated with a notification when the work finishes, whether it was triggered by the user or by an application job — the transactional modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed and the async processingAsync processingDoing work outside the request that triggered it, with a guarantee that it eventually happens — deferred jobs, retries, and periodic work. Distinct from messaging, which is about telling other systems.SAP and community, narrow by design side the edges rest on.Transactional model
Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source DialectpublishedA Devtoberfest 2026 data-track session (DAT-21) in which one of the maintainers of sqlalchemy-hana, the open-source SQLAlchemy dialect published in SAP's GitHub organisation, opens up what sits between Python and SAP HANASAP HANASAP’s relational database platform, which stores application data and executes SQL and SQLScript in the database, available on-premise and as the managed service SAP HANA Cloud.sap official, btp. It walks the five dialect classes that render statements, types, DDL, identifiers and sequences, and the HANA specifics they absorb: the FROM DUMMY a bare SELECT needs, a limit injected when only an offset is given, string compiled to NVARCHAR, and quoted case-sensitive identifiers against Python's lowercase. The rest covers schema migrations with Alembic on HANA's transactional DDL, the recently added async support and vector types, and that HANA Cloud and HANA 2 are supported while HANA 1 is not.Database connectors
CDS Associations & JoinspublishedA Devtoberfest 2026 session from SAP's performance and scalability team on what an ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap association becomes on SAP HANA, taken as an excerpt from their internal performance training. The CDS edge rests on the three ways an association is used: a path expression and an explicit join both put a left outer join into the generated view, while exposing the association leaves the view without one and adds the join only for a query that asks for its fields, which the session calls join on demand. The data modellingData modellingDefining the shape of data before anything serves it: entities and their types, how they relate, and the projections and views that services and applications consume.SAP and community, unassessed edge is the advice that follows and the demo under it — cardinality written as precisely as the data allows, because the optimiser trusts it, shown with a view whose missing cardinality let SELECT COUNT(*) prune the join and return 18 rows where selecting the columns returned 56, plus the left-hand, right-hand and left-outer-to-inner rewrites that correct cardinalities make possible.Data modelling
Updates on Embedded Analytics in ABAP Cloud for DeveloperspublishedA Devtoberfest 2026 session (ABA-33) on the generator wizards for Embedded Analytics in ABAP Cloud, run by right-clicking a data definition in the ADT Project Explorer. It first names the artefacts a star schema needs, all of them ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap — cube view at its centre, dimension, text and hierarchy views reached by association, a hierarchy directory, and an InA service definition and binding — and then generates them: the star schema generator reads a view entity's metadata, sorts its fields into dimensions and measures, asks about the ones it cannot decide, offers the dimension views it found and writes an activated cube view; the hierarchy generator produces directory, node, base and definition views plus a maintenance business object with a generated app, which is used to group airlines into alliances before the hierarchy is switched on in the layout of the multi-dimensional analysis app. That is analytic modellingAnalytic modellingDefining what an analytical client actually reads — the multi-dimensional layer between stored rows and a chart: measures, dimensions, hierarchies, filters and parameters, and the associations somebody navigates them by. Distinct from analytical queries, which is a service answering the request a chart sends, and from loading a warehouse, which fills the tables underneath it.SAP and community, unassessed on the ABAP platform, which is what the edges rest on; the outlook names time-dependent hierarchies, translatable texts and dimensions generated from database tables.Data modelling
Wed 14
Mastering Internal Actions in SAP RAP: Automatic Header Calculation in ABAP CloudpublishedWalks through a sales-order BDEF where an item-level determination triggers a header-only internal action by EML in local mode, so a quantity or price change recalculates the order total and applies a 10% discount above $10,000 without a UI button or external OData call reaching the logic directly. Argues for an internal action over inline determination code on reusability and separation of concerns: a determination decides when logic runs, the action decides what runs, and marking it internal keeps Fiori Elements and external OData clients from invoking it.Transactional model
Sun 11
Agentic memory: Knowledge graph engine and recall in SAP HANA CloudpublishedThe knowledge graph engine in SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp as an agent's memory: what the engine, the graph side of graph, spatial and document dataGraph, spatial and document dataStoring and querying data that is not plain rows, such as a network of relationships, a geometry or a JSON document, in the database that already holds the rows instead of in a separate store per model. Free-text search over entities is search; similarity over embeddings is retrieval-augmented generation.SAP only, does in an agentic workflow, how an agent keeps what it learns there, the state agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed holds between turns, and the SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp integration through which the database calls LLMs and tabular foundation models such as SAP-RPT-1. The abstract names the engine, the memory role and the AI Core link and does not say how the memory is written or read. DA263 on Wednesday 28 October is a two-hour hands-on on the same engine with a different cast. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Markus FathMarkus Fathgave 3 talks, contributed to 1 entry and Shraddha Shetty, written here from SAP's abstract; the recording is not yet published.Database connectors
Analyze and optimize ABAP Cloud model apps built on core data servicespublishedPerformance anti-patterns in data models built with ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap under ABAP Cloud applications, and the tools that find them: the abstract names ABAP cross trace, the SQL analyzer (PlanViz) in Visual Studio Code and the SAP HANASAP HANASAP’s relational database platform, which stores application data and executes SQL and SQLScript in the database, available on-premise and as the managed service SAP HANA Cloud.sap official, btp database explorer as what the session uses to follow a bottleneck from the application to the database. The anti-patterns are taken from real business applications, which is where the data modellingData modellingDefining the shape of data before anything serves it: entities and their types, how they relate, and the projections and views that services and applications consume.SAP and community, unassessed edge holds; which ones are shown is not in the abstract. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Ingo Braeuninger, Robert Werlich, Steffen Siegmund and Thomas Fiedler, written here from SAP's abstract; the recording is not yet published.Data modelling
Build AI agents and applications natively on SAP HANA CloudpublishedSAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp as the base for agentic applications on SAP Business AI Platform: the session goes through CAP, the SAP HANA Cloud vector engine and SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp, with architecture patterns and lessons learned from building AI-supported applications. SAP's abstract names the three parts of that stack and the vector engine as the database's feature in it, and describes none of the patterns. A TechEd 2026 session (Wednesday 28 October, Berlin; also DA113V, virtual), presented by Christoph Morgen and Shraddha Shetty, written here from SAP's abstract; the recording is not yet published.Database connectors
Building agentic applications with SAP HANA CloudpublishedA CAP application extended with semantic search and agent features on top of SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp's vector engine and SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp, built in a hands-on workshop. The abstract names the parts, CAP, the vector engine and AI Core, and the two additions: semantic search, the retrieval half of retrieval-augmented generationRetrieval-augmented generationGrounding a model's answer in data retrieved at question time: text split into chunks, each chunk embedded as a vector, and the chunks nearest to the question placed into the prompt. Semantic search is the same retrieval with a person reading the matches, and fine-tuning changes the model's weights, not its input.SAP and community, unassessed, and LLM-supported agent capabilities inside the application, which is agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed. Which embedding model, which CAP runtime and how the agent calls its tools are not stated. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Hui Li, Ritty Joseph, Shraddha Shetty and Tanuja Jadhav, written here from SAP's abstract; the recording is not yet published.Database connectors
Show 1 more
Knowledge graph and agent memory: Build an agent that rememberspublishedThe knowledge graph engine in SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp as an agent's memory: what the engine, the graph side of graph, spatial and document dataGraph, spatial and document dataStoring and querying data that is not plain rows, such as a network of relationships, a geometry or a JSON document, in the database that already holds the rows instead of in a separate store per model. Free-text search over entities is search; similarity over embeddings is retrieval-augmented generation.SAP only, does in an agentic workflow, how an agent keeps what it learns there, the state agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed holds between turns, and the SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp integration through which the database calls LLMs and tabular foundation models such as SAP-RPT-1. The abstract names the engine, the memory role and the AI Core link and does not say how the memory is written or read. DA205 on Tuesday 27 October is the 45-minute talk on the same engine, with a near-identical abstract and a different cast. A two-hour hands-on TechEd 2026 session (Wednesday 28 October, Berlin), presented by Christoph Morgen, Jan Zwickel, Markus FathMarkus Fathgave 3 talks, contributed to 1 entry and Thomas HammerThomas Hammergave 5 talks, contributed to 1 entry, written here from SAP's abstract; the recording is not yet published.Database connectors
Sat 10
How to mass upload from a spreadsheet file into an SAP Fiori app in SAP BTP ABAP Environment Part 1publishedPart 1 of a three-part series on mass-uploading records from a spreadsheet into a RAP business object in the SAP BTP ABAP environmentSAP BTP ABAP environmentSAP's ABAP runtime on BTP: ABAP systems developed in the ABAP Cloud model on SAP HANA Cloud, for cloud apps, OData services and side-by-side extensions of SAP S/4HANA.sap official, btp, using the XCO XLSX module to parse an uploaded Excel file without any open-source library. It reads a named worksheet by its column-and-row coordinates into an internal table through the row-stream operation, then creates or updates records with the EML
MODIFY ENTITIES statement, and reserves the Fiori elements custom-action wiring and the download/template generation for Parts 2 and 3.Importing and exporting table dataSun 4
BEHAVIOR_ILLEGAL_STATEMENT dump | Technical workaroundspublishedThe BEHAVIOR_ILLEGAL_STATEMENT dump fires in SAP RAP when an explicit COMMIT WORK or ROLLBACK WORK, or a direct database write, collides with RAP's own transactional modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed: a Logical Unit of Work split into an interaction phase, where changes sit in a transactional buffer, and a save sequence that validates and persists them. The post then names four ways to move the offending statement into a separate task instead — the Background Processing Framework, parallel processing, Application Jobs, or, on-premise only, a wrapper RFC function module called with DESTINATION 'NONE' — pointing to further reading for each rather than working through any of them here.Transactional model
BO Interface APIs : An alternative to BAPIs and traditional FMspublishedWalks through updating an S/4HANA Purchase Order's line items through a released BO interface instead of a BAPI, using EML against the underlying CDS entity and a COMMIT ENTITIES statement because the call sits outside a behavior class. Argues the BO interface route avoids a RAP behavior class's restriction against calling COMMIT WORK directly, and covers finding a released interface's CRUD operations on api.sap.com and extending the same approach to a custom field or a custom RAP-based Fiori app's own BO.Transactional model
Sat 3
A simple example of a SAP RAP Application based on Legacy API without UUID keyspublishedWalks 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 modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed. 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 handlingDraft handlingLetting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.SAP and community, narrow by design.Transactional model
Fri 2
Beyond READ_TEXT: Decoding SAPscript Long Texts (STXL) with SQLScript in CDS/AMDPpublishedSTXL stores a SAPscript long text as a compressed ABAP cluster container — LZ77 plus canonical Huffman — so the only official reads are READ_TEXT, one call per text, and its mass variant READ_TEXT_TABLE, both of which ship every decompressed line to the application server and stay invisible to ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap. The author reverse-engineered that on-disk format and ported the decoder into SQLScript, wrapped in an AMDP procedure and exposed through CDS table functions, turning long texts into a joinable, filterable column read directly in the database. On ABAP 7.56 a table function needs the driver-and-filter pattern shown because a parameter cannot bind to a calling column; on ABAP 7.58/S/4HANA 2023 the same result becomes a parameter-less CDS scalar function with true filter push-down.Data modelling
Sun 27
Generating Adobe Form Using RAP framework OData ServicespublishedModels a RAP root view entity and consumption view over a custom sales-order table, built with ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap, and exposes it through a service definition and an OData V2 UI service binding. A separate SEGW project implements GET_STREAM to call an Adobe Form driver class and stream the rendered PDF back as the response, with a computed link field added to the CDS view so the UI can open it. The PDF is generated in the backend and returned to the calling program rather than sent straight to a printer.Data modelling
Fri 18
052: 10 Minutes from Start to LaunchpadpublishedWalks a RAP application from a root CDS view entity through a consumption projection and its associations to a metadata extension: a facet per field group, a hidden field via UI.hidden, and a selection field on the ABAP package, all in a Customer-layer DDLX source read by the generated Fiori elements app. It then covers the parts ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap modelling and annotation stop short of — service definition and binding, generating the UI in Business Application Studio, and wiring the deployed app into the Fiori Launchpad through an IAM App and business catalog.Data modelling
ABAP in Practice - Creating a Setup ApppublishedWalks through an unmanaged custom entity behind a static Fiori Elements setup app: a factory maps step IDs to implementation classes behind one interface, and the transactional modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed sets every CRUD operation internal while adding CheckStep and ExecuteStep actions instead of generated persistence. It buffers the executed step for the save sequence and moves an API that issues a COMMIT to a background process via bgPF, since a COMMIT inside the action is forbidden in strict mode.Transactional model
RAP - Native File UploadpublishedA workaround for uploading a file into a RAP application ahead of SAP's own upload and download solution, which is still pending: two abstract root entities — one holding the file's bytes, MIME type and filename, one for a popup dialog — joined by an association flagged
with hierarchy, exposed through a static action declared with DEEP PARAMETER so the nested structure reaches the handler. The trade-offs are stated plainly: the popup takes no default values, only one file uploads at a time, and the UI annotation on the attachment field is ignored because its label is read from the sub-entity's own name.AttachmentsRAP - Singleton PatternpublishedBuilds the RAP Singleton pattern: a root CDS view entity constrained to always return exactly one row, its composition child for line items, and a transactional modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed behaviour definition — managed with unmanaged save, a determination that fills the user ID, and an EML update inside SAVE_MODIFIED to write the saved data elsewhere. Generates the Fiori elements object-page app from that service and adjusts Component.js so preferredMode lands the user in edit mode against the fixed semantic key, since the app always has exactly one record to open.Transactional model
Thu 17
Creating Material Master Data in SAP S/4HANA Using RAP and EML .publishedBuilds an unmanaged Transactional modelTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.SAP and community, unassessed 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 annotationsFiori annotationsDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.SAP and community, unassessed — headerInfo, facets, line items and value helps — that drive the generated Fiori elements UI.Transactional model
Wed 16
Calculating IBP Technical Week "Key Figure Date" in S/4HANA Using CDS ViewpublishedA custom ABAP CDSABAP CDSThe modelling layer of ABAP Cloud — view entities, projections and annotations defined above database tables, delivered with the platform rather than installed.sap official, abap view entity, selecting from the standard
I_CalendarDate view, to derive the first date of an SAP IBP "technical week" — the split IBP applies when a calendar week crosses a month boundary, a date S/4HANA does not expose natively. The calculated field is built with a case/when expression over dats_add_days, giving any calendar date's technical-week key figure date.Data modellingTue 8
Building an Attachment Upload and Download Solution Using UploadSetwithTable ControlpublishedThe successor control to UploadSet posts the file in one request by default, and against CAP that is wrong: the record has to be created first and the content put to it afterwards. The author states the two-step shape plainly and notes it may not apply to an ABAP backend, which is the kind of boundary that usually goes unsaid. Written during a proof of concept for a reusable attachment component, and it carries the problem they hit with the control.Attachments