UENO: Clear/fill user, date, and time fields (#5520)

Apply clear/fill rules to user and time-specific fields

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2022-05-04 09:31:49 +02:00 committed by GitHub
parent d35e3548d8
commit 6524d2fcee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -106,6 +106,9 @@ CLASS zcl_abapgit_object_ueno DEFINITION
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS. ENDCLASS.
@ -366,10 +369,80 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_field_rules.
DATA:
lt_fields TYPE TABLE OF string,
lv_fields TYPE string,
lv_table TYPE tabname,
lv_field TYPE string,
lv_rule TYPE string,
lv_rule_iter TYPE string,
lv_fill_rule TYPE zif_abapgit_field_rules=>ty_fill_rule,
lv_prefix TYPE fieldname,
lv_suffix TYPE fieldname.
ro_result = zcl_abapgit_field_rules=>create( ).
" Many tables and fields with date,time,user so we encode them
APPEND 'DM02L,FL,DTU' TO lt_fields.
APPEND 'DM02T,L,DTU' TO lt_fields.
APPEND 'DM03S,FL,DTU' TO lt_fields.
APPEND 'DM25L,FL,DTU' TO lt_fields.
APPEND 'DM26L,FL,DTU' TO lt_fields.
APPEND 'DM42S,FL,DTU' TO lt_fields.
APPEND 'DM42T,L,DTU' TO lt_fields.
APPEND 'DM43T,L,DU' TO lt_fields.
APPEND 'DM45L,FL,DTU' TO lt_fields.
APPEND 'DM45T,L,DTU' TO lt_fields.
APPEND 'DM46S,FL,DTU' TO lt_fields.
LOOP AT lt_fields INTO lv_fields.
SPLIT lv_fields AT ',' INTO lv_table lv_field lv_rule_iter.
DO strlen( lv_field ) TIMES.
CASE lv_field(1).
WHEN 'F'.
lv_prefix = 'FST'.
WHEN 'L'.
lv_prefix = 'LST'.
ENDCASE.
lv_rule = lv_rule_iter.
DO strlen( lv_rule ) TIMES.
CASE lv_rule(1).
WHEN 'D'.
lv_suffix = 'DATE'.
lv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-date.
WHEN 'T'.
lv_suffix = 'TIME'.
lv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-time.
WHEN 'U'.
lv_suffix = 'USER'.
lv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-user.
ENDCASE.
ro_result->add(
iv_table = lv_table
iv_field = lv_prefix && lv_suffix
iv_fill_rule = lv_fill_rule ).
SHIFT lv_rule LEFT.
ENDDO.
SHIFT lv_field LEFT.
ENDDO.
ENDLOOP.
ENDMETHOD.
METHOD get_generic. METHOD get_generic.
CREATE OBJECT ro_generic CREATE OBJECT ro_generic
EXPORTING EXPORTING
io_field_rules = get_field_rules( )
is_item = ms_item is_item = ms_item
iv_language = mv_language. iv_language = mv_language.