mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 20:32:26 +08:00
Merge pull request #518 from larshp/issue511
deserialization sequence changed #511
This commit is contained in:
commit
74d6da559b
|
@ -51,8 +51,9 @@ TYPES: ty_files_item_tt TYPE STANDARD TABLE OF ty_file_item WITH DEFAULT KEY.
|
||||||
TYPES: BEGIN OF ty_metadata,
|
TYPES: BEGIN OF ty_metadata,
|
||||||
class TYPE string,
|
class TYPE string,
|
||||||
version TYPE string,
|
version TYPE string,
|
||||||
late_deser TYPE string,
|
late_deser TYPE abap_bool,
|
||||||
delete_tadir TYPE abap_bool,
|
delete_tadir TYPE abap_bool,
|
||||||
|
ddic TYPE abap_bool,
|
||||||
END OF ty_metadata.
|
END OF ty_metadata.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_web_asset,
|
TYPES: BEGIN OF ty_web_asset,
|
||||||
|
|
|
@ -80,6 +80,7 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -73,6 +73,7 @@ CLASS lcl_object_dtel IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -53,6 +53,7 @@ CLASS lcl_object_enqu IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -39,6 +39,7 @@ CLASS lcl_object_sfbf IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -56,6 +56,7 @@ CLASS lcl_object_sfbs IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -39,6 +39,7 @@ CLASS lcl_object_sfsw IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -50,6 +50,7 @@ CLASS lcl_object_shlp IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -74,6 +74,7 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -50,6 +50,7 @@ CLASS lcl_object_ttyp IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -60,6 +60,7 @@ CLASS lcl_object_view IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-ddic = abap_true.
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
||||||
METHOD lif_object~exists.
|
METHOD lif_object~exists.
|
||||||
|
|
|
@ -20,6 +20,7 @@ CLASS lcl_objects_activation DEFINITION FINAL.
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS activate
|
CLASS-METHODS activate
|
||||||
|
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS clear.
|
CLASS-METHODS clear.
|
||||||
|
@ -29,8 +30,7 @@ CLASS lcl_objects_activation DEFINITION FINAL.
|
||||||
IMPORTING iv_obj_name TYPE trobj_name
|
IMPORTING iv_obj_name TYPE trobj_name
|
||||||
CHANGING ct_objects TYPE dwinactiv_tab.
|
CHANGING ct_objects TYPE dwinactiv_tab.
|
||||||
|
|
||||||
CLASS-DATA: gt_ddic TYPE TABLE OF dwinactiv,
|
CLASS-DATA: gt_objects TYPE TABLE OF dwinactiv.
|
||||||
gt_programs TYPE TABLE OF dwinactiv.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_objects_activation DEFINITION
|
ENDCLASS. "lcl_objects_activation DEFINITION
|
||||||
|
|
||||||
|
@ -47,38 +47,18 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
||||||
ENDMETHOD. "add_item
|
ENDMETHOD. "add_item
|
||||||
|
|
||||||
METHOD clear.
|
METHOD clear.
|
||||||
CLEAR: gt_ddic,
|
CLEAR gt_objects.
|
||||||
gt_programs.
|
|
||||||
ENDMETHOD. "clear
|
ENDMETHOD. "clear
|
||||||
|
|
||||||
METHOD activate.
|
METHOD activate.
|
||||||
|
|
||||||
* ddic
|
IF NOT gt_objects IS INITIAL.
|
||||||
IF NOT gt_ddic IS INITIAL.
|
|
||||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
activate_ddic_objects = abap_true
|
activate_ddic_objects = iv_ddic
|
||||||
with_popup = abap_true
|
with_popup = abap_true
|
||||||
TABLES
|
TABLES
|
||||||
objects = gt_ddic
|
objects = gt_objects
|
||||||
EXCEPTIONS
|
|
||||||
excecution_error = 1
|
|
||||||
cancelled = 2
|
|
||||||
insert_into_corr_error = 3
|
|
||||||
OTHERS = 4.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
lcx_exception=>raise( 'error from RS_WORKING_OBJECTS_ACTIVATE' ).
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
* programs
|
|
||||||
IF NOT gt_programs IS INITIAL.
|
|
||||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
|
||||||
EXPORTING
|
|
||||||
activate_ddic_objects = abap_false
|
|
||||||
with_popup = abap_true
|
|
||||||
TABLES
|
|
||||||
objects = gt_programs
|
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
excecution_error = 1
|
excecution_error = 1
|
||||||
cancelled = 2
|
cancelled = 2
|
||||||
|
@ -139,9 +119,9 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
||||||
|
|
||||||
lv_obj_name = iv_name.
|
lv_obj_name = iv_name.
|
||||||
|
|
||||||
* todo, refactoring
|
|
||||||
CASE iv_type.
|
CASE iv_type.
|
||||||
WHEN 'CLAS' OR 'WDYN'.
|
WHEN 'CLAS' OR 'WDYN'.
|
||||||
|
* todo, move this to the object type include instead
|
||||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
obj_name = lv_obj_name
|
obj_name = lv_obj_name
|
||||||
|
@ -160,22 +140,11 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
||||||
CHANGING ct_objects = lt_objects ).
|
CHANGING ct_objects = lt_objects ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
APPEND LINES OF lt_objects TO gt_programs.
|
APPEND LINES OF lt_objects TO gt_objects.
|
||||||
WHEN 'DOMA' OR 'DTEL' OR 'TABL' OR 'INDX' OR 'TTYP'
|
|
||||||
OR 'VIEW' OR 'SHLP' OR 'ENQU'
|
|
||||||
OR 'SFSW' OR 'SFBF' OR 'SFBS'.
|
|
||||||
* todo also insert_into_working_area?
|
|
||||||
APPEND INITIAL LINE TO gt_ddic ASSIGNING <ls_object>.
|
|
||||||
<ls_object>-object = iv_type.
|
|
||||||
<ls_object>-obj_name = lv_obj_name.
|
|
||||||
WHEN 'REPS' OR 'DYNP' OR 'CUAD' OR 'REPT' OR 'INTF'
|
|
||||||
OR 'FUNC' OR 'ENHO' OR 'TYPE' OR 'XSLT' OR 'WEBI'.
|
|
||||||
* these seem to go into the workarea automatically
|
|
||||||
APPEND INITIAL LINE TO gt_programs ASSIGNING <ls_object>.
|
|
||||||
<ls_object>-object = iv_type.
|
|
||||||
<ls_object>-obj_name = lv_obj_name.
|
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
lcx_exception=>raise( 'activate, unknown type' ).
|
APPEND INITIAL LINE TO gt_objects ASSIGNING <ls_object>.
|
||||||
|
<ls_object>-object = iv_type.
|
||||||
|
<ls_object>-obj_name = lv_obj_name.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD. "activate
|
ENDMETHOD. "activate
|
||||||
|
@ -1656,11 +1625,14 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
TYPES: ty_types_tt TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY.
|
TYPES: ty_types_tt TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_late,
|
TYPES: BEGIN OF ty_deserialization,
|
||||||
obj TYPE REF TO lif_object,
|
obj TYPE REF TO lif_object,
|
||||||
xml TYPE REF TO lcl_xml_input,
|
xml TYPE REF TO lcl_xml_input,
|
||||||
package TYPE devclass,
|
package TYPE devclass,
|
||||||
END OF ty_late.
|
item TYPE ty_item,
|
||||||
|
END OF ty_deserialization.
|
||||||
|
|
||||||
|
TYPES: ty_deserialization_tt TYPE STANDARD TABLE OF ty_deserialization WITH DEFAULT KEY.
|
||||||
|
|
||||||
CLASS-METHODS serialize
|
CLASS-METHODS serialize
|
||||||
IMPORTING is_item TYPE ty_item
|
IMPORTING is_item TYPE ty_item
|
||||||
|
@ -1705,10 +1677,6 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
CLASS-METHODS supported_list
|
CLASS-METHODS supported_list
|
||||||
RETURNING VALUE(rt_types) TYPE ty_types_tt.
|
RETURNING VALUE(rt_types) TYPE ty_types_tt.
|
||||||
|
|
||||||
* CLASS-METHODS is_language_installed
|
|
||||||
* IMPORTING iv_language TYPE langu
|
|
||||||
* RETURNING VALUE(rv_yes) TYPE abap_bool.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
CLASS-DATA: mv_langs_installed TYPE scplangs.
|
CLASS-DATA: mv_langs_installed TYPE scplangs.
|
||||||
|
@ -1771,4 +1739,11 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
RAISING
|
RAISING
|
||||||
lcx_exception.
|
lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS deserialize_objects
|
||||||
|
IMPORTING it_objects TYPE ty_deserialization_tt
|
||||||
|
iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||||
|
iv_descr TYPE string
|
||||||
|
CHANGING ct_files TYPE ty_file_signatures_tt
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object DEFINITION
|
ENDCLASS. "lcl_object DEFINITION
|
|
@ -207,18 +207,6 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "supported_list
|
ENDMETHOD. "supported_list
|
||||||
|
|
||||||
* METHOD is_language_installed.
|
|
||||||
*
|
|
||||||
* IF mv_langs_installed IS INITIAL.
|
|
||||||
* CALL FUNCTION 'RSAQ_READ_INSTALLED_LANGUAGES'
|
|
||||||
* IMPORTING
|
|
||||||
* inst_languages = mv_langs_installed.
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* rv_yes = boolc( mv_langs_installed CA iv_language ).
|
|
||||||
*
|
|
||||||
* ENDMETHOD. "is_language_installed
|
|
||||||
|
|
||||||
METHOD exists.
|
METHOD exists.
|
||||||
|
|
||||||
DATA: li_obj TYPE REF TO lif_object.
|
DATA: li_obj TYPE REF TO lif_object.
|
||||||
|
@ -600,10 +588,12 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
lo_files TYPE REF TO lcl_objects_files,
|
lo_files TYPE REF TO lcl_objects_files,
|
||||||
lo_xml TYPE REF TO lcl_xml_input,
|
lo_xml TYPE REF TO lcl_xml_input,
|
||||||
lt_results TYPE ty_results_tt,
|
lt_results TYPE ty_results_tt,
|
||||||
lt_late TYPE TABLE OF ty_late.
|
lt_ddic TYPE TABLE OF ty_deserialization,
|
||||||
|
lt_rest TYPE TABLE OF ty_deserialization,
|
||||||
|
lt_late TYPE TABLE OF ty_deserialization.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_result> TYPE ty_result,
|
FIELD-SYMBOLS: <ls_result> TYPE ty_result,
|
||||||
<ls_late> LIKE LINE OF lt_late.
|
<ls_deser> LIKE LINE OF lt_late.
|
||||||
|
|
||||||
|
|
||||||
lcl_objects_activation=>clear( ).
|
lcl_objects_activation=>clear( ).
|
||||||
|
@ -665,27 +655,31 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
li_obj->mo_files = lo_files.
|
li_obj->mo_files = lo_files.
|
||||||
|
|
||||||
IF li_obj->get_metadata( )-late_deser = abap_true.
|
IF li_obj->get_metadata( )-late_deser = abap_true.
|
||||||
APPEND INITIAL LINE TO lt_late ASSIGNING <ls_late>.
|
APPEND INITIAL LINE TO lt_late ASSIGNING <ls_deser>.
|
||||||
<ls_late>-obj = li_obj.
|
ELSEIF li_obj->get_metadata( )-ddic = abap_true.
|
||||||
<ls_late>-xml = lo_xml.
|
APPEND INITIAL LINE TO lt_ddic ASSIGNING <ls_deser>.
|
||||||
<ls_late>-package = lv_package.
|
ELSE.
|
||||||
CONTINUE.
|
APPEND INITIAL LINE TO lt_rest ASSIGNING <ls_deser>.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
<ls_deser>-item = ls_item.
|
||||||
|
<ls_deser>-obj = li_obj.
|
||||||
|
<ls_deser>-xml = lo_xml.
|
||||||
|
<ls_deser>-package = lv_package.
|
||||||
|
|
||||||
|
|
||||||
li_obj->deserialize( iv_package = lv_package
|
|
||||||
io_xml = lo_xml ).
|
|
||||||
|
|
||||||
" Remember accessed files
|
|
||||||
APPEND LINES OF lo_files->get_accessed_files( ) TO rt_accessed_files.
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
lcl_objects_activation=>activate( ).
|
deserialize_objects( EXPORTING it_objects = lt_ddic
|
||||||
|
iv_ddic = abap_true
|
||||||
|
iv_descr = 'DDIC'
|
||||||
|
CHANGING ct_files = rt_accessed_files ).
|
||||||
|
|
||||||
LOOP AT lt_late ASSIGNING <ls_late>.
|
deserialize_objects( EXPORTING it_objects = lt_rest
|
||||||
<ls_late>-obj->deserialize( iv_package = <ls_late>-package
|
iv_descr = 'Objects'
|
||||||
io_xml = <ls_late>-xml ).
|
CHANGING ct_files = rt_accessed_files ).
|
||||||
ENDLOOP.
|
|
||||||
|
deserialize_objects( EXPORTING it_objects = lt_late
|
||||||
|
iv_descr = 'Late'
|
||||||
|
CHANGING ct_files = rt_accessed_files ).
|
||||||
|
|
||||||
update_package_tree( io_repo->get_package( ) ).
|
update_package_tree( io_repo->get_package( ) ).
|
||||||
|
|
||||||
|
@ -694,6 +688,27 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
METHOD deserialize_objects.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_obj> LIKE LINE OF it_objects.
|
||||||
|
|
||||||
|
|
||||||
|
lcl_objects_activation=>clear( ).
|
||||||
|
|
||||||
|
LOOP AT it_objects ASSIGNING <ls_obj>.
|
||||||
|
lcl_progress=>show( iv_key = |Deserialize { iv_descr }|
|
||||||
|
iv_current = sy-tabix
|
||||||
|
iv_total = lines( it_objects )
|
||||||
|
iv_text = <ls_obj>-item-obj_name ) ##NO_TEXT.
|
||||||
|
|
||||||
|
<ls_obj>-obj->deserialize( iv_package = <ls_obj>-package
|
||||||
|
io_xml = <ls_obj>-xml ).
|
||||||
|
APPEND LINES OF <ls_obj>-obj->mo_files->get_accessed_files( ) TO ct_files.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
lcl_objects_activation=>activate( iv_ddic ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD compare_remote_to_local.
|
METHOD compare_remote_to_local.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user