anchor.diff:  
     METHOD lif_object~changed_by.
   
  -    DATA: ls_last_changed TYPE thead.
  +    DATA: ls_last_changed TYPE tys_form_header.
   
       ls_last_changed = _get_last_changes( ms_item-obj_name ).
   
  
positive.code:     CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result.
    ENDMETHOD.
  
    METHOD _build_extr_from_header.
      r_result = ls_header-tdid && '_' && ls_header-tdspras.
    ENDMETHOD.
  
    METHOD _get_last_changes.
  
      DATA: lv_name              TYPE thead-tdname.
      DATA: lt_header            TYPE tyt_header.
      FIELD-SYMBOLS: <ls_header> TYPE LINE OF tyt_header.
  
      CLEAR es_last_changed.
  
      lv_name = ms_item-obj_name.
  
      CALL FUNCTION 'SELECT_TEXT'
        EXPORTING
          database_only = abap_true
          id            = '*'
          language      = '*'
          name          = lv_name
          object        = c_objectname_form
        TABLES
          selections    = lt_header
        EXCEPTIONS
          OTHERS        = 1
          ##fm_subrc_ok.                                                   "#EC CI_SUBRC
  
      LOOP AT lt_header ASSIGNING <ls_header>.
  
        IF <ls_header>-tdldate > es_last_changed-tdldate OR
           <ls_header>-tdldate = es_last_changed-tdldate AND
           <ls_header>-tdltime > es_last_changed-tdltime.
          es_last_changed = <ls_header>.
        ENDIF.
  
      ENDLOOP.
  
    ENDMETHOD.
  
  
negative.code: 
      CALL FUNCTION 'READ_FORM'
        EXPORTING
          form             = lv_form_name
          read_only_header = abap_true
        IMPORTING
          found            = rv_bool.
  
    ENDMETHOD.
  
  