mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
VIEW: Add authorization group to serialize and deserialize (#6918)
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
2973cb4cba
commit
32f002893c
|
@ -3,6 +3,20 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES zif_abapgit_object.
|
INTERFACES zif_abapgit_object.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
"! get additional data like table authorization group
|
||||||
|
"! @parameter iv_name | name of the view
|
||||||
|
METHODS read_extras IMPORTING iv_name TYPE ddobjname
|
||||||
|
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||||
|
|
||||||
|
"! Update additional data
|
||||||
|
"! @parameter iv_name | name of the table
|
||||||
|
"! @parameter is_tabl_extras | additional view data
|
||||||
|
METHODS update_extras IMPORTING iv_name TYPE ddobjname
|
||||||
|
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||||
|
|
||||||
|
"! Delete additional data
|
||||||
|
"! @parameter iv_name | name of the view
|
||||||
|
METHODS delete_extras IMPORTING iv_name TYPE ddobjname.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES: ty_dd26v TYPE STANDARD TABLE OF dd26v
|
TYPES: ty_dd26v TYPE STANDARD TABLE OF dd26v
|
||||||
WITH NON-UNIQUE DEFAULT KEY,
|
WITH NON-UNIQUE DEFAULT KEY,
|
||||||
|
@ -31,6 +45,7 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
et_dd27p TYPE ty_dd27p
|
et_dd27p TYPE ty_dd27p
|
||||||
et_dd28j TYPE ty_dd28j
|
et_dd28j TYPE ty_dd28j
|
||||||
et_dd28v TYPE ty_dd28v
|
et_dd28v TYPE ty_dd28v
|
||||||
|
es_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception,
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
@ -51,7 +66,14 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD delete_extras.
|
||||||
|
|
||||||
|
DELETE FROM tddat WHERE tabname = iv_name.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD deserialize_texts.
|
METHOD deserialize_texts.
|
||||||
|
@ -108,6 +130,13 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD read_extras.
|
||||||
|
|
||||||
|
SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_name.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD read_view.
|
METHOD read_view.
|
||||||
|
|
||||||
DATA: lv_name TYPE ddobjname.
|
DATA: lv_name TYPE ddobjname.
|
||||||
|
@ -135,6 +164,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
es_extras = read_extras( lv_name ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,6 +235,17 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD update_extras.
|
||||||
|
|
||||||
|
IF is_tabl_extras-tddat IS INITIAL.
|
||||||
|
delete_extras( iv_name ).
|
||||||
|
ELSE.
|
||||||
|
MODIFY tddat FROM is_tabl_extras-tddat.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd25l INTO rv_user
|
SELECT SINGLE as4user FROM dd25l INTO rv_user
|
||||||
|
@ -219,11 +261,15 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~delete.
|
METHOD zif_abapgit_object~delete.
|
||||||
|
|
||||||
|
DATA lv_objname TYPE rsedd0-ddobjname.
|
||||||
|
|
||||||
IF zif_abapgit_object~exists( ) = abap_false.
|
IF zif_abapgit_object~exists( ) = abap_false.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lv_objname = ms_item-obj_name.
|
||||||
delete_ddic( 'V' ).
|
delete_ddic( 'V' ).
|
||||||
|
delete_extras( lv_objname ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -236,7 +282,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
lt_dd26v TYPE TABLE OF dd26v,
|
lt_dd26v TYPE TABLE OF dd26v,
|
||||||
lt_dd27p TYPE TABLE OF dd27p,
|
lt_dd27p TYPE TABLE OF dd27p,
|
||||||
lt_dd28j TYPE TABLE OF dd28j,
|
lt_dd28j TYPE TABLE OF dd28j,
|
||||||
lt_dd28v TYPE TABLE OF dd28v.
|
lt_dd28v TYPE TABLE OF dd28v,
|
||||||
|
ls_extras TYPE zif_abapgit_object_tabl=>ty_internal-extras.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
||||||
|
|
||||||
|
@ -252,6 +299,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
CHANGING cg_data = lt_dd28j ).
|
CHANGING cg_data = lt_dd28j ).
|
||||||
io_xml->read( EXPORTING iv_name = 'DD28V_TABLE'
|
io_xml->read( EXPORTING iv_name = 'DD28V_TABLE'
|
||||||
CHANGING cg_data = lt_dd28v ).
|
CHANGING cg_data = lt_dd28v ).
|
||||||
|
io_xml->read( EXPORTING iv_name = zif_abapgit_object_tabl=>c_s_dataname-tabl_extras
|
||||||
|
CHANGING cg_data = ls_extras ).
|
||||||
|
|
||||||
lv_name = ms_item-obj_name. " type conversion
|
lv_name = ms_item-obj_name. " type conversion
|
||||||
|
|
||||||
|
@ -300,6 +349,9 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
deserialize_longtexts( ii_xml = io_xml
|
deserialize_longtexts( ii_xml = io_xml
|
||||||
iv_longtext_id = c_longtext_id_view ).
|
iv_longtext_id = c_longtext_id_view ).
|
||||||
|
|
||||||
|
update_extras( iv_name = lv_name
|
||||||
|
is_tabl_extras = ls_extras ).
|
||||||
|
|
||||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -385,7 +437,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
lt_dd26v TYPE ty_dd26v,
|
lt_dd26v TYPE ty_dd26v,
|
||||||
lt_dd27p TYPE ty_dd27p,
|
lt_dd27p TYPE ty_dd27p,
|
||||||
lt_dd28j TYPE ty_dd28j,
|
lt_dd28j TYPE ty_dd28j,
|
||||||
lt_dd28v TYPE ty_dd28v.
|
lt_dd28v TYPE ty_dd28v,
|
||||||
|
ls_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
||||||
|
|
||||||
|
@ -399,7 +452,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
et_dd26v = lt_dd26v
|
et_dd26v = lt_dd26v
|
||||||
et_dd27p = lt_dd27p
|
et_dd27p = lt_dd27p
|
||||||
et_dd28j = lt_dd28j
|
et_dd28j = lt_dd28j
|
||||||
et_dd28v = lt_dd28v ).
|
et_dd28v = lt_dd28v
|
||||||
|
es_extras = ls_extras ).
|
||||||
|
|
||||||
IF ls_dd25v IS INITIAL OR lv_state <> 'A'.
|
IF ls_dd25v IS INITIAL OR lv_state <> 'A'.
|
||||||
RETURN.
|
RETURN.
|
||||||
|
@ -456,6 +510,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
||||||
iv_name = 'DD28J_TABLE' ).
|
iv_name = 'DD28J_TABLE' ).
|
||||||
io_xml->add( ig_data = lt_dd28v
|
io_xml->add( ig_data = lt_dd28v
|
||||||
iv_name = 'DD28V_TABLE' ).
|
iv_name = 'DD28V_TABLE' ).
|
||||||
|
io_xml->add( iv_name = zif_abapgit_object_tabl=>c_s_dataname-tabl_extras
|
||||||
|
ig_data = ls_extras ).
|
||||||
|
|
||||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||||
serialize_texts( io_xml ).
|
serialize_texts( io_xml ).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user