Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
2.0 KiB
2.0 KiB
1. Goal
The CDS view {{P}}I_GREEN_FEE in package $TMP shows the green fee of each tee time of a golf club. The view is old: it uses the obsolete CDS view syntax and nested CASE expressions. Refactor the view in place. The name of the view and its public interface do not change.
Quality goals:
- {{P}}I_GREEN_FEE is a CDS view entity.
- The view has no obsolete annotation.
- No CASE expression contains another CASE expression. Each element is computed by at most one CASE expression.
- The behavior stays the same. Every row and every value that the view returns today must stay the same.
2. Open questions
None.
3. Context
- Table {{P}}MEMBER (club member), package $TMP. Key: MEMBER_ID (CHAR 10). Fields: MEMBER_KIND (CHAR 1), MEMBER_NAME (CHAR 40).
- Table {{P}}TEE (tee time), package $TMP. Key: TEE_ID (CHAR 10). Fields: MEMBER_ID (CHAR 10), DAY_KIND (CHAR 1), PLAYER_COUNT (INT4).
- The CDS view {{P}}I_GREEN_FEE is in package $TMP. Its current source is the only specification of the business rules. Read it before you change it.
4. Contract
- {{P}}I_GREEN_FEE stays a CDS view entity in package $TMP with this name.
- Elements, with these names and in this order: TEE_ID (key), MEMBER_ID, MEMBER_KIND, DAY_KIND, PLAYER_COUNT, GREEN_FEE.
- Authorization check: #NOT_REQUIRED.
5. Business rules
- The behavior of {{P}}I_GREEN_FEE does not change. Every row and every value that the view returns today must stay the same.
- The current source of the view is the only specification of these rules. Read it carefully. Keep the default branches of the CASE expressions.
6. Constraints
- Release target: 8.16.
- Out of scope: do not change {{P}}MEMBER and {{P}}TEE.
- Do not change the public interface of {{P}}I_GREEN_FEE: same name, same element names, same element order, same key element.
7. Acceptance
- {{P}}I_GREEN_FEE is active and has no syntax error.
- {{P}}I_GREEN_FEE is a CDS view entity and has no nested CASE expression.
- The hidden tests pass.
- Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class.