Files

1.5 KiB

1. Goal

The CDS view entity {{P}}I_RENTAL_TOTAL in package $TMP shows the charges of each rental. Users report that the view gives wrong totals and wrong counts when a customer has more than one rental. Fix the view in place. All other behavior stays the same.

2. Open questions

None.

3. Context

  • Table {{P}}RENTAL (rental header), package $TMP. Key: RENTAL_ID (CHAR 10). Fields: CUSTOMER (CHAR 10), PICKUP_DATE (DATS).
  • Table {{P}}CHARGE (rental charge), package $TMP. Key: RENTAL_ID (CHAR 10), CHARGE_NO (INT4). Fields: CUSTOMER (CHAR 10), CHARGE_TYPE (CHAR 4), AMOUNT (DEC 15,2).
  • The CDS view entity {{P}}I_RENTAL_TOTAL already exists in package $TMP. It is faulty.

4. Contract

  • Fix the CDS view entity {{P}}I_RENTAL_TOTAL in package $TMP.
  • Elements, with these names: RENTAL_ID (key), CUSTOMER, CHARGE_COUNT, TOTAL_AMOUNT.
  • No authorization check (#NOT_REQUIRED).

5. Business rules

  1. Show one row for each rental that has at least one charge. Do not show a rental without charges.
  2. CHARGE_COUNT is the number of charges of the rental.
  3. TOTAL_AMOUNT is the sum of AMOUNT of all charges of the rental, with 2 decimals.
  4. CUSTOMER is the customer of the rental.
  5. All other behavior of the view stays the same.

6. Constraints

  • Release target: 8.16.
  • Coding standards: Clean ABAP.
  • Out of scope: do not change {{P}}RENTAL and {{P}}CHARGE.
  • Use "define view entity".

7. Acceptance

  • The view is active and has no syntax error.
  • The hidden tests pass.
  • Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class.