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