diff --git a/src/objects/zcl_abapgit_object_cus1.clas.abap b/src/objects/zcl_abapgit_object_cus1.clas.abap index f22d34564..be1e78bdc 100644 --- a/src/objects/zcl_abapgit_object_cus1.clas.abap +++ b/src/objects/zcl_abapgit_object_cus1.clas.abap @@ -31,7 +31,10 @@ CLASS zcl_abapgit_object_cus1 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje ENDCLASS. -CLASS zcl_abapgit_object_cus1 IMPLEMENTATION. + + +CLASS ZCL_ABAPGIT_OBJECT_CUS1 IMPLEMENTATION. + METHOD constructor. @@ -42,37 +45,16 @@ CLASS zcl_abapgit_object_cus1 IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. METHOD zif_abapgit_object~changed_by. rv_user = c_user_unknown. ENDMETHOD. - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-delete_tadir = abap_true. + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. - METHOD zif_abapgit_object~jump. - - zcx_abapgit_exception=>raise( |TODO: Jump| ). - - ENDMETHOD. - - METHOD zif_abapgit_object~exists. - - CALL FUNCTION 'S_CUS_ACTIVITY_EXIST' - EXPORTING - activity = mv_customizing_activity - EXCEPTIONS - activity_exists_not = 1 - OTHERS = 2. - - rv_bool = boolc( sy-subrc = 0 ). - - ENDMETHOD. METHOD zif_abapgit_object~delete. @@ -90,30 +72,6 @@ CLASS zcl_abapgit_object_cus1 IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~serialize. - - DATA: ls_customzing_activity TYPE ty_customzing_activity. - - CALL FUNCTION 'S_CUS_ACTIVITY_READ' - EXPORTING - activity = mv_customizing_activity - IMPORTING - activity_header = ls_customzing_activity-activity_header - activity_customer_exit = ls_customzing_activity-activity_customer_exit - TABLES - activity_title = ls_customzing_activity-activity_title - objects = ls_customzing_activity-objects - objects_title = ls_customzing_activity-objects_title. - - CLEAR: ls_customzing_activity-activity_header-fdatetime, - ls_customzing_activity-activity_header-fuser, - ls_customzing_activity-activity_header-ldatetime, - ls_customzing_activity-activity_header-luser. - - io_xml->add( iv_name = 'CUS1' - ig_data = ls_customzing_activity ). - - ENDMETHOD. METHOD zif_abapgit_object~deserialize. @@ -164,17 +122,71 @@ CLASS zcl_abapgit_object_cus1 IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + + METHOD zif_abapgit_object~exists. + + CALL FUNCTION 'S_CUS_ACTIVITY_EXIST' + EXPORTING + activity = mv_customizing_activity + EXCEPTIONS + activity_exists_not = 1 + OTHERS = 2. + + rv_bool = boolc( sy-subrc = 0 ). + ENDMETHOD. + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-delete_tadir = abap_true. + ENDMETHOD. + + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. + + + METHOD zif_abapgit_object~is_active. + rv_active = abap_true. + ENDMETHOD. + + METHOD zif_abapgit_object~is_locked. rv_is_locked = abap_false. ENDMETHOD. -METHOD zif_abapgit_object~is_active. - rv_active = abap_true. + METHOD zif_abapgit_object~jump. + + zcx_abapgit_exception=>raise( |TODO: Jump| ). + ENDMETHOD. + + METHOD zif_abapgit_object~serialize. + + DATA: ls_customzing_activity TYPE ty_customzing_activity. + + CALL FUNCTION 'S_CUS_ACTIVITY_READ' + EXPORTING + activity = mv_customizing_activity + IMPORTING + activity_header = ls_customzing_activity-activity_header + activity_customer_exit = ls_customzing_activity-activity_customer_exit + TABLES + activity_title = ls_customzing_activity-activity_title + objects = ls_customzing_activity-objects + objects_title = ls_customzing_activity-objects_title. + + CLEAR: ls_customzing_activity-activity_header-fdatetime, + ls_customzing_activity-activity_header-fuser, + ls_customzing_activity-activity_header-ldatetime, + ls_customzing_activity-activity_header-luser. + + io_xml->add( iv_name = 'CUS1' + ig_data = ls_customzing_activity ). + + ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_form.clas.abap b/src/objects/zcl_abapgit_object_form.clas.abap index 7ac8ecfcb..24d16a53c 100644 --- a/src/objects/zcl_abapgit_object_form.clas.abap +++ b/src/objects/zcl_abapgit_object_form.clas.abap @@ -8,6 +8,7 @@ CLASS zcl_abapgit_object_form DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje is_item TYPE zif_abapgit_definitions=>ty_item iv_language TYPE spras. + PROTECTED SECTION. PRIVATE SECTION. CONSTANTS: c_objectname_form TYPE thead-tdobject VALUE 'FORM' ##NO_TEXT. CONSTANTS: c_objectname_tdlines TYPE thead-tdobject VALUE 'TDLINES' ##NO_TEXT. @@ -102,16 +103,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_form IMPLEMENTATION. - - METHOD constructor. - - super->constructor( is_item = is_item - iv_language = iv_language ). - - mv_form_name = ms_item-obj_name. - - ENDMETHOD. +CLASS ZCL_ABAPGIT_OBJECT_FORM IMPLEMENTATION. METHOD build_extra_from_header. @@ -153,6 +145,16 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION. ENDMETHOD. + METHOD constructor. + + super->constructor( is_item = is_item + iv_language = iv_language ). + + mv_form_name = ms_item-obj_name. + + ENDMETHOD. + + METHOD extract_tdlines. DATA lv_string TYPE string. @@ -216,6 +218,43 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION. ENDMETHOD. + METHOD order_check_and_insert. + + DATA: ls_order TYPE e071k-trkorr. + + CALL FUNCTION 'SAPSCRIPT_ORDER_CHECK' + EXPORTING + objecttype = ms_item-obj_type + form = mv_form_name + EXCEPTIONS + invalid_input = 1 + object_locked = 2 + object_not_available = 3 + OTHERS = 4. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + CALL FUNCTION 'SAPSCRIPT_ORDER_INSERT' + EXPORTING + objecttype = ms_item-obj_type + form = mv_form_name + masterlang = mv_language + CHANGING + order = ls_order + EXCEPTIONS + invalid_input = 1 + order_canceled = 2 + OTHERS = 3. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + ENDMETHOD. + + METHOD zif_abapgit_object~changed_by. DATA: ls_last_changed TYPE tys_form_header. @@ -314,6 +353,11 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION. ENDMETHOD. + METHOD zif_abapgit_object~is_active. + rv_active = is_active( ). + ENDMETHOD. + + METHOD zif_abapgit_object~is_locked. DATA: lv_object TYPE seqg3-garg. @@ -454,10 +498,38 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION. tabs = es_form_data-tabs windows = es_form_data-windows. - _sort_tdlines_by_windows( CHANGING ct_form_windows = es_form_data-windows - ct_lines = et_lines ). + _sort_tdlines_by_windows( CHANGING ct_form_windows = es_form_data-windows + ct_lines = et_lines ). ENDMETHOD. + + METHOD _save_form. + + CALL FUNCTION 'SAVE_FORM' + EXPORTING + form_header = cs_form_data-form_header + TABLES + form_lines = it_lines + pages = cs_form_data-pages + page_windows = cs_form_data-page_windows + paragraphs = cs_form_data-paragraphs + strings = cs_form_data-strings + tabs = cs_form_data-tabs + windows = cs_form_data-windows. + + CALL FUNCTION 'SAPSCRIPT_CHANGE_OLANGUAGE' + EXPORTING + forced = abap_true + name = cs_form_data-text_header-tdname + object = cs_form_data-text_header-tdobject + olanguage = cs_form_data-orig_language + EXCEPTIONS + OTHERS = 1 + ##fm_subrc_ok. "#EC CI_SUBRC + + ENDMETHOD. + + METHOD _sort_tdlines_by_windows. DATA lt_lines TYPE zcl_abapgit_object_form=>tyt_lines. DATA ls_lines LIKE LINE OF lt_lines. @@ -484,71 +556,4 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION. ENDLOOP. ENDLOOP. ENDMETHOD. - -METHOD _save_form. - - CALL FUNCTION 'SAVE_FORM' - EXPORTING - form_header = cs_form_data-form_header - TABLES - form_lines = it_lines - pages = cs_form_data-pages - page_windows = cs_form_data-page_windows - paragraphs = cs_form_data-paragraphs - strings = cs_form_data-strings - tabs = cs_form_data-tabs - windows = cs_form_data-windows. - - CALL FUNCTION 'SAPSCRIPT_CHANGE_OLANGUAGE' - EXPORTING - forced = abap_true - name = cs_form_data-text_header-tdname - object = cs_form_data-text_header-tdobject - olanguage = cs_form_data-orig_language - EXCEPTIONS - OTHERS = 1 - ##fm_subrc_ok. "#EC CI_SUBRC - - ENDMETHOD. - - METHOD order_check_and_insert. - - DATA: ls_order TYPE e071k-trkorr. - - CALL FUNCTION 'SAPSCRIPT_ORDER_CHECK' - EXPORTING - objecttype = ms_item-obj_type - form = mv_form_name - EXCEPTIONS - invalid_input = 1 - object_locked = 2 - object_not_available = 3 - OTHERS = 4. - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise_t100( ). - ENDIF. - - CALL FUNCTION 'SAPSCRIPT_ORDER_INSERT' - EXPORTING - objecttype = ms_item-obj_type - form = mv_form_name - masterlang = mv_language - CHANGING - order = ls_order - EXCEPTIONS - invalid_input = 1 - order_canceled = 2 - OTHERS = 3. - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise_t100( ). - ENDIF. - - ENDMETHOD. - - - METHOD zif_abapgit_object~is_active. - rv_active = is_active( ). - ENDMETHOD. ENDCLASS. diff --git a/src/utils/zif_abapgit_frontend_services.intf.abap b/src/utils/zif_abapgit_frontend_services.intf.abap index fa9ac408e..56a9ce3dd 100644 --- a/src/utils/zif_abapgit_frontend_services.intf.abap +++ b/src/utils/zif_abapgit_frontend_services.intf.abap @@ -1,33 +1,32 @@ -INTERFACE zif_abapgit_frontend_services - PUBLIC . - METHODS file_upload - IMPORTING - !iv_path TYPE string - RETURNING - VALUE(rv_xstr) TYPE xstring - RAISING - zcx_abapgit_exception . - METHODS file_download - IMPORTING - !iv_path TYPE string - !iv_xstr TYPE xstring - RAISING - zcx_abapgit_exception . - METHODS show_file_save_dialog - IMPORTING - !iv_title TYPE string - !iv_extension TYPE string - !iv_default_filename TYPE string - RETURNING - VALUE(rv_path) TYPE string - RAISING - zcx_abapgit_exception . - METHODS show_file_open_dialog - IMPORTING - !iv_title TYPE string - !iv_default_filename TYPE string - RETURNING - VALUE(rv_path) TYPE string - RAISING - zcx_abapgit_exception . +INTERFACE zif_abapgit_frontend_services PUBLIC. + METHODS file_upload + IMPORTING + !iv_path TYPE string + RETURNING + VALUE(rv_xstr) TYPE xstring + RAISING + zcx_abapgit_exception . + METHODS file_download + IMPORTING + !iv_path TYPE string + !iv_xstr TYPE xstring + RAISING + zcx_abapgit_exception . + METHODS show_file_save_dialog + IMPORTING + !iv_title TYPE string + !iv_extension TYPE string + !iv_default_filename TYPE string + RETURNING + VALUE(rv_path) TYPE string + RAISING + zcx_abapgit_exception . + METHODS show_file_open_dialog + IMPORTING + !iv_title TYPE string + !iv_default_filename TYPE string + RETURNING + VALUE(rv_path) TYPE string + RAISING + zcx_abapgit_exception . ENDINTERFACE. diff --git a/src/zabapgit_parallel.fugr.saplzabapgit_parallel.abap b/src/zabapgit_parallel.fugr.saplzabapgit_parallel.abap index 068e16fb9..20952b4bc 100644 --- a/src/zabapgit_parallel.fugr.saplzabapgit_parallel.abap +++ b/src/zabapgit_parallel.fugr.saplzabapgit_parallel.abap @@ -1,8 +1,8 @@ ******************************************************************* * System-defined Include-files. * ******************************************************************* - INCLUDE LZABAPGIT_PARALLELTOP. " Global Declarations - INCLUDE LZABAPGIT_PARALLELUXX. " Function Modules +INCLUDE lzabapgit_paralleltop. " Global Declarations +INCLUDE lzabapgit_paralleluxx. " Function Modules ******************************************************************* * User-defined Include-files (if necessary). * diff --git a/src/zcl_abapgit_repo_srv.clas.abap b/src/zcl_abapgit_repo_srv.clas.abap index c5f3ac04a..b451c6767 100644 --- a/src/zcl_abapgit_repo_srv.clas.abap +++ b/src/zcl_abapgit_repo_srv.clas.abap @@ -35,7 +35,7 @@ CLASS zcl_abapgit_repo_srv DEFINITION VALUE(rv_allowed) TYPE abap_bool . METHODS instantiate_and_add IMPORTING - !is_repo_meta TYPE zif_abapgit_persistence=>ty_repo + !is_repo_meta TYPE zif_abapgit_persistence=>ty_repo RETURNING VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo RAISING @@ -85,6 +85,14 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDMETHOD. + METHOD get_instance. + IF gi_ref IS INITIAL. + CREATE OBJECT gi_ref TYPE zcl_abapgit_repo_srv. + ENDIF. + ri_srv = gi_ref. + ENDMETHOD. + + METHOD instantiate_and_add. IF is_repo_meta-offline = abap_false. @@ -101,14 +109,6 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDMETHOD. - METHOD get_instance. - IF gi_ref IS INITIAL. - CREATE OBJECT gi_ref TYPE zcl_abapgit_repo_srv. - ENDIF. - ri_srv = gi_ref. - ENDMETHOD. - - METHOD is_sap_object_allowed. rv_allowed = cl_enh_badi_def_utility=>is_sap_system( ). @@ -142,6 +142,23 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDMETHOD. + METHOD reinstantiate_repo. + + DATA lo_repo TYPE REF TO zcl_abapgit_repo. + DATA ls_full_meta TYPE zif_abapgit_persistence=>ty_repo. + + lo_repo = get( iv_key ). + DELETE TABLE mt_list FROM lo_repo. + ASSERT sy-subrc IS INITIAL. + + MOVE-CORRESPONDING is_meta TO ls_full_meta. + ls_full_meta-key = iv_key. + + instantiate_and_add( ls_full_meta ). + + ENDMETHOD. + + METHOD validate_sub_super_packages. DATA: ls_repo LIKE LINE OF it_repos, @@ -173,6 +190,31 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDMETHOD. + METHOD zif_abapgit_repo_listener~on_meta_change. + + DATA li_persistence TYPE REF TO zif_abapgit_persist_repo. + + li_persistence = zcl_abapgit_persist_factory=>get_repo( ). + li_persistence->update_metadata( + iv_key = iv_key + is_meta = is_meta + is_change_mask = is_change_mask ). + + + " Recreate repo instance if type changed + " Instances in mt_list are of *_online and *_offline type + " If type is changed object should be recreated from the proper class + " TODO refactor, e.g. unify repo logic in one class + IF is_change_mask-offline = abap_true. + reinstantiate_repo( + iv_key = iv_key + is_meta = is_meta ). + + ENDIF. + + ENDMETHOD. + + METHOD zif_abapgit_repo_srv~delete. zcl_abapgit_persist_factory=>get_repo( )->delete( io_repo->get_key( ) ). @@ -308,48 +350,6 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_repo_listener~on_meta_change. - - DATA li_persistence TYPE REF TO zif_abapgit_persist_repo. - - li_persistence = zcl_abapgit_persist_factory=>get_repo( ). - li_persistence->update_metadata( - iv_key = iv_key - is_meta = is_meta - is_change_mask = is_change_mask ). - - - " Recreate repo instance if type changed - " Instances in mt_list are of *_online and *_offline type - " If type is changed object should be recreated from the proper class - " TODO refactor, e.g. unify repo logic in one class - IF is_change_mask-offline = abap_true. - reinstantiate_repo( - iv_key = iv_key - is_meta = is_meta ). - - ENDIF. - - ENDMETHOD. - - - METHOD reinstantiate_repo. - - DATA lo_repo TYPE REF TO zcl_abapgit_repo. - DATA ls_full_meta TYPE zif_abapgit_persistence=>ty_repo. - - lo_repo = get( iv_key ). - DELETE TABLE mt_list FROM lo_repo. - ASSERT sy-subrc IS INITIAL. - - MOVE-CORRESPONDING is_meta TO ls_full_meta. - ls_full_meta-key = iv_key. - - instantiate_and_add( ls_full_meta ). - - ENDMETHOD. - - METHOD zif_abapgit_repo_srv~purge. * todo, this should be a method on the repo instead