BlogBlogA post on somebody's own site or a community platform. Nobody edits it after publication, so it dates from the day it was written.See every one →SAP Community
Mastering Internal Actions in SAP RAP: Automatic Header Calculation in ABAP Cloud
Walks 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.
Where it sits
Explains
Transactional modelABAPTransactional modelHow a business object's behaviour is defined and who owns the transaction — the choice that shapes everything downstream in an application.
Source
reachable
Who is behind it
sharathtmauthor
Properties
About this work
Group by10 of 10 pieces
Piece, what it offersStill applies
Always in Sync — Field-level and event-driven side effects for reactive UIs in RAPAlways in Sync — Field-level and event-driven side effects for reactive UIs in RAPA 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 model and the async processing side the edges rest on.published 2026-10-05
ABAP in Practice - Creating a Setup AppABAP in Practice - Creating a Setup AppWalks 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 model 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.Björn S., published 2026-08-28
RAP - Singleton PatternRAP - Singleton PatternBuilds 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 model 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.Björn S., published 2026-08-25
From SEGW and Legacy UI5 to RAP with ARC-1From SEGW and Legacy UI5 to RAP with ARC-1Three ARC-1 skills, run in Cursor with Composer-2 against a deliberately rough demo on an S/4HANA 2023 trial system, turn the SEGW service ZDEMO_MIG_PROJECTS_SRV into a managed, draft-enabled RAP business object published as OData V4, replace its ApproveProject function import and its direct UPDATE ... COMMIT WORK with the action approve_project written in EML in local mode, and rebuild the freestyle UI5 JavaScript app once in UI5 TypeScript and once as a Fiori elements list report and object page driven by metadata extensions. What the published transcripts add is how the agent got there: it found the generated MPC class names and the custom logic in DPC_EXT only by reading the system, the skills made it print the extracted model and stop for confirmation before writing, and @ui5/mcp-server, mcp-sap-docs and @sap-ux/fiori-mcp-server each had their own job beside it. The demo is small on purpose, and the post says a productive SEGW service that calls BAPIs, carries custom authorisation logic or supports deep inserts is not solved with one prompt.published 2026-05-11
From SEGW and Legacy UI5 to RAP with ARC-1
@sap-ux/fiori-mcp-server has been through 2 major lines since this was published: 0.7 (2026-05), 1 (2026-05). Affects Runnable code.
Creating Material Master Data in SAP S/4HANA Using RAP and EML .Creating Material Master Data in SAP S/4HANA Using RAP and EML .Builds an unmanaged Transactional model RAP business object for Article (Material) master data on top of the standard interface views I_Product, I_ProductDescription and I_ProductPlant, replacing BAPI_MATERIAL_SAVEDATA with EML operations in the create, update and custom extendplant behaviour methods. A CDS metadata extension adds the Fiori annotations — headerInfo, facets, line items and value helps — that drive the generated Fiori elements UI.Sudhanshu07, published 2026-01-08
A simple example of a SAP RAP Application based on Legacy API without UUID keysA simple example of a SAP RAP Application based on Legacy API without UUID keysWalks through building a managed RAP business object over the Flight Reference Scenario's Travel and Booking entities with unmanaged save and late numbering, so CRUD operations route through the legacy /DMO/FLIGHT_TRAVEL_CREATE, _UPDATE and _DELETE function modules instead of generated persistence, a worked case of ABAP's transactional model. Covers the ADJUST_NUMBERS and SAVE_MODIFIED saver methods that map preliminary draft keys to the legacy-assigned travel and booking IDs, and a GetDefaultsForBookings action that proposes the next booking ID during draft handling.cseijas, published 2025-09-01
BEHAVIOR_ILLEGAL_STATEMENT dump | Technical workaroundsBEHAVIOR_ILLEGAL_STATEMENT dump | Technical workaroundsThe 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 model: 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.PranayGaroo, published 2025-08-11
BO Interface APIs : An alternative to BAPIs and traditional FMsBO Interface APIs : An alternative to BAPIs and traditional FMsWalks 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.Sudhan_Nagarajan, published 2025-07-02
Level up app development: ABAP Cloud model innovations and Joule solutionLevel up app development: ABAP Cloud model innovations and Joule solutionThe ABAP RESTful application programming model, in SAP's abstract, generates multi-node business objects and adds event-driven side effects, collaborative draft, background processing and analytical tables, with the SAP Joule for Developers, ABAP AI capabilities add-on used to speed development up. The generated business objects are the transactional model concern; the abstract names each feature and says nothing about how it is used. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Anne Keller, Carine Tchoutouo Djomo, Frank Jentsch and Marina Blank, written here from SAP's abstract; the recording is not yet published.
Explore SAP Fiori elements for ABAP developersExplore SAP Fiori elements for ABAP developersSAP Fiori elements for an ABAP developer who now builds the UI as well as the RAP business object behind it, the transactional model of ABAP Cloud, in SAP Business Application Studio; the abstract calls the UI side new territory for that developer, and a Fiori elements app is rendered from the service's Fiori annotations rather than hand-written UI code. The abstract names the tool and the stack and does not say which floorplan or annotations are shown. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Björn Schulz, written here from SAP's abstract; the recording is not yet published.
Details
Graph
Transactional modelcapability, core and community
SAP Communitypublishing source
SAP Communityabap-development-tag
Source
Type
blog
Published on
Host
community.sap.com
Discovered via
First seen
History
- Entered the atlasDiscovered via SAP Community · abap-development-tag.
For your agent
- Ref
content:mastering-internal-actions-in-sap-rap-automatic-header-calculation-in-abap-cloud- JSON
- /content/mastering-internal-actions-in-sap-rap-automatic-header-calculation-in-abap-cloud.json
- MCP
- Connecting an agent