Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration

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 12:10:52 +02:00
parent d3250acfb8
commit 39769afce8
741 changed files with 40573 additions and 317 deletions

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
left outer join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' or tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'Z'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' or tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind <> 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,24 @@
{
"id": "G0145",
"pool": "eval",
"object_type": "DDLS",
"category": "E",
"attempts": [
{
"stage": "validate",
"oracle": null,
"null": null
},
{
"stage": "validate",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 5,
"killed": 5,
"ok": true
}
}
],
"accepted": true
}

View File

@@ -0,0 +1,108 @@
CLASS {{p}}green_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS junior_weekday FOR TESTING.
METHODS junior_weekend FOR TESTING.
METHODS junior_unknown_day FOR TESTING.
METHODS senior_weekday FOR TESTING.
METHODS senior_weekend FOR TESTING.
METHODS senior_holiday FOR TESTING.
METHODS adult_weekday FOR TESTING.
METHODS adult_weekend FOR TESTING.
METHODS adult_holiday FOR TESTING.
METHODS unknown_member FOR TESTING.
METHODS tee_without_member FOR TESTING.
ENDCLASS.
CLASS {{p}}green_hidden IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_GREEN_FEE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_mem TYPE STANDARD TABLE OF {{p}}member WITH EMPTY KEY.
DATA lt_tee TYPE STANDARD TABLE OF {{p}}tee WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_mem = VALUE #( ( member_id = 'M1' member_kind = 'J' member_name = 'Junior' )
( member_id = 'M2' member_kind = 'S' member_name = 'Senior' )
( member_id = 'M3' member_kind = 'A' member_name = 'Adult' )
( member_id = 'M4' member_kind = 'X' member_name = 'Unknown' ) ).
lt_tee = VALUE #( ( tee_id = 'T01' member_id = 'M1' day_kind = 'W' player_count = 1 )
( tee_id = 'T02' member_id = 'M1' day_kind = 'E' player_count = 2 )
( tee_id = 'T03' member_id = 'M1' day_kind = 'Z' player_count = 1 )
( tee_id = 'T04' member_id = 'M2' day_kind = 'W' player_count = 1 )
( tee_id = 'T05' member_id = 'M2' day_kind = 'E' player_count = 3 )
( tee_id = 'T06' member_id = 'M2' day_kind = 'H' player_count = 1 )
( tee_id = 'T07' member_id = 'M3' day_kind = 'W' player_count = 1 )
( tee_id = 'T08' member_id = 'M3' day_kind = 'E' player_count = 1 )
( tee_id = 'T09' member_id = 'M3' day_kind = 'H' player_count = 2 )
( tee_id = 'T10' member_id = 'M4' day_kind = 'W' player_count = 1 )
( tee_id = 'T11' member_id = 'M9' day_kind = 'W' player_count = 1 ) ).
go_env->insert_test_data( lt_mem ).
go_env->insert_test_data( lt_tee ).
ENDMETHOD.
METHOD junior_weekday.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T01' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD junior_weekend.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T02' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '24.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD junior_unknown_day.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T03' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD senior_weekday.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T04' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '20.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD senior_weekend.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T05' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '90.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD senior_holiday.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T06' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD adult_weekday.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T07' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD adult_weekend.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T08' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '55.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD adult_holiday.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T09' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '120.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD unknown_member.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T10' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD tee_without_member.
SELECT COUNT(*) FROM {{p}}i_green_fee INTO @DATA(lv_count).
cl_abap_unit_assert=>assert_equals( exp = 10 act = lv_count ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,62 @@
{
"task": "G0145",
"mutants": [
{
"object": "{{P}}I_GREEN_FEE",
"mutant": "line 5: inner join -> left outer join (join)",
"status": "killed",
"hidden": "10/11",
"failed_tests": [
"TEE_WITHOUT_MEMBER"
]
},
{
"object": "{{P}}I_GREEN_FEE",
"mutant": "line 13: and -> or (logic)",
"status": "killed",
"hidden": "6/11",
"failed_tests": [
"ADULT_WEEKDAY",
"JUNIOR_UNKNOWN_DAY",
"JUNIOR_WEEKEND",
"SENIOR_WEEKDAY",
"UNKNOWN_MEMBER"
]
},
{
"object": "{{P}}I_GREEN_FEE",
"mutant": "line 17: 'W' -> 'Z' (lit)",
"status": "killed",
"hidden": "10/11",
"failed_tests": [
"SENIOR_WEEKDAY"
]
},
{
"object": "{{P}}I_GREEN_FEE",
"mutant": "line 19: and -> or (logic)",
"status": "killed",
"hidden": "9/11",
"failed_tests": [
"ADULT_WEEKEND",
"SENIOR_HOLIDAY"
]
},
{
"object": "{{P}}I_GREEN_FEE",
"mutant": "line 23: = -> <> (eq)",
"status": "killed",
"hidden": "7/11",
"failed_tests": [
"ADULT_HOLIDAY",
"ADULT_WEEKDAY",
"ADULT_WEEKEND",
"UNKNOWN_MEMBER"
]
}
],
"valid": 5,
"killed": 5,
"kill_rate": 1.0,
"ok": true
}

View File

@@ -0,0 +1,42 @@
CLASS {{p}}green_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS junior_weekday_fee FOR TESTING.
METHODS junior_weekend_fee FOR TESTING.
ENDCLASS.
CLASS {{p}}green_test IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_GREEN_FEE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_mem TYPE STANDARD TABLE OF {{p}}member WITH EMPTY KEY.
DATA lt_tee TYPE STANDARD TABLE OF {{p}}tee WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_mem = VALUE #( ( member_id = 'M1' member_kind = 'J' member_name = 'Junior' ) ).
lt_tee = VALUE #( ( tee_id = 'T01' member_id = 'M1' day_kind = 'W' player_count = 1 )
( tee_id = 'T02' member_id = 'M1' day_kind = 'E' player_count = 2 ) ).
go_env->insert_test_data( lt_mem ).
go_env->insert_test_data( lt_tee ).
ENDMETHOD.
METHOD junior_weekday_fee.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T01' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
METHOD junior_weekend_fee.
SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T02' INTO @DATA(lv_fee).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '24.00' ) act = CONV decfloat34( lv_fee ) ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,29 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view entity {{P}}I_GREEN_FEE
as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case
when mem.member_kind = 'J' and tee.day_kind = 'W'
then cast( 8 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'J'
then cast( 12 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'W'
then cast( 20 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S' and tee.day_kind = 'E'
then cast( 30 as abap.dec(7,2) ) * tee.player_count
when mem.member_kind = 'S'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'W'
then cast( 35 as abap.dec(7,2) ) * tee.player_count
when tee.day_kind = 'E'
then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end as green_fee
}

View File

@@ -0,0 +1,32 @@
@AbapCatalog.sqlViewName: '{{P}}VGRN'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Green fee per tee time'
define view {{P}}I_GREEN_FEE as select from {{p}}tee as tee
inner join {{p}}member as mem on mem.member_id = tee.member_id
{
key tee.tee_id as tee_id,
tee.member_id as member_id,
mem.member_kind as member_kind,
tee.day_kind as day_kind,
tee.player_count as player_count,
case mem.member_kind
when 'J' then
case tee.day_kind
when 'W' then cast( 8 as abap.dec(7,2) ) * tee.player_count
when 'E' then cast( 12 as abap.dec(7,2) ) * tee.player_count
else cast( 12 as abap.dec(7,2) ) * tee.player_count
end
when 'S' then
case tee.day_kind
when 'W' then cast( 20 as abap.dec(7,2) ) * tee.player_count
when 'E' then cast( 30 as abap.dec(7,2) ) * tee.player_count
else cast( 35 as abap.dec(7,2) ) * tee.player_count
end
else
case tee.day_kind
when 'W' then cast( 35 as abap.dec(7,2) ) * tee.player_count
when 'E' then cast( 55 as abap.dec(7,2) ) * tee.player_count
else cast( 60 as abap.dec(7,2) ) * tee.player_count
end
end as green_fee
}

View File

@@ -0,0 +1,11 @@
@EndUserText.label : 'Club member'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}member {
key client : abap.clnt not null;
key member_id : abap.char(10) not null;
member_kind : abap.char(1);
member_name : abap.char(40);
}

View File

@@ -0,0 +1,12 @@
@EndUserText.label : 'Tee time'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}tee {
key client : abap.clnt not null;
key tee_id : abap.char(10) not null;
member_id : abap.char(10);
day_kind : abap.char(1);
player_count : abap.int4;
}

View File

@@ -0,0 +1,48 @@
# 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.

View File

@@ -0,0 +1,73 @@
{
"id": "G0145",
"category": "E",
"object_type": "DDLS",
"difficulty": 2,
"release_target": "v816",
"expected_outcome": "implement",
"budget": {
"max_tool_calls": 60,
"max_activations": 15
},
"seed": [
{
"type": "TABL",
"name": "{{P}}MEMBER",
"file": "seed/member.tabl.asabap",
"description": "Club member"
},
{
"type": "TABL",
"name": "{{P}}TEE",
"file": "seed/tee.tabl.asabap",
"description": "Tee time"
},
{
"type": "DDLS",
"name": "{{P}}I_GREEN_FEE",
"file": "seed/i_green_fee.ddls.asddls",
"description": "Legacy green fee view, refactor in place"
}
],
"contract": [
{
"type": "DDLS",
"name": "{{P}}I_GREEN_FEE",
"fields": [
"TEE_ID",
"MEMBER_ID",
"MEMBER_KIND",
"DAY_KIND",
"PLAYER_COUNT",
"GREEN_FEE"
]
}
],
"out_of_scope": [
"{{P}}MEMBER",
"{{P}}TEE"
],
"hidden_tests": [
{
"type": "CLAS",
"name": "{{P}}GREEN_HIDDEN",
"file": "hidden/green_hidden.clas.abap",
"description": "Hidden behavior tests for the green fee view"
}
],
"reference": [
{
"type": "DDLS",
"name": "{{P}}I_GREEN_FEE",
"file": "reference/i_green_fee.ddls.asddls",
"description": "Refactored view entity"
},
{
"type": "CLAS",
"name": "{{P}}GREEN_TEST",
"file": "reference/green_test.clas.abap",
"description": "Own CDS tests"
}
],
"craft_checks": []
}