mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
add TABL authorization group handling (#3621)
* add TABL authorization group handling fixes #1328 test repo https://github.com/abapGit-tests/TABL-AuthorizationGroup.git Authorization Group (TDDAT) is handled with TABL and TOBJ now * fix linter errors Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
525634e42b
commit
395116e481
|
@ -11,6 +11,26 @@ CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
END OF ty_segment_definition.
|
||||
TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.
|
||||
|
||||
TYPES: BEGIN OF ty_tabl_extras,
|
||||
tddat TYPE tddat,
|
||||
END OF ty_tabl_extras.
|
||||
|
||||
"! get additional data like table authorization group
|
||||
"! @parameter iv_tabname | name of the table
|
||||
"! @parameter is_tabl_extras | additional table data
|
||||
METHODS read_extras IMPORTING iv_tabname TYPE ddobjname
|
||||
RETURNING VALUE(rs_tabl_extras) TYPE ty_tabl_extras.
|
||||
|
||||
"! Update additional data
|
||||
"! @parameter iv_tabname | name of the table
|
||||
"! @parameter is_tabl_extras | additional table data
|
||||
METHODS update_extras IMPORTING iv_tabname TYPE ddobjname
|
||||
is_tabl_extras TYPE ty_tabl_extras.
|
||||
|
||||
"! Delete additional data
|
||||
"! @parameter iv_tabname | name of the table
|
||||
METHODS delete_extras IMPORTING iv_tabname TYPE ddobjname.
|
||||
|
||||
"! Serialize IDoc Segment type/definition if exits
|
||||
"! @parameter io_xml | XML writer
|
||||
"! @raising zcx_abapgit_exception | Exceptions
|
||||
|
@ -39,8 +59,10 @@ CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
CONSTANTS c_longtext_id_tabl TYPE dokil-id VALUE 'TB' ##NO_TEXT.
|
||||
CONSTANTS:
|
||||
BEGIN OF c_s_dataname,
|
||||
segment_definition TYPE string VALUE 'SEGMENT_DEFINITION' ##NO_TEXT,
|
||||
END OF c_s_dataname .
|
||||
segment_definition TYPE string VALUE 'SEGMENT_DEFINITION',
|
||||
tabl_extras TYPE string VALUE 'TABL_EXTRAS',
|
||||
END OF c_s_dataname.
|
||||
|
||||
|
||||
METHODS clear_dd03p_fields
|
||||
CHANGING
|
||||
|
@ -60,7 +82,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear_dd03p_fields.
|
||||
|
@ -440,6 +462,8 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
|
||||
delete_longtexts( c_longtext_id_tabl ).
|
||||
|
||||
delete_extras( iv_tabname = lv_objname ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -461,7 +485,8 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
lt_dd35v TYPE TABLE OF dd35v,
|
||||
lt_dd36m TYPE dd36mttyp,
|
||||
ls_dd12v LIKE LINE OF lt_dd12v,
|
||||
lv_refs TYPE abap_bool.
|
||||
lv_refs TYPE abap_bool,
|
||||
ls_extras TYPE ty_tabl_extras.
|
||||
|
||||
FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p.
|
||||
|
||||
|
@ -579,6 +604,11 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
|
||||
deserialize_longtexts( io_xml ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = c_s_dataname-tabl_extras
|
||||
CHANGING cg_data = ls_extras ).
|
||||
update_extras( iv_tabname = lv_name
|
||||
is_tabl_extras = ls_extras ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -652,17 +682,18 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd02v TYPE dd02v,
|
||||
ls_dd09l TYPE dd09l,
|
||||
lt_dd03p TYPE ty_dd03p_tt,
|
||||
lt_dd05m TYPE TABLE OF dd05m,
|
||||
lt_dd08v TYPE TABLE OF dd08v,
|
||||
lt_dd12v TYPE dd12vtab,
|
||||
lt_dd17v TYPE dd17vtab,
|
||||
lt_dd35v TYPE TABLE OF dd35v,
|
||||
lv_index LIKE sy-index,
|
||||
lt_dd36m TYPE dd36mttyp.
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd02v TYPE dd02v,
|
||||
ls_dd09l TYPE dd09l,
|
||||
lt_dd03p TYPE ty_dd03p_tt,
|
||||
lt_dd05m TYPE TABLE OF dd05m,
|
||||
lt_dd08v TYPE TABLE OF dd08v,
|
||||
lt_dd12v TYPE dd12vtab,
|
||||
lt_dd17v TYPE dd17vtab,
|
||||
lt_dd35v TYPE TABLE OF dd35v,
|
||||
lv_index LIKE sy-index,
|
||||
lt_dd36m TYPE dd36mttyp,
|
||||
ls_extras TYPE ty_tabl_extras.
|
||||
|
||||
FIELD-SYMBOLS: <ls_dd12v> LIKE LINE OF lt_dd12v,
|
||||
<ls_dd05m> LIKE LINE OF lt_dd05m,
|
||||
|
@ -779,5 +810,34 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
|
||||
serialize_idoc_segment( io_xml ).
|
||||
|
||||
ls_extras = read_extras( iv_tabname = lv_name ).
|
||||
io_xml->add( iv_name = c_s_dataname-tabl_extras
|
||||
ig_data = ls_extras ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD delete_extras.
|
||||
|
||||
DELETE FROM tddat WHERE tabname = iv_tabname.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read_extras.
|
||||
|
||||
SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_tabname.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD update_extras.
|
||||
|
||||
IF is_tabl_extras-tddat IS INITIAL.
|
||||
delete_extras( iv_tabname = iv_tabname ).
|
||||
ELSE.
|
||||
MODIFY tddat FROM is_tabl_extras-tddat.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user