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