anchor.diff:  
       io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA'
                        ii_xml = li_element ).
  +
  +  ENDMETHOD.                    "lif_object_enho~serialize
  +
  +ENDCLASS.                    "lcl_object_enho_wdyconf IMPLEMENTATION
  +
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_object_enho_wdyconf DEFINITION
  +*----------------------------------------------------------------------*
  +*
  +*----------------------------------------------------------------------*
  +CLASS lcl_object_enho_wdyn DEFINITION.
  +
  +  PUBLIC SECTION.
  +    METHODS: constructor
  +      IMPORTING
  +        is_item  TYPE lif_defs=>ty_item
  +        io_files TYPE REF TO lcl_objects_files.
  +    INTERFACES: lif_object_enho.
  +
  +  PRIVATE SECTION.
  +    DATA: ms_item  TYPE lif_defs=>ty_item,
  +          mo_files TYPE REF TO lcl_objects_files.
  +
  +ENDCLASS.                    "lcl_object_enho_wdyconf DEFINITION
  +
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_object_enho_wdyconf IMPLEMENTATION
  +*----------------------------------------------------------------------*
  +*
  +*----------------------------------------------------------------------*
  +CLASS lcl_object_enho_wdyn IMPLEMENTATION.
  +
  +  METHOD constructor.
  +    ms_item = is_item.
  +    mo_files = io_files.
  +  ENDMETHOD.                    "constructor
  +
  +  METHOD lif_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,
  +          package     TYPE devclass.
  +
  +    io_xml->read(
  +      EXPORTING
  +        iv_name       = 'COMPONENT_DATA'
  +      CHANGING
  +        cg_data       = ls_enh_data ).
  +
  +    package = iv_package.
  +
  +    TRY.
  +        cl_enh_factory=>create_enhancement(
  +          EXPORTING
  +            enhname     = |{ ms_item-obj_name }|
  +            enhtype     = ''
  +            enhtooltype = 'WDYENH'
  +          IMPORTING
  +            enhancement = li_tool
  +          CHANGING
  +            devclass    = 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 FIELD-SYMBOL(<controller_data>).
  +
  +          lo_wdyn->set_controller_data( p_controller_name = <controller_data>-controller_name
  +                                        p_enh_data				= <controller_data> ).
  +
  +        ENDLOOP.
  +
  +        LOOP AT ls_enh_data-view_data ASSIGNING FIELD-SYMBOL(<view_data>).
  +
  +          lo_wdyn->set_view_data( p_view_name = <view_data>-view_name
  +                                  p_enh_data	= <view_data> ).
  +
  +        ENDLOOP.
  +
  +        lo_wdyn->if_enh_object~save( ).
  +        lo_wdyn->if_enh_object~unlock( ).
  +
  +      CATCH cx_root.
  +        lcx_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ).
  +    ENDTRY.
  +
  +
  +*    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.
  +*        lcx_exception=>raise( 'error deserializing ENHO wdyconf' ).
  +*    ENDTRY.
  +
  +  ENDMETHOD.                    "lif_object_enho~deserialize
  +
  +  METHOD lif_object_enho~serialize.
  +
  +    DATA: lo_wdyn        TYPE REF TO cl_enh_tool_wdy,
  +          component_name TYPE wdy_component_name,
  +          ls_enh_data    TYPE enhwdyn.
  +
  +    lo_wdyn ?= ii_enh_tool.
  +
  +    component_name = lo_wdyn->get_component_name( ).
  +
  +    TRY.
  +        lo_wdyn->get_all_data_for_comp(
  +          EXPORTING
  +            p_component_name = 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.
  +        lcx_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ).
  +    ENDTRY.
  +
  +*    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.                    "lif_object_enho~serialize
   
  
positive.code:           EXPORTING
              is_item  = ms_item
              io_files = mo_files.
  * ToDo:
  *      WHEN 'ENHFUGRDATA'. "cl_enh_tool_fugr
  *      WHEN 'ENHWDYN'. "cl_enh_tool_wdy
        WHEN OTHERS.
          lcx_exception=>raise( |Unsupported ENHO type { iv_tool }| ).
      ENDCASE.
  
negative.code:         IMPORTING
            iv_tool        TYPE enhtooltype
          RETURNING
            VALUE(ri_enho) TYPE REF TO lif_object_enho
          RAISING
            lcx_exception.
  
  