RAP_CDS_ODATAadvanced
OData V4
Understand OData V4 as the strategic service protocol for many modern RAP scenarios. Learn entity sets, navigation, actions, metadata, concurrency, deep operations, query behavior, service bindings and the practical differences from classic Gateway OData V2.
Overview
Understand OData V4 as the strategic service protocol for many modern RAP scenarios. Learn entity sets, navigation, actions, metadata, concurrency, deep operations, query behavior, service bindings and the practical differences from classic Gateway OData V2.
Lessons in this topic
- OData V4 Part 1: The OData V4 Contract — Metadata, Keys, Navigation, QueriesRead an OData V4 service like a contract: service document, $metadata, entity sets, keys (including IsActiveEntity for draft), navigation, and the query options $select, $filter, $orderby, $top, $skip, $count, $expand and $search.
- OData V4 Part 2: Publishing a RAP Service with an OData V4 BindingPublish a RAP service with an OData V4 binding end to end: create and publish the binding, understand the URL and versions, get a CSRF token, and run first read and write calls from a REST client.
- OData V4 Part 3: Test CRUD Requests, Payloads and ResponsesTest a RAP OData V4 service end to end with metadata, GET, POST, PATCH and DELETE requests, while understanding HTTP status codes, payloads and transaction behavior.
- OData V4 Part 4: Actions, Functions and Batch ProcessingCall RAP business operations over OData V4: bound and unbound actions, actions with parameters, functions, draft actions, and $batch with change sets for atomic multi-step requests.
- OData V4 Part 5: Troubleshooting HTTP Errors, Metadata and PayloadsDiagnose OData V4 errors quickly: what each HTTP status means for a RAP service, how to read the error body, and which backend logs and traces to use.
- OData V4 Part 6: ETags and Optimistic ConcurrencyUnderstand optimistic concurrency in OData V4 with RAP: how ETags are delivered, how clients send If-Match, what 412 and 428 mean, and how RAP etag master fields drive the whole mechanism.
Interview questions covered
- How does optimistic concurrency with ETags work in a RAP OData V4 service?
- A RAP OData V4 service works in Fiori preview, but a direct API POST fails. How would you isolate whether the problem is in OData exposure or the RAP business object?
- Why should you inspect OData V4 metadata before manually constructing CRUD requests?
- Explain the OData V4 contract: what does $metadata contain and which query options exist?
- How do you publish a RAP OData V4 service and make it usable for a Fiori app and an integration?
- A mobile approval app sometimes overwrites budget corrections made minutes earlier. What is the cause and fix?
- Which design rules do you apply to OData V4 APIs built with RAP?
- You inherit an OData V4 integration landscape built on RAP. What do you review?
- How are RAP actions, functions and draft actions called over OData V4, and when do you use $batch change sets?
- Map OData HTTP status codes to their typical causes in RAP services.
- A reporting tool extracts purchase requests via OData and times out at night. What do you change?
- An integration gets 403 on every POST to a new RAP V4 service, but GETs work. What is going on?