CLASS zcl_abapgit_object_enho_wdyc DEFINITION PUBLIC. PUBLIC SECTION. METHODS: constructor IMPORTING is_item TYPE zif_abapgit_definitions=>ty_item io_files TYPE REF TO zcl_abapgit_objects_files. INTERFACES: zif_abapgit_object_enho. PRIVATE SECTION. DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. ENDCLASS. CLASS zcl_abapgit_object_enho_wdyc IMPLEMENTATION. METHOD constructor. ms_item = is_item. ENDMETHOD. "constructor METHOD zif_abapgit_object_enho~deserialize. DATA: lv_enhname TYPE enhname, lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, li_tool TYPE REF TO if_enh_tool, ls_obj TYPE wdy_config_key, lv_package TYPE devclass. io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' CHANGING cg_data = ls_obj ). lv_enhname = ms_item-obj_name. lv_package = iv_package. TRY. cl_enh_factory=>create_enhancement( EXPORTING enhname = lv_enhname enhtype = '' enhtooltype = cl_wdr_cfg_enhancement=>tooltype IMPORTING enhancement = li_tool CHANGING devclass = lv_package ). lo_wdyconf ?= li_tool. * todo * io_xml->read_xml() * CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) * lo_wdyconf->set_enhancement_data( ) ASSERT 0 = 1. lo_wdyconf->if_enh_object~save( ). lo_wdyconf->if_enh_object~unlock( ). CATCH cx_enh_root. zcx_abapgit_exception=>raise( 'error deserializing ENHO wdyconf' ). ENDTRY. ENDMETHOD. "zif_abapgit_object_enho~deserialize METHOD zif_abapgit_object_enho~serialize. DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, lt_data TYPE wdy_cfg_expl_data_tab, ls_outline TYPE wdy_cfg_outline_data, ls_obj TYPE wdy_config_key, li_document TYPE REF TO if_ixml_document, li_element TYPE REF TO if_ixml_element. lo_wdyconf ?= ii_enh_tool. ls_obj = lo_wdyconf->get_original_object( ). io_xml->add( iv_name = 'TOOL' ig_data = ii_enh_tool->get_tool( ) ). io_xml->add( iv_name = 'ORIGINAL_OBJECT' ig_data = ls_obj ). * only works on new ABAP versions, parameters differ between versions CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA') EXPORTING p_scope = 1 IMPORTING p_enh_data = lt_data. CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML') EXPORTING outline_data = ls_outline expl_data_tab = lt_data IMPORTING element = li_element CHANGING document = li_document. io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' ii_xml = li_element ). ENDMETHOD. "zif_abapgit_object_enho~serialize ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION