From 840fe062627ae2d324bf1bad5eb7433799b9e946 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Mon, 6 Aug 2018 17:22:21 +0000 Subject: [PATCH] downport 702 --- .../ecatt/zcl_abapgit_ecatt_helper.clas.abap | 3 +- .../zcl_abapgit_ecatt_val_obj_down.clas.abap | 76 +++++++++++++---- src/objects/zcl_abapgit_object_devc.clas.abap | 84 +++++++++++++------ .../zcl_abapgit_oo_class_new.clas.abap | 10 ++- 4 files changed, 127 insertions(+), 46 deletions(-) diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_helper.clas.abap b/src/objects/ecatt/zcl_abapgit_ecatt_helper.clas.abap index 5b2c32f91..9ce36d6d5 100644 --- a/src/objects/ecatt/zcl_abapgit_ecatt_helper.clas.abap +++ b/src/objects/ecatt/zcl_abapgit_ecatt_helper.clas.abap @@ -61,7 +61,8 @@ CLASS zcl_abapgit_ecatt_helper IMPLEMENTATION. CATCH cx_ecatt_apl INTO lx_ecatt. lv_text = lx_ecatt->get_text( ). zcx_abapgit_exception=>raise( lv_text ). - CATCH cx_ecatt_ui_attachment. + " CATCH cx_ecatt_ui_attachment. " Doesn't exist in 702 + CATCH cx_ecatt. "will never be raised from download, when called with mv_generate_xml_no_download = 'X'. ENDTRY. diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_val_obj_down.clas.abap b/src/objects/ecatt/zcl_abapgit_ecatt_val_obj_down.clas.abap index 668e5db16..a20d1a8a9 100644 --- a/src/objects/ecatt/zcl_abapgit_ecatt_val_obj_down.clas.abap +++ b/src/objects/ecatt/zcl_abapgit_ecatt_val_obj_down.clas.abap @@ -46,7 +46,11 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. " Downport - DATA: lv_partyp TYPE string. + DATA: lv_partyp TYPE string, + lo_ecatt_vo TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any, + TYPE REF TO cl_apl_ecatt_params. load_help = im_load_help. typ = im_object_type. @@ -65,23 +69,33 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. lv_partyp = cl_apl_ecatt_const=>params_type_par. + + ASSIGN ('ECATT_OBJECT') TO . + ASSERT sy-subrc = 0. + + lo_ecatt_vo = . + set_attributes_to_template( ). - ecatt_vo ?= ecatt_object. set_ecatt_impl_detail( ). set_ecatt_flags( ). set_business_msgs( ). - get_general_params_data( im_params = ecatt_vo->params + + ASSIGN lo_ecatt_vo->('PARAMS') + TO . + ASSERT sy-subrc = 0. + + get_general_params_data( im_params = im_ptyp = lv_partyp ). LOOP AT parm INTO wa_parm. set_general_params_data_to_dom( ). IF NOT wa_parm-val_type IS INITIAL. - set_deep_stru_to_dom( ecatt_vo->params ). - set_deep_data_to_dom( im_params = ecatt_vo->params + set_deep_stru_to_dom( ). + set_deep_data_to_dom( im_params = im_pindex = wa_parm-pindex ). ENDIF. ENDLOOP. - set_variants_to_dom( ecatt_vo->params ). + set_variants_to_dom( ). download_data( ). @@ -121,15 +135,23 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. DATA: lt_buss_msg_ref TYPE zif_abapgit_ecatt=>etvo_bus_msg_tabtype, li_element TYPE REF TO if_ixml_element, - li_insert_objects TYPE REF TO if_ixml_element. + li_insert_objects TYPE REF TO if_ixml_element, + lo_ecatt_vo TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any. + + ASSIGN ('ECATT_OBJECT') TO . + ASSERT sy-subrc = 0. + + lo_ecatt_vo = . li_objects_node = template_over_all->create_simple_element( name = 'BUSINESS_MESSAGES' parent = root_node ). - ecatt_vo->get_bussiness_msg( + CALL METHOD lo_ecatt_vo->('GET_BUSSINESS_MSG') IMPORTING - ex_buss_msg_ref = lt_buss_msg_ref ). + ex_buss_msg_ref = lt_buss_msg_ref. CALL FUNCTION 'SDIXML_DATA_TO_DOM' EXPORTING @@ -147,7 +169,7 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. - li_insert_objects = template_over_all->find_from_name( 'BUSINESS_MESSAGES' ). + li_insert_objects ?= template_over_all->find_from_name( 'BUSINESS_MESSAGES' ). li_insert_objects->append_child( new_child = li_element ). @@ -160,13 +182,23 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. lv_invert_validation TYPE zif_abapgit_ecatt=>etvo_invert_validation, lv_error_prio TYPE zif_abapgit_ecatt=>etvo_error_prio, li_element TYPE REF TO if_ixml_element, - li_insert_objects TYPE REF TO if_ixml_element. + li_insert_objects TYPE REF TO if_ixml_element, + lo_ecatt_vo TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any. li_objects_node = template_over_all->create_simple_element( name = 'VO_FLAGS' parent = root_node ). - lv_invert_validation = ecatt_vo->get_invert_validation_flag( ). + ASSIGN ('ECATT_OBJECT') TO . + ASSERT sy-subrc = 0. + + lo_ecatt_vo = . + + CALL METHOD lo_ecatt_vo->('GET_INVERT_VALIDATION_FLAG') + RECEIVING + re_invert_validation = lv_invert_validation. CALL FUNCTION 'SDIXML_DATA_TO_DOM' EXPORTING @@ -184,11 +216,13 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. - li_insert_objects = template_over_all->find_from_name( 'VO_FLAGS' ). + li_insert_objects ?= template_over_all->find_from_name( 'VO_FLAGS' ). li_insert_objects->append_child( new_child = li_element ). - lv_error_prio = ecatt_vo->get_error_priority( ). + CALL METHOD lo_ecatt_vo->('GET_ERROR_PRIORITY') + RECEIVING + re_error_prio = lv_error_prio. CALL FUNCTION 'SDIXML_DATA_TO_DOM' EXPORTING @@ -218,13 +252,23 @@ CLASS zcl_abapgit_ecatt_val_obj_down IMPLEMENTATION. DATA: ls_impl_details TYPE zif_abapgit_ecatt=>etvoimpl_det, li_element TYPE REF TO if_ixml_element, - li_insert_objects TYPE REF TO if_ixml_element. + li_insert_objects TYPE REF TO if_ixml_element, + lo_ecatt_vo TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any. li_objects_node = template_over_all->create_simple_element( name = 'IMPL_DETAILS' parent = root_node ). - ls_impl_details = ecatt_vo->get_impl_details( ). + ASSIGN ('ECATT_OBJECT') TO . + ASSERT sy-subrc = 0. + + lo_ecatt_vo = . + + CALL METHOD lo_ecatt_vo->('GET_IMPL_DETAILS') + RECEIVING + re_impl_details = ls_impl_details. CALL FUNCTION 'SDIXML_DATA_TO_DOM' EXPORTING diff --git a/src/objects/zcl_abapgit_object_devc.clas.abap b/src/objects/zcl_abapgit_object_devc.clas.abap index 41cfceb9e..9df82a779 100644 --- a/src/objects/zcl_abapgit_object_devc.clas.abap +++ b/src/objects/zcl_abapgit_object_devc.clas.abap @@ -36,7 +36,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION. +CLASS zcl_abapgit_object_devc IMPLEMENTATION. METHOD constructor. @@ -272,36 +272,68 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION. RETURN. ENDIF. - li_package->set_changeable( - EXPORTING - i_changeable = abap_true - i_suppress_dialog = abap_true - EXCEPTIONS - object_locked_by_other_user = 1 - permission_failure = 2 - object_already_changeable = 3 - object_already_unlocked = 4 - object_just_created = 5 - object_deleted = 6 - object_modified = 7 - object_not_existing = 8 - object_invalid = 9 - unexpected_error = 10 - OTHERS = 11 ). + TRY. + CALL METHOD li_package->('SET_CHANGEABLE') + EXPORTING + i_changeable = abap_true + i_suppress_dialog = abap_true " Parameter missing in 702 + EXCEPTIONS + object_locked_by_other_user = 1 + permission_failure = 2 + object_already_changeable = 3 + object_already_unlocked = 4 + object_just_created = 5 + object_deleted = 6 + object_modified = 7 + object_not_existing = 8 + object_invalid = 9 + unexpected_error = 10 + OTHERS = 11. + + CATCH cx_root. + li_package->set_changeable( + EXPORTING + i_changeable = abap_true + EXCEPTIONS + object_locked_by_other_user = 1 + permission_failure = 2 + object_already_changeable = 3 + object_already_unlocked = 4 + object_just_created = 5 + object_deleted = 6 + object_modified = 7 + object_not_existing = 8 + object_invalid = 9 + unexpected_error = 10 + OTHERS = 11 ). + ENDTRY. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. - li_package->delete( - EXPORTING - i_suppress_dialog = abap_true - EXCEPTIONS - object_not_empty = 1 - object_not_changeable = 2 - object_invalid = 3 - intern_err = 4 - OTHERS = 5 ). + TRY. + CALL METHOD li_package->('DELETE') + EXPORTING + i_suppress_dialog = abap_true " Parameter missing in 702 + EXCEPTIONS + object_not_empty = 1 + object_not_changeable = 2 + object_invalid = 3 + intern_err = 4 + OTHERS = 5. + + CATCH cx_root. + + li_package->delete( + EXCEPTIONS + object_not_empty = 1 + object_not_changeable = 2 + object_invalid = 3 + intern_err = 4 + OTHERS = 5 ). + + ENDTRY. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). diff --git a/src/objects/zcl_abapgit_oo_class_new.clas.abap b/src/objects/zcl_abapgit_oo_class_new.clas.abap index 5f990bd31..6715366f2 100644 --- a/src/objects/zcl_abapgit_oo_class_new.clas.abap +++ b/src/objects/zcl_abapgit_oo_class_new.clas.abap @@ -303,22 +303,26 @@ CLASS zcl_abapgit_oo_class_new IMPLEMENTATION. METHOD update_source_index. + CONSTANTS: + co_version_active TYPE r3state VALUE 'A', "#EC NOTEXT + co_version_inactive TYPE r3state VALUE 'I'. "#EC NOTEXT + " dynamic invocation, IF_OO_SOURCE_POS_INDEX_HELPER doesn't exist in 702. DATA li_index_helper TYPE REF TO object. TRY. - CREATE OBJECT li_index_helper TYPE cl_oo_source_pos_index_helper. + CREATE OBJECT li_index_helper TYPE ('CL_OO_SOURCE_POS_INDEX_HELPER'). CALL METHOD li_index_helper->('IF_OO_SOURCE_POS_INDEX_HELPER~CREATE_INDEX_WITH_SCANNER') EXPORTING class_name = iv_clsname - version = if_oo_clif_source=>co_version_active + version = co_version_active scanner = io_scanner. CALL METHOD li_index_helper->('IF_OO_SOURCE_POS_INDEX_HELPER~DELETE_INDEX') EXPORTING class_name = iv_clsname - version = if_oo_clif_source=>co_version_inactive. + version = co_version_inactive. CATCH cx_root. " it's probably okay to no update the index