Stage 2 summary at 50 accepted trajectories

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 18:02:52 +02:00
parent 332fb4601d
commit 5bcd1bf9cd
1230 changed files with 77563 additions and 33 deletions

View File

@@ -0,0 +1,75 @@
CLASS {{p}}seed_lot_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_lot,
lot_no TYPE c LENGTH 10,
germination TYPE i,
moisture TYPE p LENGTH 4 DECIMALS 1,
harvest_date TYPE d,
END OF ty_lot.
METHODS check_lot
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
PRIVATE SECTION.
CONSTANTS:
c_min_germination TYPE i VALUE 85,
c_max_moisture TYPE p LENGTH 4 DECIMALS 1 VALUE '12.0',
c_max_age_days TYPE i VALUE 365.
METHODS check_lot_no
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_harvest_date
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
METHODS check_germination
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_moisture
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
ENDCLASS.
CLASS {{p}}seed_lot_checker IMPLEMENTATION.
METHOD check_lot.
check_lot_no( is_lot ).
check_harvest_date( is_lot = is_lot iv_check_date = iv_check_date ).
check_germination( is_lot ).
check_moisture( is_lot ).
ENDMETHOD.
METHOD check_lot_no.
DATA(lv_letters) = substring( val = is_lot-lot_no len = 4 ).
DATA(lv_digits) = substring( val = is_lot-lot_no off = 4 len = 6 ).
IF lv_letters CN 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' AND lv_digits CN '0123456789'.
RAISE EXCEPTION TYPE {{p}}cx_lot_format.
ENDIF.
ENDMETHOD.
METHOD check_harvest_date.
IF is_lot-harvest_date IS INITIAL.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
DATA(lv_age_in_days) = iv_check_date - is_lot-harvest_date.
IF lv_age_in_days < 0 OR lv_age_in_days > c_max_age_days.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
ENDMETHOD.
METHOD check_germination.
IF is_lot-germination < c_min_germination.
RAISE EXCEPTION TYPE {{p}}cx_lot_germination.
ENDIF.
ENDMETHOD.
METHOD check_moisture.
IF is_lot-moisture > c_max_moisture.
RAISE EXCEPTION TYPE {{p}}cx_lot_moisture.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,75 @@
CLASS {{p}}seed_lot_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_lot,
lot_no TYPE c LENGTH 10,
germination TYPE i,
moisture TYPE p LENGTH 4 DECIMALS 1,
harvest_date TYPE d,
END OF ty_lot.
METHODS check_lot
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
PRIVATE SECTION.
CONSTANTS:
c_min_germination TYPE i VALUE 85,
c_max_moisture TYPE p LENGTH 4 DECIMALS 1 VALUE '12.0',
c_max_age_days TYPE i VALUE 365.
METHODS check_lot_no
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_harvest_date
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
METHODS check_germination
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_moisture
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
ENDCLASS.
CLASS {{p}}seed_lot_checker IMPLEMENTATION.
METHOD check_lot.
check_lot_no( is_lot ).
check_harvest_date( is_lot = is_lot iv_check_date = iv_check_date ).
check_germination( is_lot ).
check_moisture( is_lot ).
ENDMETHOD.
METHOD check_lot_no.
DATA(lv_letters) = substring( val = is_lot-lot_no len = 4 ).
DATA(lv_digits) = substring( val = is_lot-lot_no off = 4 len = 6 ).
IF lv_letters CN 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' OR lv_digits CN '0123456789'.
RAISE EXCEPTION TYPE {{p}}cx_lot_format.
ENDIF.
ENDMETHOD.
METHOD check_harvest_date.
IF is_lot-harvest_date IS INITIAL.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
DATA(lv_age_in_days) = iv_check_date - is_lot-harvest_date.
IF lv_age_in_days >= 0 OR lv_age_in_days > c_max_age_days.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
ENDMETHOD.
METHOD check_germination.
IF is_lot-germination < c_min_germination.
RAISE EXCEPTION TYPE {{p}}cx_lot_germination.
ENDIF.
ENDMETHOD.
METHOD check_moisture.
IF is_lot-moisture > c_max_moisture.
RAISE EXCEPTION TYPE {{p}}cx_lot_moisture.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,75 @@
CLASS {{p}}seed_lot_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_lot,
lot_no TYPE c LENGTH 10,
germination TYPE i,
moisture TYPE p LENGTH 4 DECIMALS 1,
harvest_date TYPE d,
END OF ty_lot.
METHODS check_lot
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
PRIVATE SECTION.
CONSTANTS:
c_min_germination TYPE i VALUE 85,
c_max_moisture TYPE p LENGTH 4 DECIMALS 1 VALUE '12.0',
c_max_age_days TYPE i VALUE 365.
METHODS check_lot_no
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_harvest_date
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
METHODS check_germination
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_moisture
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
ENDCLASS.
CLASS {{p}}seed_lot_checker IMPLEMENTATION.
METHOD check_lot.
check_lot_no( is_lot ).
check_harvest_date( is_lot = is_lot iv_check_date = iv_check_date ).
check_germination( is_lot ).
check_moisture( is_lot ).
ENDMETHOD.
METHOD check_lot_no.
DATA(lv_letters) = substring( val = is_lot-lot_no len = 4 ).
DATA(lv_digits) = substring( val = is_lot-lot_no off = 4 len = 6 ).
IF lv_letters CN 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' OR lv_digits CN '0123456789'.
RAISE EXCEPTION TYPE {{p}}cx_lot_format.
ENDIF.
ENDMETHOD.
METHOD check_harvest_date.
IF is_lot-harvest_date IS INITIAL.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
DATA(lv_age_in_days) = iv_check_date - is_lot-harvest_date.
IF lv_age_in_days < 0 AND lv_age_in_days > c_max_age_days.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
ENDMETHOD.
METHOD check_germination.
IF is_lot-germination < c_min_germination.
RAISE EXCEPTION TYPE {{p}}cx_lot_germination.
ENDIF.
ENDMETHOD.
METHOD check_moisture.
IF is_lot-moisture > c_max_moisture.
RAISE EXCEPTION TYPE {{p}}cx_lot_moisture.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,75 @@
CLASS {{p}}seed_lot_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_lot,
lot_no TYPE c LENGTH 10,
germination TYPE i,
moisture TYPE p LENGTH 4 DECIMALS 1,
harvest_date TYPE d,
END OF ty_lot.
METHODS check_lot
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
PRIVATE SECTION.
CONSTANTS:
c_min_germination TYPE i VALUE 85,
c_max_moisture TYPE p LENGTH 4 DECIMALS 1 VALUE '12.0',
c_max_age_days TYPE i VALUE 365.
METHODS check_lot_no
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_harvest_date
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
METHODS check_germination
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_moisture
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
ENDCLASS.
CLASS {{p}}seed_lot_checker IMPLEMENTATION.
METHOD check_lot.
check_lot_no( is_lot ).
check_harvest_date( is_lot = is_lot iv_check_date = iv_check_date ).
check_germination( is_lot ).
check_moisture( is_lot ).
ENDMETHOD.
METHOD check_lot_no.
DATA(lv_letters) = substring( val = is_lot-lot_no len = 4 ).
DATA(lv_digits) = substring( val = is_lot-lot_no off = 4 len = 6 ).
IF lv_letters CN 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' OR lv_digits CN '0123456789'.
RAISE EXCEPTION TYPE {{p}}cx_lot_format.
ENDIF.
ENDMETHOD.
METHOD check_harvest_date.
IF is_lot-harvest_date IS INITIAL.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
DATA(lv_age_in_days) = iv_check_date - is_lot-harvest_date.
IF lv_age_in_days < 0 OR lv_age_in_days <= c_max_age_days.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
ENDMETHOD.
METHOD check_germination.
IF is_lot-germination < c_min_germination.
RAISE EXCEPTION TYPE {{p}}cx_lot_germination.
ENDIF.
ENDMETHOD.
METHOD check_moisture.
IF is_lot-moisture > c_max_moisture.
RAISE EXCEPTION TYPE {{p}}cx_lot_moisture.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,75 @@
CLASS {{p}}seed_lot_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_lot,
lot_no TYPE c LENGTH 10,
germination TYPE i,
moisture TYPE p LENGTH 4 DECIMALS 1,
harvest_date TYPE d,
END OF ty_lot.
METHODS check_lot
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
PRIVATE SECTION.
CONSTANTS:
c_min_germination TYPE i VALUE 85,
c_max_moisture TYPE p LENGTH 4 DECIMALS 1 VALUE '12.0',
c_max_age_days TYPE i VALUE 365.
METHODS check_lot_no
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_harvest_date
IMPORTING is_lot TYPE ty_lot
iv_check_date TYPE d
RAISING {{p}}cx_seed_lot.
METHODS check_germination
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
METHODS check_moisture
IMPORTING is_lot TYPE ty_lot
RAISING {{p}}cx_seed_lot.
ENDCLASS.
CLASS {{p}}seed_lot_checker IMPLEMENTATION.
METHOD check_lot.
check_lot_no( is_lot ).
check_harvest_date( is_lot = is_lot iv_check_date = iv_check_date ).
check_germination( is_lot ).
check_moisture( is_lot ).
ENDMETHOD.
METHOD check_lot_no.
DATA(lv_letters) = substring( val = is_lot-lot_no len = 4 ).
DATA(lv_digits) = substring( val = is_lot-lot_no off = 4 len = 6 ).
IF lv_letters CN 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' OR lv_digits CN '0123456789'.
RAISE EXCEPTION TYPE {{p}}cx_lot_format.
ENDIF.
ENDMETHOD.
METHOD check_harvest_date.
IF is_lot-harvest_date IS INITIAL.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
DATA(lv_age_in_days) = iv_check_date - is_lot-harvest_date.
IF lv_age_in_days < 0 OR lv_age_in_days > c_max_age_days.
RAISE EXCEPTION TYPE {{p}}cx_lot_date.
ENDIF.
ENDMETHOD.
METHOD check_germination.
IF is_lot-germination < c_min_germination.
RAISE EXCEPTION TYPE {{p}}cx_lot_germination.
ENDIF.
ENDMETHOD.
METHOD check_moisture.
IF is_lot-moisture <= c_max_moisture.
RAISE EXCEPTION TYPE {{p}}cx_lot_moisture.
ENDIF.
ENDMETHOD.
ENDCLASS.