NewABAP, RAP and ABAP Cloud
In the last 30 days
16 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