mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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,
|
||||
class TYPE string,
|
||||
version TYPE string,
|
||||
late_deser TYPE string,
|
||||
late_deser TYPE abap_bool,
|
||||
delete_tadir TYPE abap_bool,
|
||||
ddic TYPE abap_bool,
|
||||
END OF ty_metadata.
|
||||
|
||||
TYPES: BEGIN OF ty_web_asset,
|
||||
|
|
|
@ -80,6 +80,7 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -73,6 +73,7 @@ CLASS lcl_object_dtel IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -53,6 +53,7 @@ CLASS lcl_object_enqu IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -39,6 +39,7 @@ CLASS lcl_object_sfbf IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -56,6 +56,7 @@ CLASS lcl_object_sfbs IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -39,6 +39,7 @@ CLASS lcl_object_sfsw IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -50,6 +50,7 @@ CLASS lcl_object_shlp IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -74,6 +74,7 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -50,6 +50,7 @@ CLASS lcl_object_ttyp IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -60,6 +60,7 @@ CLASS lcl_object_view IMPLEMENTATION.
|
|||
|
||||
METHOD lif_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD. "lif_object~get_metadata
|
||||
|
||||
METHOD lif_object~exists.
|
||||
|
|
|
@ -20,6 +20,7 @@ CLASS lcl_objects_activation DEFINITION FINAL.
|
|||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS activate
|
||||
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS clear.
|
||||
|
@ -29,8 +30,7 @@ CLASS lcl_objects_activation DEFINITION FINAL.
|
|||
IMPORTING iv_obj_name TYPE trobj_name
|
||||
CHANGING ct_objects TYPE dwinactiv_tab.
|
||||
|
||||
CLASS-DATA: gt_ddic TYPE TABLE OF dwinactiv,
|
||||
gt_programs TYPE TABLE OF dwinactiv.
|
||||
CLASS-DATA: gt_objects TYPE TABLE OF dwinactiv.
|
||||
|
||||
ENDCLASS. "lcl_objects_activation DEFINITION
|
||||
|
||||
|
@ -47,38 +47,18 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
|||
ENDMETHOD. "add_item
|
||||
|
||||
METHOD clear.
|
||||
CLEAR: gt_ddic,
|
||||
gt_programs.
|
||||
CLEAR gt_objects.
|
||||
ENDMETHOD. "clear
|
||||
|
||||
METHOD activate.
|
||||
|
||||
* ddic
|
||||
IF NOT gt_ddic IS INITIAL.
|
||||
IF NOT gt_objects IS INITIAL.
|
||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||
EXPORTING
|
||||
activate_ddic_objects = abap_true
|
||||
activate_ddic_objects = iv_ddic
|
||||
with_popup = abap_true
|
||||
TABLES
|
||||
objects = gt_ddic
|
||||
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
|
||||
objects = gt_objects
|
||||
EXCEPTIONS
|
||||
excecution_error = 1
|
||||
cancelled = 2
|
||||
|
@ -139,9 +119,9 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
|||
|
||||
lv_obj_name = iv_name.
|
||||
|
||||
* todo, refactoring
|
||||
CASE iv_type.
|
||||
WHEN 'CLAS' OR 'WDYN'.
|
||||
* todo, move this to the object type include instead
|
||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||
EXPORTING
|
||||
obj_name = lv_obj_name
|
||||
|
@ -160,22 +140,11 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
|||
CHANGING ct_objects = lt_objects ).
|
||||
ENDIF.
|
||||
|
||||
APPEND LINES OF lt_objects TO gt_programs.
|
||||
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.
|
||||
APPEND LINES OF lt_objects TO gt_objects.
|
||||
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.
|
||||
|
||||
ENDMETHOD. "activate
|
||||
|
@ -1656,11 +1625,14 @@ CLASS lcl_objects DEFINITION FINAL.
|
|||
PUBLIC SECTION.
|
||||
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,
|
||||
xml TYPE REF TO lcl_xml_input,
|
||||
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
|
||||
IMPORTING is_item TYPE ty_item
|
||||
|
@ -1705,10 +1677,6 @@ CLASS lcl_objects DEFINITION FINAL.
|
|||
CLASS-METHODS supported_list
|
||||
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.
|
||||
|
||||
CLASS-DATA: mv_langs_installed TYPE scplangs.
|
||||
|
@ -1771,4 +1739,11 @@ CLASS lcl_objects DEFINITION FINAL.
|
|||
RAISING
|
||||
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
|
|
@ -207,18 +207,6 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
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_xml TYPE REF TO lcl_xml_input,
|
||||
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,
|
||||
<ls_late> LIKE LINE OF lt_late.
|
||||
<ls_deser> LIKE LINE OF lt_late.
|
||||
|
||||
|
||||
lcl_objects_activation=>clear( ).
|
||||
|
@ -665,27 +655,31 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
li_obj->mo_files = lo_files.
|
||||
|
||||
IF li_obj->get_metadata( )-late_deser = abap_true.
|
||||
APPEND INITIAL LINE TO lt_late ASSIGNING <ls_late>.
|
||||
<ls_late>-obj = li_obj.
|
||||
<ls_late>-xml = lo_xml.
|
||||
<ls_late>-package = lv_package.
|
||||
CONTINUE.
|
||||
APPEND INITIAL LINE TO lt_late ASSIGNING <ls_deser>.
|
||||
ELSEIF li_obj->get_metadata( )-ddic = abap_true.
|
||||
APPEND INITIAL LINE TO lt_ddic ASSIGNING <ls_deser>.
|
||||
ELSE.
|
||||
APPEND INITIAL LINE TO lt_rest ASSIGNING <ls_deser>.
|
||||
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.
|
||||
|
||||
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>.
|
||||
<ls_late>-obj->deserialize( iv_package = <ls_late>-package
|
||||
io_xml = <ls_late>-xml ).
|
||||
ENDLOOP.
|
||||
deserialize_objects( EXPORTING it_objects = lt_rest
|
||||
iv_descr = 'Objects'
|
||||
CHANGING ct_files = rt_accessed_files ).
|
||||
|
||||
deserialize_objects( EXPORTING it_objects = lt_late
|
||||
iv_descr = 'Late'
|
||||
CHANGING ct_files = rt_accessed_files ).
|
||||
|
||||
update_package_tree( io_repo->get_package( ) ).
|
||||
|
||||
|
@ -694,6 +688,27 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user