Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
MateuszAdamus
Active Contributor
3,112

Introduction


Hi and welcome to my next SAP Community blog post.

This time I come to you with an easy to implement enhancement, which will forever change your lives as ABAP developers. 😉

How many times have you struggled with the ToCs cluttering your list of transports in the Versions Management view? Now there is a solution to that issue. After implementing the steps shown below you will be able to filter out all ToCs and enjoy clean list of transports. Enjoy!

Implementation



  1. Enhance class CL_VERS_OBJTYPE_UI_ALV


    1. Add private attribute MV_HIDE_TOC with type FLAG and default value of ABAP_FALSE.


      MV_HIDE_TOC attribute




    2. Add public method TOGGLE_HIDE_TOC.


      TOGGLE_HIDE_TOC method



    3. Implement the method with code shown below.
      METHOD toggle_hide_toc.
      IF mv_hide_toc = abap_true.
      mv_hide_toc = abap_false.
      ELSE.
      mv_hide_toc = abap_true.
      ENDIF.
      ENDMETHOD.



    4. Add "Post-Exit" to standard method OBJ_VERSION_INFO and implement it as shown below.


      Post-Exit for OBJ_VERSION_INFO method



      METHOD ipo_yx_eo_vers_objtype_ui_alv~obj_version_info.
      *"------------------------------------------------------------------------*
      *" Declaration of POST-method, do not insert any comments here please!
      *"
      *"methods OBJ_VERSION_INFO
      *" importing
      *" !IV_RFCDEST type RFCDEST
      *" changing
      *" !ET_VERS type VRSD_TAB
      *" raising
      *" CX_VERS_UI_EXCEPTION .
      *"------------------------------------------------------------------------*

      CONSTANTS:
      lc_transport_number_local TYPE verskorrno VALUE 'LOCAL',
      lc_transport_type_toc TYPE trfunction VALUE 'T'.

      DATA:
      lv_tabix LIKE sy-tabix,
      ld_version TYPE REF TO vrsd,
      lt_trkorr TYPE SORTED TABLE OF trkorr WITH UNIQUE KEY table_line.

      CHECK core_object->mv_hide_toc = abap_true
      AND et_vers[] IS NOT INITIAL.

      SELECT trkorr
      INTO TABLE lt_trkorr
      FROM e070
      FOR ALL ENTRIES IN et_vers
      WHERE trkorr = et_vers-korrnum
      AND trfunction <> lc_transport_type_toc.

      LOOP AT et_vers REFERENCE INTO ld_version
      WHERE korrnum IS NOT INITIAL
      AND korrnum <> lc_transport_number_local.

      lv_tabix = sy-tabix.

      READ TABLE lt_trkorr TRANSPORTING NO FIELDS
      WITH TABLE KEY table_line = ld_version->korrnum.
      CHECK sy-subrc <> 0.

      DELETE et_vers INDEX lv_tabix.
      ENDLOOP.
      ENDMETHOD.




  2. Open report SAPLSVRS_UI.


    1. Go to screen 0101 and enter the USER_COMMAND_0101 module.
      At the end of the CASE statement (end of module) add modification as shown below.


      USER_COMMAND_0101 module modification



        WHEN 'TOC'.
      gr_vers_objtype_ui_alv->toggle_hide_toc( ).



    2. Go to GUI status "VER_STATUS" and enter edit mode. Add new function key "TOC" and populated its details.


      TOC function key




    3. Add the newly added function key to the application toolbar. Activate first the function key (Function Code button in the toolbar) and then the GUI status.


      Application toolbar with TOC function key






Enjoy!


Now you can easily hide/show ToCs when needed. Hope this helps!


Toolbar with the new button



List of transports w/ ToCs



List of transports w/o ToCs

21 Comments
Labels in this area