mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
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:
parent
d35e3548d8
commit
6524d2fcee
|
@ -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,12 +369,82 @@ 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
|
||||||
is_item = ms_item
|
io_field_rules = get_field_rules( )
|
||||||
iv_language = mv_language.
|
is_item = ms_item
|
||||||
|
iv_language = mv_language.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user