RAP_CDS_ODATAintermediate
RAP Business Objects
Learn RAP Business Objects as transactional aggregates with root and child entities, behavior, actions, validations, determinations, locks, authorization and save handling. The focus is designing one coherent business transaction rather than exposing database tables as CRUD.
Overview
Learn RAP Business Objects as transactional aggregates with root and child entities, behavior, actions, validations, determinations, locks, authorization and save handling. The focus is designing one coherent business transaction rather than exposing database tables as CRUD.
Lessons in this topic
- RAP Business Objects Part 1: Designing the BO — Root, Children and BoundariesDesign a RAP business object before writing code: what one BO is, how to choose the root, which data belongs in the composition tree, which data is only referenced, and how keys and naming follow from that.
- RAP Business Objects Part 2: Managed vs Unmanaged — A Decision FrameworkGet the big picture of RAP implementation types — managed, managed with additional save, managed with unmanaged save and unmanaged — and a short decision checklist you can apply in design workshops.
- RAP Business Objects Part 3: Transactional Buffer, Save Sequence and the RAP LUWFollow one Fiori "Save" click through RAP: the interaction phase and transactional buffer, the save sequence phases, who commits, and the rules that keep a RAP transaction all-or-nothing.
- RAP Business Objects Part 4: Locking, ETags and Concurrency ControlUnderstand how RAP protects data from conflicting changes: exclusive locks, ETags for stale data, the total ETag with draft, and how responsibilities differ between managed and unmanaged objects.
- RAP Business Objects Part 5: Authorization, Feature Control and MessagesSeparate three controls that are often confused — authorization (who), feature control (when), and access control (which rows) — and learn how RAP messages reach the user correctly with FAILED, REPORTED, message classes and field highlighting.
Interview questions covered
- What is a RAP business object, and how do you decide which entities belong in its composition tree?
- A 'Project' BO contains WBS elements, tasks, time entries and documents as compositions. Project managers constantly get lock errors. How would you redesign it?
- Walk through the four RAP implementation types and give one example scenario for each.
- Explain the RAP transaction model: what happens between a user's change and the database commit?
- An action calls a legacy function module that ends with COMMIT WORK. What can go wrong, and how do you integrate it correctly?
- Explain locks, ETags and the total ETag in RAP. Which problem does each one solve?
- Users sometimes get 'data has been changed by another user' immediately after their own change in an unmanaged BO. What do you investigate?
- Explain the difference between authorization, feature control and CDS access control in RAP, with an example of each.
- How do you design RAP messages so that users understand what went wrong and messages disappear once the problem is fixed?
- Support tickets say 'no authorization to change the request', but users have the right roles. Investigation shows the rule is 'approved requests cannot be changed'. What is wrong and how do you fix it?