anchor.diff:      ls_obj_old-objtype = wdyn_limu_component_view.
       ls_obj_old-objname = ls_key.
   
  -    APPEND INITIAL LINE TO ls_obj_old-wdyv-defin ASSIGNING <ls_def>.
  -    MOVE-CORRESPONDING is_view-definition TO <ls_def>.
  +    append initial line to ls_obj_old-wdyv-defin assigning <ls_def>.
  +    move-corresponding is_view-definition to <ls_def>.
   
       ls_obj_old-wdyv-descr = is_view-descriptions.
       ls_obj_old-wdyv-vcont = is_view-view_containers.
  
positive.code: *----------------------------------------------------------------------*
  *
  *----------------------------------------------------------------------*
  CLASS lcl_object_wdyn DEFINITION INHERITING FROM lcl_objects_super FINAL.
  
    PUBLIC SECTION.
      INTERFACES lif_object.
      ALIASES mo_files FOR lif_object~mo_files.
  
    PRIVATE SECTION.
  
      DATA:
        mt_components TYPE TABLE OF wdy_ctlr_compo_vrs,
        mt_sources    TYPE TABLE OF wdy_ctlr_compo_source_vrs.
  
      METHODS:
        get_limu_objects
          RETURNING VALUE(rt_objects) TYPE wdy_md_transport_keys,
        read
          RETURNING VALUE(rs_component) TYPE wdy_component_metadata
          RAISING   lcx_exception,
        read_controller
          IMPORTING is_key               TYPE wdy_md_controller_key
          RETURNING VALUE(rs_controller) TYPE wdy_md_controller_meta_data
          RAISING   lcx_exception,
        read_definition
          IMPORTING is_key               TYPE wdy_md_component_key
          RETURNING VALUE(rs_definition) TYPE wdy_md_component_meta_data
          RAISING   lcx_exception,
        read_view
          IMPORTING is_key         TYPE wdy_md_view_key
          RETURNING VALUE(rs_view) TYPE wdy_md_view_meta_data
          RAISING   lcx_exception,
        recover_controller
          IMPORTING is_controller TYPE wdy_md_controller_meta_data
          RAISING   lcx_exception,
        recover_definition
          IMPORTING is_definition TYPE wdy_md_component_meta_data
          RAISING   lcx_exception,
        recover_view
          IMPORTING is_view TYPE wdy_md_view_meta_data
          RAISING   lcx_exception,
        delta_controller
          IMPORTING is_controller   TYPE wdy_md_controller_meta_data
          RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
          RAISING   lcx_exception,
        delta_definition
          IMPORTING is_definition   TYPE wdy_md_component_meta_data
          RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
          RAISING   lcx_exception,
        delta_view
          IMPORTING is_view         TYPE wdy_md_view_meta_data
          RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
          RAISING   lcx_exception,
        add_fm_param_exporting
          IMPORTING name            TYPE string
                    value           TYPE any
          RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
        add_fm_param_tables
          IMPORTING name            TYPE string
          CHANGING  value           TYPE ANY TABLE
          RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
        add_fm_exception
          IMPORTING name                TYPE string
                    value               TYPE i
          RETURNING VALUE(rs_exception) TYPE abap_func_excpbind.
  
  ENDCLASS.                    "lcl_object_wdyn DEFINITION
  
  *----------------------------------------------------------------------*
  *       CLASS lcl_object_wdyn IMPLEMENTATION
  *----------------------------------------------------------------------*
  *
  *----------------------------------------------------------------------*
  CLASS lcl_object_wdyn IMPLEMENTATION.
  
    METHOD lif_object~has_changed_since.
      rv_changed = abap_true.
    ENDMETHOD.  "lif_object~has_changed_since
  
    METHOD lif_object~changed_by.
      rv_user = c_user_unknown. " todo
    ENDMETHOD.
  
    METHOD lif_object~get_metadata.
      rs_metadata = get_metadata( ).
    ENDMETHOD.                    "lif_object~get_metadata
  
    METHOD lif_object~exists.
  
      DATA: lv_component_name TYPE wdy_component-component_name.
  
  
      SELECT SINGLE component_name FROM wdy_component
        INTO lv_component_name
        WHERE component_name = ms_item-obj_name
        AND version = 'A'.                                "#EC CI_GENBUFF
      rv_bool = boolc( sy-subrc = 0 ).
  
    ENDMETHOD.                    "lif_object~exists
  
    METHOD delta_definition.
  
      DATA: ls_key       TYPE wdy_md_component_key,
            lv_found     TYPE abap_bool,
            ls_obj_new   TYPE svrs2_versionable_object,
            li_component TYPE REF TO if_wdy_md_component,
            ls_obj_old   TYPE svrs2_versionable_object.
  
  
      ls_key-component_name = is_definition-definition-component_name.
  
      lv_found = cl_wdy_md_component=>check_existency( ls_key-component_name ).
      IF lv_found = abap_false.
        TRY.
            cl_wdy_md_component=>create_complete(
              EXPORTING
                name      = ls_key-component_name
              IMPORTING
                component = li_component ).
            li_component->save_to_database( ).
            li_component->unlock( ).
          CATCH cx_wdy_md_exception.
            lcx_exception=>raise( 'error creating dummy component' ).
        ENDTRY.
      ENDIF.
  
      ls_obj_new-objtype = wdyn_limu_component_definition.
      ls_obj_new-objname = ls_key-component_name.
  
negative.code:     ls_obj_old-wdyd-ctuse = is_definition-ext_ctlr_usages.
      ls_obj_old-wdyd-ctmap = is_definition-ext_ctx_mappings.
  
      call function 'SVRS_MAKE_OBJECT_DELTA'
        exporting
          obj_old              = ls_obj_new
          obj_new              = ls_obj_old
        changing
          delta                = rs_delta
        exceptions
          inconsistent_objects = 1.
      if sy-subrc <> 0.
        lcx_exception=>raise( 'error from SVRS_MAKE_OBJECT_DELTA' ).
      endif.
  
    endmethod.                    "delta_definition
  
    method delta_controller.
  
      data: li_controller type ref to if_wdy_md_controller,
            lv_found      type abap_bool,
            ls_key        type wdy_md_controller_key,
            ls_obj_new    type svrs2_versionable_object,
            ls_obj_old    type svrs2_versionable_object.
  
      field-symbols: <ls_component>            like line of mt_components,
                     <ls_source>               like line of mt_sources,
                     <lt_ctrl_exceptions>      type any table,
                     <lt_ctrl_exception_texts> type any table,
                     <excp>                    type any table,
                     <excpt>                   type any table.
  
  
      ls_key-component_name = is_controller-definition-component_name.
  