C-ABAPD-2309 Sample Questions & Answers
Core ABAP programming is the largest area, spanning data types, internal tables and reusable modules, next to CDS views and access controls, exposing services the RESTful way, modern SQL pushdown, object-oriented principles, and a clean core through ABAP Cloud.
Launch the full C-ABAPD-2309 simulator →Showing 10 of 20 free samples.
- Question 1Beginner
SAP clean core extensibility and ABAP cloud · ABAP Cloud Development Model Restrictions
True or False: In the ABAP Cloud development model, it is a recommended practice to directly call a standard SAP function module (e.g.,
BAPI_SALESORDER_CREATEFROMDAT2) from your custom code if it has not been officially released for cloud development.Show answer & explanation
Correct answer: B
A fundamental rule of the ABAP Cloud development model and Clean Core is to only use released, stable APIs. Calling unreleased function modules, classes, or accessing dictionary objects directly is forbidden as it creates dependencies that can break during system upgrades. The ABAP compiler will prevent such calls.
- Question 2Intermediate
Core ABAP programming · Internal Table Performance
A consultant is reviewing an existing ABAP program for performance optimization. They find a
LOOP ATstatement on a large internal table that performs aREAD TABLEon another large internal table inside the loop. Both tables are standard tables.LOOP AT lt_sales_orders INTO ls_sales_order. READ TABLE lt_customer_data INTO ls_customer_data WITH KEY customer_id = ls_sales_order-customer_id. " ... further processing ENDLOOP.Which of the following refactoring approaches offers the most significant performance improvement for this code snippet?
Show answer & explanation
Correct answer: C
Reading a single row from a large table inside a loop is a classic performance bottleneck. Changing the inner table (
lt_customer_data) to a HASHED table with a unique key on the read condition (customer_id) provides near constant-time access (O(1)), which is significantly faster than the linear scan (O(n)) of a standard table or the logarithmic scan (O(log n)) of a sorted table or binary search. - Question 3AdvancedSelect 2
ABAP SQL and code pushdown · CDS Table Functions
You are performing a code pushdown to a HANA database using a CDS Table Function. Which of the following statements about CDS Table Functions are correct? (Select TWO)
Show answer & explanation
Correct answers: A, B
- Question 4Intermediate
Object-oriented design · OO Design Principles (Open/Closed)
A developer needs to implement a class that can calculate taxes for different countries. The base calculation logic is the same, but the tax rate is country-specific. The company plans to add support for more countries in the future without changing the existing code that calls the tax calculation service. Which object-oriented design principle is best suited for this requirement?
Show answer & explanation
Correct answer: B
The Open/Closed Principle states that software entities should be open for extension but closed for modification. By defining a common interface (e.g.,
ZIF_TAX_CALCULATOR) and creating separate classes for each country that implement this interface (ZCL_TAX_CALC_US,ZCL_TAX_CALC_DE), you can add new countries (extensions) without modifying the existing, tested code that uses the interface. - Question 5Advanced
ABAP RESTful Application Programming Model · RAP Business Object Logic
An architect is designing a Fiori application using the ABAP RESTful Application Programming Model (RAP). The application needs to display a list of purchase orders and their items. The business logic requires that whenever a purchase order's status is updated, the
LastChangedAttimestamp for all its associated items must also be updated. Where should this logic be implemented according to RAP best practices?graph TD subgraph PurchaseOrderBO [Purchase Order BO] direction LR POHeader[Root: Purchase Order Header] --> POItem[Child: Purchase Order Item] end POHeader --triggers--> UpdateLogic{Update Logic} UpdateLogic --updates--> POHeader UpdateLogic --cascades_update--> POItemShow answer & explanation
Correct answer: C
In RAP, business logic should be encapsulated within the business object's behavior implementation. When a change in a parent entity needs to trigger a change in child entities, the logic belongs in the parent's behavior. A determination on modify for the header entity can be implemented to read the associated items using the EML
READ ENTITIESstatement and then update them usingMODIFY ENTITIES, ensuring transactional consistency. - Question 6Advanced
SAP clean core extensibility and ABAP cloud · Case Study on Extensibility and RAP
Case Study:
A global logistics company, 'ShipFast', is modernizing its freight management system using SAP S/4HANA Cloud. They need to build a custom Fiori application for their logistics planners to manage freight units. The application must comply with SAP's Clean Core strategy.
The core requirement is to display a list of freight units and allow planners to assign a 'Priority' status (e.g., 'High', 'Standard', 'Low'). This 'Priority' is a custom field and does not exist in the standard Freight Unit business object. When a planner sets the priority to 'High', the application must check a third-party weather service via a REST API to see if the destination region has a severe weather alert. If an alert exists, the planner must be shown a warning message before they can save the change.
All development must be done using the ABAP Cloud development model and be upgrade-safe. The custom 'Priority' field needs to be persisted and available for analytical reporting.
Which approach correctly implements this solution while adhering to all constraints?
Show answer & explanation
Correct answer: C
This solution correctly follows the ABAP Cloud model. 'Custom Fields and Logic' is the standard tool for adding fields. The logic is placed in a released BAdI, ensuring upgrade safety. The external call uses the released HTTP Client API (
CL_WEB_HTTP_CLIENT_MANAGER), which is the correct, cloud-compliant way to make outbound requests. This approach encapsulates the custom logic cleanly without modifying standard objects. - Question 7Intermediate
ABAP RESTful Application Programming Model · RAP Service Exposure
A developer has created a CDS view entity and wants to expose it as an OData V4 service for a Fiori UI. What are the mandatory RAP artifacts that must be created, in the correct sequence, to achieve this?
Show answer & explanation
Correct answer: C
To expose a CDS view via OData, you first create a Service Definition to specify which CDS entities are included in the service. Then, you create a Service Binding to define the protocol (e.g., OData V4 UI) and activate the service endpoint. A Behavior Definition is only mandatory if the service needs transactional capabilities (Create, Update, Delete, Actions); for a read-only service based on a CDS view entity, it is not required.
- Question 8Beginner
ABAP core data services and data modeling · CDS Calculated Fields
You are creating a CDS view and need to display a calculated field representing the net value of an item (
quantity * price). To ensure optimal performance, where should this calculation be defined?Show answer & explanation
Correct answer: B
Defining the calculation directly within the CDS view (
quantity * price as NetValue) is the core concept of 'code pushdown'. This pushes the calculation down to the database layer (HANA), which can perform set-based operations far more efficiently than row-by-row processing in a loop on the ABAP application server. This minimizes data transfer and leverages the power of the underlying database. - Question 9Beginner
ABAP core data services and data modeling · CDS Access Controls (DCL)
What is the primary purpose of defining a CDS Access Control List (DCL) on a CDS view?
Show answer & explanation
Correct answer: D
CDS Access Control Lists (DCLs) are used to implement Data Control Language. Their sole purpose is to define authorizations for the data exposed by a CDS view. The DCL automatically enriches the WHERE clause of any query to the CDS view, filtering the results to show only the rows the current user is authorized to see based on their assigned roles.
- Question 10Beginner
Core ABAP programming · Modern ABAP Syntax (Inline Declarations)
A developer is writing an ABAP SQL query. The statement
SELECT * FROM sflight INTO TABLE @DATA(lt_flights)is used. What is the key advantage of using the inline declaration@DATA(lt_flights)here?Show answer & explanation
Correct answer: C
Inline declarations (
@DATA(...)) allow the ABAP compiler to infer the data type of the variable from its context. In a SELECT statement, the compiler determines the structure of the result set and creates the internal table with a matching row type automatically. This reduces boilerplate code, improves readability, and avoids potential type mismatches from manual declarations.
Ready for the real thing?
The full C-ABAPD-2309 simulator has every exam-style question, timed mode, and instant scoring.