RAP_CDS_ODATAintermediate
Service Definitions
Learn RAP service definitions as the explicit list of projection entities exposed by one business service. Focus on keeping the public contract minimal, naming entities clearly and separating consumer-facing projections from internal CDS models.
Overview
Learn RAP service definitions as the explicit list of projection entities exposed by one business service. Focus on keeping the public contract minimal, naming entities clearly and separating consumer-facing projections from internal CDS models.
Lessons in this topic
- Service Definitions Part 1: What a Service Definition DoesLearn what a service definition is in RAP, what it contains and what it does not, and where it sits between projections and service bindings.
- Service Definitions Part 2: Exposing Projection Entities as a Business ServiceDecide which projection entities form one business service, write the service definition with meaningful aliases, and verify the result in the binding's entity list and $metadata.
- Service Definitions Part 3: API Boundary, Naming and VersioningTreat a service definition as a contract: stable business names, clear naming conventions, compatible vs breaking changes, and versioning services without breaking existing consumers.
- Service Definitions Part 4: Troubleshooting Activation and Exposure GapsFix the typical service definition problems: activation errors, entities or navigation missing in the service, actions not visible, and value helps that do not work — in a fixed checking order.
- Service Definitions Part 5: UI vs Integration APIs — Reuse or Separate?Decide whether a Fiori app and an integration API should share one service or have separate ones, and how to structure projections, BDEFs, services and bindings for each.
- Service Definitions Part 6: Exposing Multiple Entities and NavigationExpose several entities in one service correctly: composition children, read-only related entities, value helps and text entities — and understand how navigation properties are created or dropped.
Interview questions covered
- How do you decide which entities go into a service definition?
- What is a RAP service definition, and how does it differ from a service binding?
- Which changes to a consumed RAP service are breaking, and how do you handle them?
- A developer renamed a field in an API projection and an external import failed overnight. What process changes do you introduce?
- $expand on a supplier association fails in a RAP service, although the association exists in the projection. What is the cause?
- An action exists in the base BDEF and works in DEV tests, but it is missing from the service metadata. What do you check?
- Should a Fiori app and an external integration share one RAP service? Explain your design.
- How do you expose related master data and value helps in a RAP service without bloating it?
- Write a service definition for an order app with header, items and a customer link, and explain each line.
- Describe the complete path from a RAP business object to a running OData service.
- You inherit several RAP services. What do you review in their service definitions?