mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-03 21:37:26 +08:00

* ECATT: remove dynamic method calls This commit introduces two new interfaces to remove dynamic method calls. - ZIF_ABAPGIT_ECATT_DOWNLOAD - ZIF_ABAPGIT_ECATT_UPLOAD * ECATT: Rename method Rename method z_set_stream_for_upload to set_stream_for_upload as we now use our own interface and there's no risk that SAP standard introduces a method with the same name
115 lines
2.4 KiB
ABAP
115 lines
2.4 KiB
ABAP
CLASS zcl_abapgit_ecatt_system_downl DEFINITION
|
|
PUBLIC
|
|
INHERITING FROM cl_apl_ecatt_systems_download
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
INTERFACES:
|
|
zif_abapgit_ecatt_download.
|
|
|
|
METHODS:
|
|
download REDEFINITION.
|
|
|
|
PROTECTED SECTION.
|
|
METHODS:
|
|
download_data REDEFINITION.
|
|
|
|
PRIVATE SECTION.
|
|
DATA:
|
|
mv_xml_stream TYPE xstring.
|
|
|
|
METHODS:
|
|
set_systems_data_to_template.
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_abapgit_ecatt_system_downl IMPLEMENTATION.
|
|
|
|
|
|
METHOD download.
|
|
|
|
" Downport
|
|
|
|
load_help = im_load_help.
|
|
typ = im_object_type.
|
|
|
|
TRY.
|
|
cl_apl_ecatt_object=>show_object(
|
|
EXPORTING
|
|
im_obj_type = im_object_type
|
|
im_name = im_object_name
|
|
im_version = im_object_version
|
|
IMPORTING
|
|
re_object = ecatt_object ).
|
|
CATCH cx_ecatt INTO ex_ecatt.
|
|
RETURN.
|
|
ENDTRY.
|
|
|
|
set_attributes_to_template( ).
|
|
set_systems_data_to_template( ).
|
|
download_data( ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD download_data.
|
|
|
|
" Downport
|
|
|
|
mv_xml_stream = zcl_abapgit_ecatt_helper=>download_data( template_over_all ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_ecatt_download~get_xml_stream.
|
|
|
|
rv_xml_stream = mv_xml_stream.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD set_systems_data_to_template.
|
|
|
|
DATA: lo_ecatt_systems TYPE REF TO cl_apl_ecatt_system_data,
|
|
lt_sys_data TYPE etsys_def_tabtype,
|
|
ls_sys_data TYPE etsys_def,
|
|
li_item TYPE REF TO if_ixml_element,
|
|
li_sysdata_node TYPE REF TO if_ixml_element.
|
|
|
|
lo_ecatt_systems ?= ecatt_object.
|
|
lt_sys_data = lo_ecatt_systems->get_system_data( ).
|
|
|
|
li_sysdata_node = template_over_all->create_simple_element(
|
|
name = 'SYSTEMS_DATA'
|
|
parent = root_node ).
|
|
|
|
etpar_node = template_over_all->create_simple_element(
|
|
name = 'ETSYS_DEF'
|
|
parent = li_sysdata_node ).
|
|
|
|
LOOP AT lt_sys_data INTO ls_sys_data.
|
|
|
|
CLEAR: ls_sys_data-sys_desc, ls_sys_data-instance.
|
|
|
|
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
|
|
EXPORTING
|
|
name = 'item'
|
|
dataobject = ls_sys_data
|
|
IMPORTING
|
|
data_as_dom = li_item
|
|
CHANGING
|
|
document = template_over_all
|
|
EXCEPTIONS
|
|
illegal_name = 1
|
|
OTHERS = 2.
|
|
ASSERT sy-subrc = 0.
|
|
|
|
etpar_node->append_child( new_child = li_item ).
|
|
|
|
ENDLOOP.
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|