Restore faz1/yol-haritasi docs (overwritten by copy); stage1 docs; G0174 new gap; stage1 25-task subset

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 17:33:55 +02:00
parent 01e99158a9
commit 65322f27ff
44 changed files with 2137 additions and 855 deletions

View File

@@ -1,32 +1,41 @@
# 1. Goal
Refactor the legacy function module {{P}}SKI_RENTAL_OLD in function group {{P}}FG_SKI. The function module calculates the rental price and the deposit for ski equipment. Improve the readability, the maintainability, and the structure of the code. The behavior must stay the same. The public interface must not change.
Refactor the legacy function module {{P}}MUSEUM_FEE_OLD in function group
{{P}}FG_MUSEUM. The function module calculates the entry fee for a museum visit.
The behavior of the function module must stay the same. Improve the code
quality.
# 2. Open questions
None.
# 3. Context
- Function group {{P}}FG_SKI exists in package $TMP.
- Function module {{P}}SKI_RENTAL_OLD exists in this group. It contains legacy code.
- A rental program calls the function module. The callers use the current interface.
- Function group {{P}}FG_MUSEUM exists in package $TMP.
- Function module {{P}}MUSEUM_FEE_OLD exists in this group. It contains legacy
code.
- The function module is called by a ticketing program. The interface must not
change.
# 4. Contract
- The function module {{P}}SKI_RENTAL_OLD keeps its name and its function group.
- The interface stays exactly the same:
- Importing: iv_equipment TYPE string, iv_days TYPE i, iv_customer TYPE string, iv_insurance TYPE abap_bool
- Exporting: ev_price TYPE decfloat34, ev_deposit TYPE decfloat34
- Exceptions: invalid_equipment, invalid_days, invalid_customer
- Refactor the function module {{P}}MUSEUM_FEE_OLD in function group
{{P}}FG_MUSEUM.
- Keep the name and the public interface: the same parameter names, kinds,
types, and exceptions.
# 5. Business rules
The business rules are defined by the current implementation of {{P}}SKI_RENTAL_OLD. The behavior must stay the same. Read the legacy code to understand the rules.
1. The behavior of the function module must not change. The legacy code defines
the business rules.
2. The function module must raise the exception INVALID_INPUT for the same
inputs as the legacy code.
3. The exported values must be the same as the legacy code for all valid
inputs.
# 6. Constraints
- Release target: 8.16.
- The function module must be active and have no syntax error.
- Refactor the code in place. Do not change the public interface.
- Follow Clean ABAP: small methods, no duplication, meaningful names, constants for literals.
- Out of scope: do not change the function group {{P}}FG_SKI. Do not create new function modules.
- Coding standards: Clean ABAP, no ATC priority 1 or 2 findings, methods below
40 statements.
- Out of scope: none.
# 7. Acceptance
- The function module is active and has no syntax error.
- The behavior is unchanged.
- The hidden tests pass.
- Write ABAP Unit tests for the function module in a global test class.