mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 03:36:32 +08:00
parent
a4019f38fb
commit
1082abd88d
|
@ -12,13 +12,15 @@ CLASS zcl_abapgit_object_tabl DEFINITION
|
|||
"! get additional data like table authorization group
|
||||
"! @parameter iv_tabname | name of the table
|
||||
METHODS read_extras IMPORTING iv_tabname TYPE ddobjname
|
||||
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
"! 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 zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
"! Delete additional data
|
||||
"! @parameter iv_tabname | name of the table
|
||||
|
@ -478,6 +480,8 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
|||
|
||||
SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_tabname.
|
||||
|
||||
rs_tabl_extras-abap_language_version = get_abap_language_version( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -596,12 +600,24 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
|||
|
||||
METHOD update_extras.
|
||||
|
||||
DATA lv_abap_language_version TYPE uccheck.
|
||||
|
||||
IF is_tabl_extras-tddat IS INITIAL.
|
||||
delete_extras( iv_tabname ).
|
||||
ELSE.
|
||||
MODIFY tddat FROM is_tabl_extras-tddat.
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd02v
|
||||
TRY.
|
||||
lv_abap_language_version = is_tabl_extras-abap_language_version.
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
|
||||
|
||||
UPDATE ('DD02L') SET abap_language_version = lv_abap_language_version WHERE tabname = iv_tabname.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,8 @@ INTERFACE zif_abapgit_object_tabl PUBLIC.
|
|||
TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.
|
||||
|
||||
TYPES: BEGIN OF ty_tabl_extras,
|
||||
tddat TYPE tddat,
|
||||
tddat TYPE tddat,
|
||||
abap_language_version TYPE uccheck,
|
||||
END OF ty_tabl_extras.
|
||||
|
||||
TYPES: BEGIN OF ty_internal,
|
||||
|
|
|
@ -525,7 +525,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
<lg_abap_language_version> = get_abap_language_version( ).
|
||||
ENDIF.
|
||||
|
||||
APPEND 'AS4USER' TO lt_clr_comps.
|
||||
|
|
|
@ -25,6 +25,12 @@ CLASS zcl_abapgit_object_doma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
TYPES:
|
||||
ty_dd07_texts TYPE STANDARD TABLE OF ty_dd07_text .
|
||||
|
||||
" Fields that are not part of dd01v
|
||||
TYPES:
|
||||
BEGIN OF ty_extra,
|
||||
abap_language_version TYPE c LENGTH 1,
|
||||
END OF ty_extra.
|
||||
|
||||
CONSTANTS c_longtext_id_doma TYPE dokil-id VALUE 'DO' ##NO_TEXT.
|
||||
|
||||
METHODS serialize_texts
|
||||
|
@ -338,6 +344,7 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
DATA: lv_name TYPE ddobjname,
|
||||
lv_done TYPE abap_bool,
|
||||
ls_dd01v TYPE dd01v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
|
||||
FIELD-SYMBOLS <ls_dd07v> TYPE dd07v.
|
||||
|
@ -385,6 +392,17 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd01v
|
||||
io_xml->read( EXPORTING iv_name = 'DD01L_EXTRA'
|
||||
CHANGING cg_data = ls_extra ).
|
||||
|
||||
TRY.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
|
||||
UPDATE ('DD01L') SET abap_language_version = ls_extra-abap_language_version WHERE domname = lv_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
deserialize_texts(
|
||||
ii_xml = io_xml
|
||||
|
@ -463,6 +481,7 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
DATA: lv_name TYPE ddobjname,
|
||||
lv_state TYPE ddgotstate,
|
||||
ls_dd01v TYPE dd01v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lv_masklen TYPE c LENGTH 4,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
|
||||
|
@ -521,6 +540,11 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'DD07V_TAB'
|
||||
ig_data = lt_dd07v ).
|
||||
|
||||
ls_extra-abap_language_version = get_abap_language_version( ).
|
||||
|
||||
io_xml->add( iv_name = 'DD01L_EXTRA'
|
||||
ig_data = ls_extra ).
|
||||
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
serialize_texts(
|
||||
ii_xml = io_xml
|
||||
|
|
|
@ -303,8 +303,9 @@ CLASS zcl_abapgit_object_dtdc IMPLEMENTATION.
|
|||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<ls_dynamic_cache> TYPE any,
|
||||
<lv_source> TYPE data.
|
||||
<lv_abap_language_version> TYPE uccheck,
|
||||
<ls_dynamic_cache> TYPE any,
|
||||
<lv_source> TYPE data.
|
||||
|
||||
ASSIGN mr_dynamic_cache->* TO <ls_dynamic_cache>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
@ -364,6 +365,17 @@ CLASS zcl_abapgit_object_dtdc IMPLEMENTATION.
|
|||
|
||||
CALL METHOD li_wb_object_operator->('IF_WB_OBJECT_OPERATOR~ACTIVATE').
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGUAGE_VERSION' OF STRUCTURE <ls_dynamic_cache>
|
||||
TO <lv_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lv_abap_language_version> ).
|
||||
|
||||
TRY.
|
||||
UPDATE ('DDDTDC_SOURCE') SET abap_language_version = <lv_abap_language_version> WHERE dtdc_name = ms_item-obj_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
|
@ -446,8 +458,9 @@ CLASS zcl_abapgit_object_dtdc IMPLEMENTATION.
|
|||
lv_source TYPE string.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<ls_dynamic_cache> TYPE any,
|
||||
<lv_source> TYPE string.
|
||||
<lv_abap_language_version> TYPE uccheck,
|
||||
<ls_dynamic_cache> TYPE any,
|
||||
<lv_source> TYPE string.
|
||||
|
||||
ASSIGN mr_dynamic_cache->* TO <ls_dynamic_cache>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
@ -474,6 +487,11 @@ CLASS zcl_abapgit_object_dtdc IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGUAGE_VERSION' OF STRUCTURE <ls_dynamic_cache> TO <lv_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
<lv_abap_language_version> = get_abap_language_version( ).
|
||||
ENDIF.
|
||||
|
||||
io_xml->add(
|
||||
iv_name = 'DTDC'
|
||||
ig_data = <ls_dynamic_cache> ).
|
||||
|
|
|
@ -17,6 +17,12 @@ CLASS zcl_abapgit_object_dtel DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
TYPES:
|
||||
ty_dd04_texts TYPE STANDARD TABLE OF ty_dd04_text .
|
||||
|
||||
" Fields that are not part of dd04v
|
||||
TYPES:
|
||||
BEGIN OF ty_extra,
|
||||
abap_language_version TYPE uccheck,
|
||||
END OF ty_extra.
|
||||
|
||||
CONSTANTS c_longtext_id_dtel TYPE dokil-id VALUE 'DE' ##NO_TEXT.
|
||||
CONSTANTS c_longtext_id_dtel_suppl TYPE dokil-id VALUE 'DZ' ##NO_TEXT.
|
||||
|
||||
|
@ -182,9 +188,9 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
|
|||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: ls_dd04v TYPE dd04v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lv_name TYPE ddobjname.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD04V'
|
||||
CHANGING cg_data = ls_dd04v ).
|
||||
|
||||
|
@ -208,6 +214,17 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd04v
|
||||
io_xml->read( EXPORTING iv_name = 'DD04L_EXTRA'
|
||||
CHANGING cg_data = ls_extra ).
|
||||
|
||||
TRY.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
|
||||
UPDATE ('DD04L') SET abap_language_version = ls_extra-abap_language_version WHERE rollname = lv_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
deserialize_texts(
|
||||
ii_xml = io_xml
|
||||
|
@ -300,6 +317,7 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
|
|||
* done directly from here
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_extra TYPE ty_extra,
|
||||
ls_dd04v TYPE dd04v.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
@ -348,6 +366,11 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'DD04V'
|
||||
ig_data = ls_dd04v ).
|
||||
|
||||
ls_extra-abap_language_version = get_abap_language_version( ).
|
||||
|
||||
io_xml->add( iv_name = 'DD04L_EXTRA'
|
||||
ig_data = ls_extra ).
|
||||
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
serialize_texts( io_xml ).
|
||||
ENDIF.
|
||||
|
|
|
@ -10,6 +10,13 @@ CLASS zcl_abapgit_object_enqu DEFINITION
|
|||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES: ty_dd27p TYPE STANDARD TABLE OF dd27p WITH DEFAULT KEY.
|
||||
|
||||
" Fields that are not part of dd25v
|
||||
TYPES:
|
||||
BEGIN OF ty_extra,
|
||||
abap_language_version TYPE uccheck,
|
||||
END OF ty_extra.
|
||||
|
||||
METHODS _clear_dd27p_fields CHANGING ct_dd27p TYPE ty_dd27p.
|
||||
|
||||
ENDCLASS.
|
||||
|
@ -48,10 +55,10 @@ CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
|
|||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd25v TYPE dd25v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lt_dd26e TYPE TABLE OF dd26e,
|
||||
lt_dd27p TYPE ty_dd27p.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD25V'
|
||||
CHANGING cg_data = ls_dd25v ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD26E_TABLE'
|
||||
|
@ -82,6 +89,17 @@ CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd25v
|
||||
io_xml->read( EXPORTING iv_name = 'DD25L_EXTRA'
|
||||
CHANGING cg_data = ls_extra ).
|
||||
|
||||
TRY.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
|
||||
UPDATE ('DD25L') SET abap_language_version = ls_extra-abap_language_version WHERE viewname = lv_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -150,6 +168,7 @@ CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
|
|||
DATA: lv_name TYPE ddobjname,
|
||||
lv_state TYPE ddgotstate,
|
||||
ls_dd25v TYPE dd25v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lt_dd26e TYPE TABLE OF dd26e,
|
||||
lt_dd27p TYPE ty_dd27p.
|
||||
|
||||
|
@ -192,6 +211,11 @@ CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
|
|||
io_xml->add( ig_data = lt_dd27p
|
||||
iv_name = 'DD27P_TABLE' ).
|
||||
|
||||
ls_extra-abap_language_version = get_abap_language_version( ).
|
||||
|
||||
io_xml->add( iv_name = 'DD25L_EXTRA'
|
||||
ig_data = ls_extra ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,13 @@ CLASS zcl_abapgit_object_ttyp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
INTERFACES zif_abapgit_object.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
" Fields that are not part of dd40v
|
||||
TYPES:
|
||||
BEGIN OF ty_extra,
|
||||
abap_language_version TYPE uccheck,
|
||||
END OF ty_extra.
|
||||
|
||||
CONSTANTS c_longtext_id_ttyp TYPE dokil-id VALUE 'TT'.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -41,6 +48,7 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION.
|
|||
lt_dd42v TYPE dd42v_tab,
|
||||
lt_dd43v TYPE dd43v_tab,
|
||||
ls_dd40v TYPE dd40v,
|
||||
ls_extra TYPE ty_extra,
|
||||
lv_msg TYPE string.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD40V'
|
||||
|
@ -91,6 +99,17 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( lv_msg ).
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd40v
|
||||
io_xml->read( EXPORTING iv_name = 'DD40L_EXTRA'
|
||||
CHANGING cg_data = ls_extra ).
|
||||
|
||||
TRY.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
|
||||
UPDATE ('DD40L') SET abap_language_version = ls_extra-abap_language_version WHERE typename = lv_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
deserialize_longtexts( ii_xml = io_xml
|
||||
iv_longtext_id = c_longtext_id_ttyp ).
|
||||
|
||||
|
@ -164,9 +183,9 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION.
|
|||
lv_state TYPE ddgotstate,
|
||||
lt_dd42v TYPE dd42v_tab,
|
||||
lt_dd43v TYPE dd43v_tab,
|
||||
ls_extra TYPE ty_extra,
|
||||
ls_dd40v TYPE dd40v.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'DDIF_TTYP_GET'
|
||||
|
@ -207,6 +226,11 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'DD43V'
|
||||
ig_data = lt_dd43v ).
|
||||
|
||||
ls_extra-abap_language_version = get_abap_language_version( ).
|
||||
|
||||
io_xml->add( iv_name = 'DD40L_EXTRA'
|
||||
ig_data = ls_extra ).
|
||||
|
||||
serialize_longtexts( ii_xml = io_xml
|
||||
iv_longtext_id = c_longtext_id_ttyp ).
|
||||
|
||||
|
|
|
@ -9,7 +9,9 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
IMPORTING
|
||||
iv_name TYPE ddobjname
|
||||
RETURNING
|
||||
VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
|
||||
VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
"! Update additional data
|
||||
"! @parameter iv_name | name of the table
|
||||
|
@ -182,6 +184,16 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
|||
|
||||
SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_name.
|
||||
|
||||
" Fields that are not part of dd25v
|
||||
TRY.
|
||||
SELECT SINGLE abap_language_version FROM ('DD25L') INTO CORRESPONDING FIELDS OF rs_tabl_extras
|
||||
WHERE viewname = iv_name AND as4local = 'A' AND as4vers = '0000'.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = rs_tabl_extras-abap_language_version ).
|
||||
ENDIF.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -285,6 +297,8 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
|||
|
||||
METHOD update_extras.
|
||||
|
||||
DATA lv_abap_language_version TYPE uccheck.
|
||||
|
||||
IF is_tabl_extras-tddat IS INITIAL.
|
||||
delete_extras(
|
||||
iv_name = iv_name
|
||||
|
@ -297,6 +311,16 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
|||
iv_transport = iv_transport ).
|
||||
ENDIF.
|
||||
|
||||
" Fields that are not part of dd25v
|
||||
TRY.
|
||||
lv_abap_language_version = is_tabl_extras-abap_language_version.
|
||||
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
|
||||
|
||||
UPDATE ('DD25L') SET abap_language_version = lv_abap_language_version WHERE viewname = iv_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -361,57 +385,62 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
|||
|
||||
lv_name = ms_item-obj_name. " type conversion
|
||||
|
||||
LOOP AT lt_dd27p ASSIGNING <ls_dd27p>.
|
||||
<ls_dd27p>-objpos = sy-tabix.
|
||||
<ls_dd27p>-viewname = lv_name.
|
||||
" rollname seems to be mandatory in the API, but is typically not defined in the VIEW
|
||||
SELECT SINGLE rollname FROM dd03l INTO <ls_dd27p>-rollname
|
||||
WHERE tabname = <ls_dd27p>-tabname
|
||||
AND fieldname = <ls_dd27p>-fieldname.
|
||||
IF <ls_dd27p>-rollnamevi IS INITIAL.
|
||||
<ls_dd27p>-rollnamevi = <ls_dd27p>-rollname.
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic.
|
||||
|
||||
LOOP AT lt_dd27p ASSIGNING <ls_dd27p>.
|
||||
<ls_dd27p>-objpos = sy-tabix.
|
||||
<ls_dd27p>-viewname = lv_name.
|
||||
" rollname seems to be mandatory in the API, but is typically not defined in the VIEW
|
||||
SELECT SINGLE rollname FROM dd03l INTO <ls_dd27p>-rollname
|
||||
WHERE tabname = <ls_dd27p>-tabname
|
||||
AND fieldname = <ls_dd27p>-fieldname.
|
||||
IF <ls_dd27p>-rollnamevi IS INITIAL.
|
||||
<ls_dd27p>-rollnamevi = <ls_dd27p>-rollname.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
corr_insert( iv_package = iv_package
|
||||
ig_object_class = 'DICT' ).
|
||||
|
||||
CALL FUNCTION 'DDIF_VIEW_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd25v_wa = ls_dd25v
|
||||
dd09l_wa = ls_dd09l
|
||||
TABLES
|
||||
dd26v_tab = lt_dd26v
|
||||
dd27p_tab = lt_dd27p
|
||||
dd28j_tab = lt_dd28j
|
||||
dd28v_tab = lt_dd28v
|
||||
EXCEPTIONS
|
||||
view_not_found = 1
|
||||
name_inconsistent = 2
|
||||
view_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
corr_insert( iv_package = iv_package
|
||||
ig_object_class = 'DICT' ).
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
deserialize_texts(
|
||||
ii_xml = io_xml
|
||||
is_dd25v = ls_dd25v ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'DDIF_VIEW_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd25v_wa = ls_dd25v
|
||||
dd09l_wa = ls_dd09l
|
||||
TABLES
|
||||
dd26v_tab = lt_dd26v
|
||||
dd27p_tab = lt_dd27p
|
||||
dd28j_tab = lt_dd28j
|
||||
dd28v_tab = lt_dd28v
|
||||
EXCEPTIONS
|
||||
view_not_found = 1
|
||||
name_inconsistent = 2
|
||||
view_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
deserialize_longtexts( ii_xml = io_xml
|
||||
iv_longtext_id = c_longtext_id_view ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ELSE.
|
||||
" Late update after activation because activation removes ABAP Language Version (in lower releases?)
|
||||
update_extras( iv_name = lv_name
|
||||
iv_transport = iv_transport
|
||||
is_tabl_extras = ls_extras ).
|
||||
ENDIF.
|
||||
|
||||
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
|
||||
deserialize_texts(
|
||||
ii_xml = io_xml
|
||||
is_dd25v = ls_dd25v ).
|
||||
ENDIF.
|
||||
|
||||
deserialize_longtexts( ii_xml = io_xml
|
||||
iv_longtext_id = c_longtext_id_view ).
|
||||
|
||||
update_extras( iv_name = lv_name
|
||||
iv_transport = iv_transport
|
||||
is_tabl_extras = ls_extras ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -454,6 +483,7 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,11 @@ CLASS zcl_abapgit_object_xslt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
INTERFACES zif_abapgit_object.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_extra,
|
||||
abap_language_version TYPE uccheck,
|
||||
END OF ty_extra.
|
||||
|
||||
METHODS:
|
||||
get
|
||||
RETURNING VALUE(ro_xslt) TYPE REF TO cl_o2_api_xsltdesc
|
||||
|
@ -96,6 +101,7 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
|
|||
|
||||
DATA: lv_source TYPE string,
|
||||
lo_xslt TYPE REF TO cl_o2_api_xsltdesc,
|
||||
ls_extra TYPE ty_extra,
|
||||
lv_len TYPE i,
|
||||
ls_attributes TYPE o2xsltattr.
|
||||
|
||||
|
@ -160,6 +166,17 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |Error from XSLT save, { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'EXTRA'
|
||||
CHANGING cg_data = ls_extra ).
|
||||
|
||||
TRY.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
|
||||
UPDATE ('O2XSLTDESC') SET abap_language_version = ls_extra-abap_language_version
|
||||
WHERE relid = 'TR' AND xsltdesc = ms_item-obj_name.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
lo_xslt->set_changeable( abap_false ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
@ -228,10 +245,10 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
|
|||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lo_xslt TYPE REF TO cl_o2_api_xsltdesc,
|
||||
ls_extra TYPE ty_extra,
|
||||
lv_source TYPE string,
|
||||
ls_attributes TYPE o2xsltattr.
|
||||
|
||||
|
||||
lo_xslt = get( ).
|
||||
|
||||
ls_attributes = lo_xslt->get_attributes( ).
|
||||
|
@ -252,5 +269,17 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
|
|||
iv_ext = 'xml'
|
||||
iv_string = lv_source ).
|
||||
|
||||
TRY.
|
||||
SELECT SINGLE abap_language_version FROM ('O2XSLTDESC') INTO CORRESPONDING FIELDS OF ls_extra
|
||||
WHERE relid = 'TR' AND xsltdesc = ms_item-obj_name AND state = 'A'.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = ls_extra-abap_language_version ).
|
||||
ENDIF.
|
||||
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
io_xml->add( iv_name = 'EXTRA'
|
||||
ig_data = ls_extra ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -89,6 +89,11 @@ CLASS zcl_abapgit_objects_super DEFINITION
|
|||
!iv_no_ask_delete_append TYPE abap_bool DEFAULT abap_false
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS get_abap_language_version
|
||||
RETURNING
|
||||
VALUE(rv_abap_language_version) TYPE uccheck
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS set_abap_language_version
|
||||
CHANGING
|
||||
!cv_abap_language_version TYPE uccheck
|
||||
|
@ -293,6 +298,26 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_abap_language_version.
|
||||
|
||||
" This is limited to DDIC objects
|
||||
TRY.
|
||||
CALL METHOD ('CL_DD_ABAP_LANGUAGE_VERSION')=>get_abap_language_version
|
||||
EXPORTING
|
||||
iv_object_type = ms_item-obj_type
|
||||
iv_object_name = ms_item-obj_name
|
||||
RECEIVING
|
||||
rv_abap_language_version = rv_abap_language_version.
|
||||
CATCH cx_root.
|
||||
" does not exist in lower releases
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = rv_abap_language_version ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_accessed_files.
|
||||
rt_files = mo_files->get_accessed_files( ).
|
||||
ENDMETHOD.
|
||||
|
|
Loading…
Reference in New Issue
Block a user