anchor.diff:      serialize_texts( io_xml ).
   
     ENDMETHOD.
  -
  -  METHOD serialize_texts.
  -
  -    DATA: lv_msg_id     TYPE rglif-message_id,
  -          lt_t100_texts TYPE tt_t100_texts,
  -          lt_t100t      TYPE TABLE OF t100t,
  -          lt_i18n_langs TYPE TABLE OF langu.
  -
  -    lv_msg_id = ms_item-obj_name.
  -
  -    " Collect additional languages
  -    " Skip master lang - it has been already serialized
  -    SELECT DISTINCT sprsl AS langu INTO TABLE lt_i18n_langs
  -      FROM t100t
  -      WHERE arbgb = lv_msg_id
  -      AND   sprsl <> mv_language.       "#EC CI_BYPASS "#EC CI_GENBUFF.
  -
  -    SORT lt_i18n_langs ASCENDING.
  -
  -    IF lines( lt_i18n_langs ) > 0.
  -
  -      SELECT * FROM t100t INTO CORRESPONDING FIELDS OF TABLE lt_t100t
  -        WHERE sprsl <> mv_language
  -        AND arbgb = lv_msg_id.                          "#EC CI_GENBUFF
  -
  -      SELECT * FROM t100 INTO CORRESPONDING FIELDS OF TABLE lt_t100_texts
  -        FOR ALL ENTRIES IN lt_i18n_langs
  -        WHERE sprsl = lt_i18n_langs-table_line
  -        AND arbgb = lv_msg_id
  -        ORDER BY PRIMARY KEY.             "#EC CI_SUBRC "#EC CI_GENBUFF
  -
  -      SORT lt_t100t BY sprsl ASCENDING.
  -      SORT lt_t100_texts BY sprsl msgnr ASCENDING.
  -
  -      io_xml->add( iv_name = 'I18N_LANGS'
  -                   ig_data = lt_i18n_langs ).
  -
  -      io_xml->add( iv_name = 'T100T'
  -                   ig_data = lt_t100t ).
  -
  -      io_xml->add( iv_name = 'T100_TEXTS'
  -                   ig_data = lt_t100_texts ).
  -
  -    ENDIF.
  -
  -  ENDMETHOD.
  -
  -  METHOD deserialize_texts.
  -
  -    DATA: lv_msg_id     TYPE rglif-message_id,
  -          ls_t100       TYPE t100,
  -          lt_t100t      TYPE TABLE OF t100t,
  -          lt_t100_texts TYPE tt_t100_texts,
  -          lt_t100u      TYPE TABLE OF t100u.
  -
  -    FIELD-SYMBOLS: <ls_t100_text> TYPE ty_t100_texts.
  -
  -
  -    lv_msg_id = ms_item-obj_name.
  -
  -    SELECT * FROM t100u INTO TABLE lt_t100u
  -      WHERE arbgb = lv_msg_id ORDER BY PRIMARY KEY.     "#EC CI_GENBUFF
  -
  -    io_xml->read( EXPORTING iv_name = 'T100_TEXTS'
  -                  CHANGING  cg_data = lt_t100_texts ).
  -
  -    io_xml->read( EXPORTING iv_name = 'T100T'
  -                  CHANGING  cg_data = lt_t100t ).
  -
  -    MODIFY t100t FROM TABLE lt_t100t.                     "#EC CI_SUBRC
  -
  -    LOOP AT lt_t100_texts ASSIGNING <ls_t100_text>.
  -      "check if message exists
  -      READ TABLE lt_t100u TRANSPORTING NO FIELDS
  -        WITH KEY arbgb = lv_msg_id msgnr = <ls_t100_text>-msgnr BINARY SEARCH.
  -      CHECK sy-subrc = 0. "if original message doesn't exist no translations added
  -
  -      MOVE-CORRESPONDING <ls_t100_text> TO ls_t100.
  -      ls_t100-arbgb = lv_msg_id.
  -      MODIFY t100 FROM ls_t100.                           "#EC CI_SUBRC
  -      IF sy-subrc <> 0.
  -        zcx_abapgit_exception=>raise( 'MSAG: Table T100 modify failed' ).
  -      ENDIF.
  -    ENDLOOP.
  -
  -  ENDMETHOD.
  -
  -  METHOD zif_abapgit_object~compare_to_remote_version.
  -    CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
  -  ENDMETHOD.
  -
  -  METHOD zif_abapgit_object~is_locked.
  -
  -    DATA: lv_argument TYPE seqg3-garg.
  -
  -    lv_argument   = |{ ms_item-obj_name }|.
  -    OVERLAY lv_argument WITH '                     '.
  -    lv_argument = lv_argument && '*'.
  -
  -    rv_is_locked = exists_a_lock_entry_for( iv_lock_object = |ES_MSGSI|
  -                                            iv_argument    = lv_argument ).
  -
  -  ENDMETHOD.
  -
  -
  -  METHOD serialize_longtexts_msag.
  -
  -    DATA: lv_object  TYPE dokhl-object,
  -          lt_objects TYPE STANDARD TABLE OF dokhl-object
  -                          WITH NON-UNIQUE DEFAULT KEY,
  -          lt_dokil   TYPE zif_abapgit_definitions=>tty_dokil.
  -
  -    FIELD-SYMBOLS: <ls_t100>  TYPE t100.
  -
  -    IF lines( it_t100 ) = 0.
  -      RETURN.
  -    ENDIF.
  -
  -    LOOP AT it_t100 ASSIGNING <ls_t100>.
  -
  -      lv_object = <ls_t100>-arbgb && <ls_t100>-msgnr.
  -      INSERT lv_object INTO TABLE lt_objects.
  -
  -    ENDLOOP.
  -
  -    SELECT * FROM dokil
  -             INTO TABLE lt_dokil
  -             FOR ALL ENTRIES IN lt_objects
  -             WHERE id     = 'NA'
  -             AND   object = lt_objects-table_line.
  -
  -    serialize_longtexts( io_xml   = io_xml
  -                         it_dokil = lt_dokil ).
  -
  -  ENDMETHOD.
  -
   ENDCLASS.
  
positive.code: 
    ENDMETHOD.
  
    METHOD zif_abapgit_object~get_metadata.
      rs_metadata = get_metadata( ).
    ENDMETHOD.
  
    METHOD zif_abapgit_object~exists.
  
      DATA: lv_arbgb TYPE t100a-arbgb.
  
  
      SELECT SINGLE arbgb FROM t100a INTO lv_arbgb
        WHERE arbgb = ms_item-obj_name.                   "#EC CI_GENBUFF
      rv_bool = boolc( sy-subrc = 0 ).
  
    ENDMETHOD.
  
    METHOD zif_abapgit_object~jump.
  
      CALL FUNCTION 'RS_TOOL_ACCESS'
        EXPORTING
          operation     = 'SHOW'
          object_name   = ms_item-obj_name
          object_type   = 'MSAG'
          in_new_window = abap_true.
  
    ENDMETHOD.
  
    METHOD zif_abapgit_object~delete.
  
  
negative.code:     ENDIF.
  
    ENDMETHOD.
  
  
    METHOD zif_abapgit_object~deserialize.
  * fm RPY_MESSAGE_ID_INSERT almost works, but not in older versions
  