C-ABAPD-2309 Sample Questions

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.

  1. 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.

  2. Question 2Intermediate

    Core ABAP programming · Internal Table Performance

    A consultant is reviewing an existing ABAP program for performance optimization. They find a LOOP AT statement on a large internal table that performs a READ TABLE on 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.

  3. 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

  4. 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.

  5. 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 LastChangedAt timestamp 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--> POItem
    Show 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 ENTITIES statement and then update them using MODIFY ENTITIES, ensuring transactional consistency.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.