From a4c4eec2146c51a2e278c014c5944a172bd3506a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Mon, 16 Apr 2018 16:25:43 +0000 Subject: [PATCH] ECSD eCATT System Data Container serialization --- .../zcl_abapgit_ecatt_system_downl.clas.abap | 138 ++++++++++++++++++ .../zcl_abapgit_ecatt_system_downl.clas.xml | 18 +++ .../zcl_abapgit_ecatt_system_upl.clas.abap | 41 ++++++ .../zcl_abapgit_ecatt_system_upl.clas.xml | 19 +++ src/objects/zcl_abapgit_object_ecsd.clas.abap | 54 +++++++ src/objects/zcl_abapgit_object_ecsd.clas.xml | 18 +++ 6 files changed, 288 insertions(+) create mode 100644 src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.abap create mode 100644 src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.xml create mode 100644 src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.abap create mode 100644 src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.xml create mode 100644 src/objects/zcl_abapgit_object_ecsd.clas.abap create mode 100644 src/objects/zcl_abapgit_object_ecsd.clas.xml diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.abap b/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.abap new file mode 100644 index 000000000..9e250db66 --- /dev/null +++ b/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.abap @@ -0,0 +1,138 @@ +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. diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.xml b/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.xml new file mode 100644 index 000000000..7b71b8cd0 --- /dev/null +++ b/src/objects/ecatt/zcl_abapgit_ecatt_system_downl.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_ECATT_SYSTEM_DOWNL + 1 + E + zcl_abapgit_ecatt_download + 2 + 1 + X + X + X + + + + diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.abap b/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.abap new file mode 100644 index 000000000..e48500eb8 --- /dev/null +++ b/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.abap @@ -0,0 +1,41 @@ +CLASS zcl_abapgit_ecatt_system_upl DEFINITION + PUBLIC + INHERITING FROM cl_apl_ecatt_systems_upload + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + METHODS: + z_set_stream_for_upload + IMPORTING + im_xml TYPE xstring. + + PROTECTED SECTION. + METHODS: + upload_data_from_stream REDEFINITION. + + PRIVATE SECTION. + DATA: mv_external_xml TYPE xstring. + +ENDCLASS. + + + +CLASS zcl_abapgit_ecatt_system_upl IMPLEMENTATION. + + METHOD upload_data_from_stream. + + " Downport + template_over_all = zcl_abapgit_ecatt_helper=>upload_data_from_stream( mv_external_xml ). + + ENDMETHOD. + + + METHOD z_set_stream_for_upload. + + " downport from CL_APL_ECATT_SYSTEMS_UPLOAD SET_STREAM_FOR_UPLOAD + mv_external_xml = im_xml. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.xml b/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.xml new file mode 100644 index 000000000..07b74191c --- /dev/null +++ b/src/objects/ecatt/zcl_abapgit_ecatt_system_upl.clas.xml @@ -0,0 +1,19 @@ + + + + + + ZCL_ABAPGIT_ECATT_SYSTEM_UPL + 1 + E + ZCL_APL_ECATT_DATA_UPLOAD + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_ecsd.clas.abap b/src/objects/zcl_abapgit_object_ecsd.clas.abap new file mode 100644 index 000000000..282108b85 --- /dev/null +++ b/src/objects/zcl_abapgit_object_ecsd.clas.abap @@ -0,0 +1,54 @@ +CLASS zcl_abapgit_object_ecsd DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_object_ecatt_super + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + + METHODS: + constructor + IMPORTING + !is_item TYPE zif_abapgit_definitions=>ty_item + !iv_language TYPE spras. + + PROTECTED SECTION. + METHODS: + get_object_type REDEFINITION, + get_upload REDEFINITION, + get_download REDEFINITION. + +ENDCLASS. + + + +CLASS zcl_abapgit_object_ecsd IMPLEMENTATION. + + + METHOD constructor. + + super->constructor( is_item = is_item + iv_language = iv_language ). + + ENDMETHOD. + + + METHOD get_object_type. + + rv_object_type = cl_apl_ecatt_const=>obj_type_system_data. + + ENDMETHOD. + + METHOD get_upload. + + CREATE OBJECT ro_upload TYPE zcl_abapgit_ecatt_system_upl. + + ENDMETHOD. + + METHOD get_download. + + CREATE OBJECT ro_download TYPE zcl_abapgit_ecatt_system_downl. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_ecsd.clas.xml b/src/objects/zcl_abapgit_object_ecsd.clas.xml new file mode 100644 index 000000000..c2023fe4e --- /dev/null +++ b/src/objects/zcl_abapgit_object_ecsd.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ECSD + 1 + E + 2 + 1 + X + X + X + X + + + +