CLASS zcl_abapgit_object_enho_wdyn 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_wdyn IMPLEMENTATION. METHOD constructor. ms_item = is_item. ENDMETHOD. METHOD zif_abapgit_object_enho~deserialize. DATA: ls_enh_data TYPE enhwdyn, li_tool TYPE REF TO if_enh_tool, lo_wdyn TYPE REF TO cl_enh_tool_wdy, lv_tool_type TYPE enhtooltype, lv_package TYPE devclass. FIELD-SYMBOLS: TYPE enhwdyc, TYPE enhwdyv. io_xml->read( EXPORTING iv_name = 'TOOL' CHANGING cg_data = lv_tool_type ). io_xml->read( EXPORTING iv_name = 'COMPONENT_DATA' CHANGING cg_data = ls_enh_data ). lv_package = iv_package. TRY. cl_enh_factory=>create_enhancement( EXPORTING enhname = |{ ms_item-obj_name }| enhtype = '' enhtooltype = lv_tool_type IMPORTING enhancement = li_tool CHANGING devclass = lv_package ). lo_wdyn ?= li_tool. lo_wdyn->initialize( ls_enh_data-component_name ). lo_wdyn->set_component_data( ls_enh_data-component_data ). LOOP AT ls_enh_data-controller_data ASSIGNING . lo_wdyn->set_controller_data( p_controller_name = -controller_name p_enh_data = ). ENDLOOP. LOOP AT ls_enh_data-view_data ASSIGNING . lo_wdyn->set_view_data( p_view_name = -view_name p_enh_data = ). ENDLOOP. lo_wdyn->if_enh_object~save( run_dark = abap_true ). lo_wdyn->if_enh_object~unlock( ). CATCH cx_root. zcx_abapgit_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ). ENDTRY. ENDMETHOD. METHOD zif_abapgit_object_enho~serialize. DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy, lv_component_name TYPE wdy_component_name, ls_enh_data TYPE enhwdyn. lo_wdyn ?= ii_enh_tool. lv_component_name = lo_wdyn->get_component_name( ). TRY. lo_wdyn->get_all_data_for_comp( EXPORTING p_component_name = lv_component_name IMPORTING p_enh_data = ls_enh_data ). io_xml->add( iv_name = 'TOOL' ig_data = ii_enh_tool->get_tool( ) ). io_xml->add( iv_name = 'COMPONENT_DATA' ig_data = ls_enh_data ). CATCH cx_enh_not_found. zcx_abapgit_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ). ENDTRY. ENDMETHOD. ENDCLASS.