Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
49 lines
2.0 KiB
Markdown
49 lines
2.0 KiB
Markdown
# 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
|
|
1. The behavior of {{P}}I_GREEN_FEE does not change. Every row and every value
|
|
that the view returns today must stay the same.
|
|
2. 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.
|