anchor.diff:    PUBLIC SECTION.
       INTERFACES lif_object.
       ALIASES mo_files FOR lif_object~mo_files.
  +
  +  PROTECTED SECTION.
  +    METHODS open_adt_stob
  +      IMPORTING iv_ddls_name TYPE tadir-obj_name
  +      RAISING   lcx_exception.
   
   ENDCLASS.                    "lcl_object_dtel DEFINITION
   
  
positive.code: 
    METHOD lif_object~serialize.
  
      DATA: li_ddl    TYPE REF TO object,
            lr_data   TYPE REF TO data.
  
      FIELD-SYMBOLS: <ls_data>  TYPE any,
                     <lv_field> TYPE any.
  
negative.code:     CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result.
    ENDMETHOD.                    "lif_object~compare_to_remote_version
  
    METHOD open_adt_stob.
  
      DATA: lv_adt_link               TYPE string.
      DATA: lv_obj_name               TYPE e071-obj_name.
      DATA: li_object                 TYPE REF TO cl_wb_object.
      DATA: li_adt                    TYPE REF TO object.
      DATA: li_adt_uri_mapper         TYPE REF TO object.
      DATA: li_adt_objref             TYPE REF TO object.
      DATA: lr_data                   TYPE REF TO data.
      DATA: li_ddl                    TYPE REF TO object.
      FIELD-SYMBOLS: <lt_ddnames>     TYPE STANDARD TABLE.
      FIELD-SYMBOLS: <lt_entity_view> TYPE STANDARD TABLE.
      FIELD-SYMBOLS: <ls_ddnames>     TYPE any.
      FIELD-SYMBOLS: <ls_entity_view> TYPE any.
      FIELD-SYMBOLS: <lv_ddname>      TYPE any.
      FIELD-SYMBOLS: <lv_ddlname>     TYPE any.
      FIELD-SYMBOLS: <ls_uri>         TYPE string.
  
      TRY.
  
          CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
          ASSIGN lr_data->* TO <lt_ddnames>.
  
          CREATE DATA lr_data LIKE LINE OF <lt_ddnames>.
          ASSIGN lr_data->* TO <ls_ddnames>.
  
          CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
          ASSIGN lr_data->* TO <lt_entity_view>.
  
          CREATE DATA lr_data LIKE LINE OF <lt_entity_view>.
          ASSIGN lr_data->* TO <ls_entity_view>.
  
          CLEAR <lt_ddnames>.
          ASSIGN COMPONENT 'NAME' OF STRUCTURE <ls_ddnames> TO <lv_ddname>.
          <lv_ddname> = iv_ddls_name.
          INSERT <ls_ddnames> INTO TABLE <lt_ddnames>.
  
  
  
          CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
            RECEIVING
              handler = li_ddl.
  
          CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
            EXPORTING
              ddnames        = <lt_ddnames>
            IMPORTING
              view_of_entity = <lt_entity_view>.
  
          READ TABLE <lt_entity_view> ASSIGNING <ls_entity_view> INDEX 1.
          IF sy-subrc = 0.
            ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE <ls_entity_view> TO <lv_ddlname>.
  
            lv_obj_name = <lv_ddlname>.
  
            li_object = cl_wb_object=>create_from_transport_key( p_object = 'DDLS' p_obj_name = lv_obj_name ).
  
            CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE')
              RECEIVING
                result = li_adt.
  
            CALL METHOD LI_ADT->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER')
              RECEIVING
                result = li_adt_uri_mapper.
  
            CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF')
              EXPORTING
                wb_object = li_object
              RECEIVING
                result    = li_adt_objref.
  
            ASSIGN ('li_adt_objref->ref_data-uri') TO <ls_uri>.
  
            CONCATENATE 'adt://' sy-sysid <ls_uri> INTO lv_adt_link.
  
            cl_gui_frontend_services=>execute( EXPORTING  document = lv_adt_link
                                               EXCEPTIONS OTHERS   = 1 ).
  
          ENDIF.
  
        CATCH cx_root.
          lcx_exception=>raise( 'DDLS Jump Error' ).
      ENDTRY.
  
    ENDMETHOD.                    "open_adt_stob
  
  ENDCLASS.                    "lcl_object_view IMPLEMENTATION
  