anchor.diff:      ENDIF.
   
       TRY.
  -      cl_enh_factory=>create_enhancement_spot_comp(
  -        EXPORTING
  -          name      = lv_spot_name
  -          run_dark  = 'X'
  -        IMPORTING
  -          composite = li_spot_ref ).
  -
  -      lo_spot_ref ?= li_spot_ref.
  -
  -      lo_spot_ref->if_enh_object_docu~set_shorttext( lv_enh_shtext ).
  -     "Add subsequent enhancement spots
  -      LOOP AT lt_enh_spots INTO ls_enh_spot.
  -        lo_spot_ref->if_enh_spot_composite~add_enh_spot_child( ls_enh_spot ).
  -      ENDLOOP.
  -     "Add subsequent composite enhancement spots
  -      LOOP AT lt_comp_spots INTO ls_enh_spot.
  -        lo_spot_ref->if_enh_spot_composite~add_composite_child( ls_enh_spot ).
  -      ENDLOOP.
  -
  -      lo_spot_ref->if_enh_object~save( ).
  -      lo_spot_ref->if_enh_object~activate( ).
  -      lo_spot_ref->if_enh_object~unlock( ).
  -
  -    CATCH cx_enh_root INTO li_cx.
  -      lv_message = `Error occured while deserializing ENSC: ` && li_cx->get_text( ).
  -      _raise lv_message.
  +        cl_enh_factory=>create_enhancement_spot_comp(
  +          EXPORTING
  +            name      = lv_spot_name
  +            run_dark  = 'X'
  +          IMPORTING
  +            composite = li_spot_ref ).
  +
  +        lo_spot_ref ?= li_spot_ref.
  +
  +        lo_spot_ref->if_enh_object_docu~set_shorttext( lv_enh_shtext ).
  +        "Add subsequent enhancement spots
  +        LOOP AT lt_enh_spots INTO ls_enh_spot.
  +          lo_spot_ref->if_enh_spot_composite~add_enh_spot_child( ls_enh_spot ).
  +        ENDLOOP.
  +        "Add subsequent composite enhancement spots
  +        LOOP AT lt_comp_spots INTO ls_enh_spot.
  +          lo_spot_ref->if_enh_spot_composite~add_composite_child( ls_enh_spot ).
  +        ENDLOOP.
  +
  +        lo_spot_ref->if_enh_object~save( ).
  +        lo_spot_ref->if_enh_object~activate( ).
  +        lo_spot_ref->if_enh_object~unlock( ).
  +
  +      CATCH cx_enh_root INTO li_cx.
  +        lv_message = `Error occured while deserializing ENSC: ` && li_cx->get_text( ).
  +        _raise lv_message.
       ENDTRY.
   
     ENDMETHOD.  "deserialize
   
     METHOD lif_object~serialize.
  -    DATA: lv_spot_name    TYPE enhspotcompositename,
  -          lv_message      TYPE string,
  -          lv_enh_shtext   TYPE string,
  -          lv_parent       TYPE enhspotcompositename,
  -          lt_enh_spots    TYPE enhspotname_it,
  -          lt_comp_spots   TYPE enhspotname_it,
  -          li_cx           TYPE REF TO cx_root,
  -          li_spot_ref     TYPE REF TO if_enh_spot_composite,
  -          lo_spot_ref     TYPE REF TO cl_enh_spot_composite.
  -
  -    lv_spot_name = ms_item-obj_name.
  -
  -    TRY.
  -      li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  -        lock = ''
  -        name = lv_spot_name ).
  -
  -      lo_spot_ref ?= li_spot_ref.
  -
  -      lv_enh_shtext = li_spot_ref->if_enh_object_docu~get_shorttext( ).
  -      "find parent = composite enhancement (ENSC)
  -      lv_parent = CL_R3STANDARD_PERSISTENCE=>enh_find_parent_composite( lv_spot_name ).
  -      "find subsequent enhancement spots
  -      lt_enh_spots = lo_spot_ref->if_enh_spot_composite~get_enh_spot_childs( ).
  -      "find subsequent composite enhancement spots
  -      lt_comp_spots = lo_spot_ref->if_enh_spot_composite~get_composite_childs( ).
  -
  -      io_xml->add( ig_data = lv_enh_shtext
  -                   iv_name = 'SHORTTEXT' ).
  -      io_xml->add( ig_data = lt_enh_spots
  -                   iv_name = 'ENH_SPOTS' ).         "Enhancement spots
  -      io_xml->add( ig_data = lt_comp_spots
  -                   iv_name = 'COMP_ENH_SPOTS' ).    "Composite enhancement spots
  -
  -    CATCH cx_enh_root INTO li_cx.
  -      lv_message = `Error occured while serializing ENSC: ` && li_cx->get_text( ).
  -      _raise lv_message.
  -    ENDTRY.
  -
  -  ENDMETHOD.  "serialize
  -
  -  METHOD lif_object~exists.
       DATA: lv_spot_name  TYPE enhspotcompositename,
             lv_message    TYPE string,
  +          lv_enh_shtext TYPE string,
  +          lv_parent     TYPE enhspotcompositename,
  +          lt_enh_spots  TYPE enhspotname_it,
  +          lt_comp_spots TYPE enhspotname_it,
             li_cx         TYPE REF TO cx_root,
  -          li_spot_ref   TYPE REF TO if_enh_spot_composite.
  +          li_spot_ref   TYPE REF TO if_enh_spot_composite,
  +          lo_spot_ref   TYPE REF TO cl_enh_spot_composite.
   
       lv_spot_name = ms_item-obj_name.
   
       TRY.
  -      li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  -        lock = ''
  -        name = lv_spot_name ).
  -    CATCH cx_enh_root INTO li_cx.
  -      lv_message = `Error occured while checking ENSC: ` && li_cx->get_text( ).
  -      _raise lv_message.
  +        li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  +          lock = ''
  +          name = lv_spot_name ).
  +
  +        lo_spot_ref ?= li_spot_ref.
  +
  +        lv_enh_shtext = li_spot_ref->if_enh_object_docu~get_shorttext( ).
  +        "find parent = composite enhancement (ENSC)
  +        lv_parent = cl_r3standard_persistence=>enh_find_parent_composite( lv_spot_name ).
  +        "find subsequent enhancement spots
  +        lt_enh_spots = lo_spot_ref->if_enh_spot_composite~get_enh_spot_childs( ).
  +        "find subsequent composite enhancement spots
  +        lt_comp_spots = lo_spot_ref->if_enh_spot_composite~get_composite_childs( ).
  +
  +        io_xml->add( ig_data = lv_enh_shtext
  +                     iv_name = 'SHORTTEXT' ).
  +        io_xml->add( ig_data = lt_enh_spots
  +                     iv_name = 'ENH_SPOTS' ).         "Enhancement spots
  +        io_xml->add( ig_data = lt_comp_spots
  +                     iv_name = 'COMP_ENH_SPOTS' ).    "Composite enhancement spots
  +
  +      CATCH cx_enh_root INTO li_cx.
  +        lv_message = `Error occured while serializing ENSC: ` && li_cx->get_text( ).
  +        _raise lv_message.
       ENDTRY.
   
  +  ENDMETHOD.  "serialize
  +
  +  METHOD lif_object~exists.
  +    DATA: lv_spot_name TYPE enhspotcompositename,
  +          lv_message   TYPE string,
  +          li_cx        TYPE REF TO cx_root,
  +          li_spot_ref  TYPE REF TO if_enh_spot_composite.
  +
  +    lv_spot_name = ms_item-obj_name.
  +
  +    TRY.
  +        li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  +          lock = ''
  +          name = lv_spot_name ).
  +      CATCH cx_enh_root INTO li_cx.
  +        lv_message = `Error occured while checking ENSC: ` && li_cx->get_text( ).
  +        _raise lv_message.
  +    ENDTRY.
  +
       rv_bool = abap_true.
   
     ENDMETHOD.  "exists
   
     METHOD lif_object~delete.
  -    DATA: lv_spot_name    TYPE enhspotcompositename,
  -          lv_message      TYPE string,
  -          li_cx           TYPE REF TO cx_root,
  -          li_spot_ref     TYPE REF TO if_enh_spot_composite.
  +    DATA: lv_spot_name TYPE enhspotcompositename,
  +          lv_message   TYPE string,
  +          li_cx        TYPE REF TO cx_root,
  +          li_spot_ref  TYPE REF TO if_enh_spot_composite.
   
       lv_spot_name = ms_item-obj_name.
   
       TRY.
  -      li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  -        lock = 'X'
  -        name = lv_spot_name ).
  -
  -      IF li_spot_ref IS BOUND.
  -        li_spot_ref->if_enh_object~delete(
  -          nevertheless_delete = 'X'
  -          run_dark            = 'X' ).
  -      ENDIF.
  +        li_spot_ref = cl_enh_factory=>get_enhancement_spot_comp(
  +          lock = 'X'
  +          name = lv_spot_name ).
  +
  +        IF li_spot_ref IS BOUND.
  +          li_spot_ref->if_enh_object~delete(
  +            nevertheless_delete = 'X'
  +            run_dark            = 'X' ).
  +        ENDIF.
           li_spot_ref->if_enh_object~unlock( ).
  -    CATCH cx_enh_root INTO li_cx.
  -      lv_message = `Error occured while deleting ENSC: ` && li_cx->get_text( ).
  -      _raise lv_message.
  +      CATCH cx_enh_root INTO li_cx.
  +        lv_message = `Error occured while deleting ENSC: ` && li_cx->get_text( ).
  +        _raise lv_message.
       ENDTRY.
   
     ENDMETHOD.  "delete
  
positive.code:   METHOD change_sicf.
  
      DATA: lt_icfhndlist TYPE icfhndlist,
            lt_existing TYPE TABLE OF icfhandler,
            ls_icfserdesc TYPE icfserdesc.
  
      FIELD-SYMBOLS: <ls_existing> LIKE LINE OF lt_existing.
  
negative.code:     ENDIF.
  
      TRY.
          cl_enh_factory=>create_enhancement_spot(
            EXPORTING
              spot_name      = lv_spot_name
              tooltype       = cl_enh_tool_badi_def=>tooltype  "BADI_DEF
              dark           = 'X'
              compositename  = lv_parent
            IMPORTING
              spot           = li_spot_ref ).
  
          li_badidef_tool ?= li_spot_ref.
  
          li_badidef_tool->if_enh_object_docu~set_shorttext( lv_enh_shtext ).
  
          LOOP AT lt_enh_badi INTO ls_enh_badi.
            li_badidef_tool->add_badi_def( ls_enh_badi ).
          ENDLOOP.
  
          li_badidef_tool->if_enh_object~save( ).
          li_badidef_tool->if_enh_object~activate( ).
          li_badidef_tool->if_enh_object~unlock( ).
  
        CATCH cx_enh_root INTO li_cx.
          lv_message = `Error occured while deserializing EHNS: ` && li_cx->get_text( ).
          _raise lv_message.
      ENDTRY.
  
    ENDMETHOD.  "deserialize
  