anchor.diff:  
     METHOD zif_abapgit_object~delete.
   
  -    " RS_DD_INDX_DELETE calls the GUI. Someday we need a better solution
  -
  -    CALL FUNCTION 'RS_DD_INDX_DELETE'
  -      EXPORTING
  -        objname              = mv_name
  -        indexname            = mv_id
  -        extension            = abap_true
  -      EXCEPTIONS
  -        object_not_found     = 1
  -        object_not_specified = 2
  -        permission_failure   = 3
  -        action_cancelled     = 4
  -        OTHERS               = 5.
  -
  -    IF sy-subrc <> 0.
  -      zcx_abapgit_exception=>raise( |Error from RS_DD_INDX_DELETE { sy-subrc }| ).
  -    ENDIF.
  +    " Reimplement FM RS_DD_INDX_DELETE as it calls the UI
  +
  +    DATA: lv_enqueue      TYPE ddenqs,
  +          lv_protname     TYPE tstrf01-file,
  +          lv_del_concname LIKE lv_enqueue-objname,
  +          lv_concname     TYPE rsdxx-objname,
  +          lv_transp_key   TYPE trkey,
  +          ls_e071         TYPE e071,
  +          lv_clm_corrnum  TYPE e070-trkorr,
  +          lv_message      TYPE string.
  +
  +    CONCATENATE mv_name '-' mv_id INTO lv_concname.
  +    lv_enqueue-objtype = c_objtype_extension_index.
  +
  +    CALL FUNCTION 'INT_INDX_DEL_LOCK'
  +      EXPORTING
  +        i_trobjtype        = lv_enqueue-objtype
  +        i_tabname          = mv_name
  +        i_indexname        = mv_id
  +      EXCEPTIONS
  +        not_executed       = 1
  +        error_occured      = 2
  +        permission_failure = 3
  +        OTHERS             = 4.
  +
  +    IF sy-subrc <> 0.
  +      zcx_abapgit_exception=>raise_t100( ).
  +    ENDIF.
  +
  +    lv_enqueue-objname = mv_name.
  +    lv_enqueue-secname = mv_id.
  +    CALL FUNCTION 'RS_CORR_INSERT'
  +      EXPORTING
  +        object        = lv_enqueue
  +        object_class  = 'DICT'
  +        mode          = 'DELETE'
  +      IMPORTING
  +        transport_key = lv_transp_key
  +      EXCEPTIONS
  +        OTHERS        = 1.
  +
  +    IF sy-subrc <> 0.
  +      " & was not deleted (correction entry not possible or canceled)
  +      MESSAGE s015(e2) WITH lv_concname INTO lv_message.
  +      zcx_abapgit_exception=>raise_t100( ).
  +    ENDIF.
  +
  +    CALL FUNCTION 'DD_LOGNPROT_NAME_GET'
  +      EXPORTING
  +        task        = 'DEL'
  +        obj_type    = lv_enqueue-objtype
  +        obj_name    = lv_enqueue-objname
  +        ind_name    = lv_enqueue-secname
  +      IMPORTING
  +        protname    = lv_protname
  +      EXCEPTIONS
  +        input_error = 0.
  +
  +    PERFORM logdelete IN PROGRAM rddu0001 USING lv_protname.
  +
  +    lv_del_concname = lv_enqueue-objname.
  +    lv_del_concname+16 = lv_enqueue-secname.
  +    CALL FUNCTION 'DD_OBJ_DEL'
  +      EXPORTING
  +        object_name = lv_del_concname
  +        object_type = lv_enqueue-objtype
  +        del_state   = 'M'
  +      EXCEPTIONS
  +        OTHERS      = 1.
  +
  +    IF sy-subrc <> 0.
  +      RETURN.
  +    ENDIF.
  +
  +    CALL FUNCTION 'DD_DD_TO_E071'
  +      EXPORTING
  +        type          = lv_enqueue-objtype
  +        name          = lv_enqueue-objname
  +        id            = lv_enqueue-secname
  +      IMPORTING
  +        obj_name      = ls_e071-obj_name
  +      EXCEPTIONS
  +        illegal_input = 1
  +        OTHERS        = 2.
  +
  +    IF sy-subrc <> 0.
  +      " Internal error & in & (contact person in charge)
  +      MESSAGE i008(e2) WITH 'DD_DD_TO_E071' 'RS_DD_INDX_DELETE' INTO lv_message.
  +      zcx_abapgit_exception=>raise_t100( ).
  +    ENDIF.
  +
  +    ls_e071-object = lv_enqueue-objtype.
  +    CALL FUNCTION 'RS_DELETE_FROM_WORKING_AREA'
  +      EXPORTING
  +        object                 = ls_e071-object
  +        obj_name               = ls_e071-obj_name
  +        immediate              = 'X'
  +        actualize_working_area = 'X'.
  +
  +    xinx_delete_docu(
  +        iv_objname = mv_name
  +        iv_id      = mv_id ).
  +
  +    CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
  +      EXPORTING
  +        object    = ls_e071-obj_name
  +        operation = 'DELETE'
  +        type      = c_objtype_extension_index.
  +
  +    IF mv_id(1) CA 'YZ'.
  +      CALL FUNCTION 'CLM_INDX_MODIFICATION_DELETE'
  +        EXPORTING
  +          idxobj_name   = lv_enqueue-objname
  +          idx_type      = lv_enqueue-objtype
  +          idx_name      = mv_id
  +          transport_key = lv_transp_key
  +          corrnum       = lv_clm_corrnum.
  +    ENDIF.
  +
  +    CALL FUNCTION 'RS_DD_DEQUEUE'
  +      EXPORTING
  +        objtype = lv_enqueue-objtype
  +        objname = lv_enqueue-objname
  +        secname = lv_enqueue-secname.
   
     ENDMETHOD.
   
  
positive.code: 
    PROTECTED SECTION.
    PRIVATE SECTION.
      TYPES: BEGIN OF ty_extension_index,
               dd12v   TYPE dd12v,
               t_dd17v TYPE STANDARD TABLE OF dd17v
                            WITH NON-UNIQUE DEFAULT KEY,
             END OF ty_extension_index.
      DATA:
        mv_name TYPE ddobjname,
        mv_id   TYPE ddobjectid.
  
  ENDCLASS.
  
  
  
  CLASS ZCL_ABAPGIT_OBJECT_XINX IMPLEMENTATION.
  
  
    METHOD constructor.
  
negative.code:                  ig_data = ls_extension_index ).
  
    ENDMETHOD.
  
    METHOD xinx_delete_docu.
  
      DATA: lv_docuid  TYPE dokhl-id,
            lv_doctype TYPE dokhl-typ,
            lv_docname TYPE dokhl-object.
  
      lv_docname    = iv_objname.
      lv_docname+30 = iv_id.
      CALL FUNCTION 'INTERN_DD_DOCU_ID_MATCH'
        EXPORTING
          p_trobjtype  = c_objtype_extension_index
        IMPORTING
          p_docu_id    = lv_docuid
          p_doctype    = lv_doctype
        EXCEPTIONS
          illegal_type = 1
          OTHERS       = 2.
  
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
  
      CALL FUNCTION 'DOKU_DELETE_ALL'
        EXPORTING
          doku_id            = lv_docuid
          doku_object        = lv_docname
          doku_typ           = lv_doctype
          suppress_authority = 'X'
          suppress_enqueue   = 'X'
          suppress_transport = 'X'
        EXCEPTIONS
          no_docu_found      = 1
          OTHERS             = 2.
  
    ENDMETHOD.
  
  ENDCLASS.
  