mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
139 lines
3.0 KiB
ABAP
139 lines
3.0 KiB
ABAP
CLASS zcl_abapgit_ecatt_system_downl DEFINITION
|
|
PUBLIC
|
|
INHERITING FROM cl_apl_ecatt_systems_download
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
METHODS:
|
|
download REDEFINITION,
|
|
|
|
get_xml_stream
|
|
RETURNING
|
|
VALUE(rv_xml_stream) TYPE xstring,
|
|
|
|
get_xml_stream_size
|
|
RETURNING
|
|
VALUE(rv_xml_stream_size) TYPE int4.
|
|
|
|
PROTECTED SECTION.
|
|
METHODS:
|
|
download_data REDEFINITION.
|
|
|
|
PRIVATE SECTION.
|
|
DATA:
|
|
mv_xml_stream TYPE xstring,
|
|
mv_xml_stream_size TYPE int4.
|
|
|
|
METHODS:
|
|
set_systems_data_to_template.
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS zcl_abapgit_ecatt_system_downl IMPLEMENTATION.
|
|
|
|
METHOD download.
|
|
|
|
" Downport
|
|
|
|
DATA: lv_partyp TYPE string.
|
|
|
|
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.
|
|
|
|
lv_partyp = cl_apl_ecatt_const=>params_type_par.
|
|
|
|
* build_schema( ).
|
|
* set_attributes_to_schema( ).
|
|
set_attributes_to_template( ).
|
|
* set_systems_data_to_schema( ).
|
|
set_systems_data_to_template( ).
|
|
* download_schema( ).
|
|
download_data( ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD download_data.
|
|
|
|
" Downport
|
|
|
|
zcl_abapgit_ecatt_helper=>download_data(
|
|
EXPORTING
|
|
ii_template_over_all = template_over_all
|
|
IMPORTING
|
|
ev_xml_stream = mv_xml_stream
|
|
ev_xml_stream_size = mv_xml_stream_size ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD get_xml_stream.
|
|
|
|
rv_xml_stream = mv_xml_stream.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD get_xml_stream_size.
|
|
|
|
rv_xml_stream_size = mv_xml_stream_size.
|
|
|
|
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.
|
|
|
|
etpar_node->append_child( new_child = li_item ).
|
|
|
|
ENDLOOP.
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|