SAP OData Interview Questions
OData interviews split candidates into two groups fast: those who have only consumed a service from a Fiori app, and those who have built and debugged one. The questions below are drawn from ERPClimb's reviewed bank and are written for the second group — but they are exactly what the first group gets asked.
Expect the mechanics first: entity types and entity sets, the metadata document, query options like $filter and $expand, and how CRUD maps to the generated provider classes. Then the scenarios: a service that returns 500 with no message, a breakpoint that never stops, a list service that dies on real data volumes, a key that cannot find a material that obviously exists.
Every answer keeps the order that works in a real interview — what you would check, in which tool, and what that result would tell you next. Naming the right error log without being prompted is worth more than any definition.
What interviewers actually probe
Error analysis under pressure
The classic scenario is a failing call with a useless message. Interviewers listen for the frontend versus backend error logs, replaying the request, and checking service registration before touching code.
Performance on real volumes
A list service that is fast in testing and slow in production is a near-guaranteed scenario. Server-side paging, selective fields, and pushing filters to the database are the expected direction.
Why your breakpoint does not stop
Gateway calls do not run in your dialog session. Being able to explain external breakpoints and runtime users separates candidates who have debugged a live service from those who have not.
Conversion exits and keys
The 'material exists but the service says not found' question tests whether you remember that keys arrive in external format and need conversion before the SELECT.
24 questions with full answers
Ordered from foundational to advanced. No sign-in required.
2. A CustomerSet entity was created by importing KNA1 directly, exposing 180 technical fields like KUNNR and LAND1. What is wrong with this design and how would you model it?
3. What is SEGW?
4. How do you implement $filter on an entity set?
5. A Fiori app calls your OData service but your breakpoint is not stopping. What would you check?
6. An OData list service is slow and returns thousands of records. How would you improve it?
7. What is the difference between entity type and entity set in OData?
8. What is a deep insert?
9. A material detail service returns not found for material 12345, but the material exists in SAP. What could be wrong?
10. How do you design a maintainable SEGW OData service?
11. Where do you check errors for a failing OData service?
12. OData call returns 500 error with no useful message. What do you check?
13. A service works in /IWFND/GW_CLIENT on the backend but fails from the Fiori launchpad on the frontend server with "No system alias found". What is happening?
14. A sales order service uses MESSAGE e001(zsales) for validation in DPC_EXT. Fiori users get a short dump or a generic error. How do you fix error handling?
15. A stable SEGW OData V2 API is used by three external partners. A new architect wants to rewrite it in RAP "because SEGW is old". How do you evaluate this?
16. A Fiori list shows customers correctly, but the object page is empty for every customer. The list returns Customer = '12345'. What is likely wrong?
17. A developer proposes adding @OData.publish: true to a CDS view to quickly expose it. What do you advise on a current S/4HANA system?
18. A service works when you test it in the Gateway client, but fails when called from the Fiori app. How do you find the difference?
19. A Fiori order-entry app makes 12 sequential calls to create one order (header, then each item, then texts). Saves are slow and sometimes leave half-created orders. How would you redesign the service?
20. A customer portal's CREATE_ENTITY inserts sales order data directly into VBAK and VBAP. What are the risks and what should it do instead?
21. After transporting a changed OData service to QA, the Fiori app fails with "Property DeliveryDate not found" although the code is correct. What do you check?
22. External partner requires OAuth2 on OData. Approach?
23. An invoice list service returns every billing document when no filter is sent and times out in Fiori. How do you fix it?
24. Users scrolling a Fiori list see some orders twice and others never. The service implements $top/$skip. What is the cause?
Practise by experience level
The questions above are tagged by the experience levels they are normally asked at, so the same page works for a first interview and for a lead-developer round.
SAP OData Interview Questions FAQ
What is the difference between V2 and V4 OData in SAP?
V2 is the SAP Gateway generation exposed through SEGW with hand-implemented provider methods; V4 is the standard-aligned generation that RAP services produce. V4 tightens the protocol — cleaner expand and filter semantics, leaner metadata — and, in SAP terms, signals that the service comes from a behaviour definition rather than a legacy project.
An OData call returns 500 with no useful message. What do you check?
The error logs before the code: the frontend Gateway error log for requests that never reached the backend, the backend error log for ones that did, then replay the request in the Gateway client to reproduce it under your own control. Only after that do breakpoints and dumps earn their place.
How do you make a slow list service faster?
Move work to the database and shrink the payload: server-side paging with $top and $skip, $select for only the fields the UI shows, filters translated into the underlying selection instead of applied in ABAP afterwards, and care with $expand on high-cardinality associations.
What is a deep insert and when is it used?
A single create call whose payload contains a header and its items together, so the consumer creates a document in one request. The backend must handle the nested structure in one logical unit of work — interviewers probe whether you understand the consistency requirement, not just the payload shape.
Why does a service return not found for a material that exists?
Almost always a conversion-exit problem: the key arrives in external format while the database stores the internal one, so the selection misses. The fix is converting the incoming key — the debugging skill is recognising the symptom before rewriting the query.
Next practice step
Related SAP interview topics
ERP Climb is an independent educational platform and is not affiliated with SAP SE.