Enhancement to Suppress Display of ChaRM-Generated Object Versions
Since we introduced Solution Manager ChaRM (Change and Request Management) as transport management tool, I was irritated because of the many additional versions of objects that are created, each time a test transport to the test system is released.
For unknown reasons, when a test transport is requested, ChaRM always creates a transport of copies containing _all_ objects from the main transport request (not only the changed ones from the newest transport task). This then triggers the creation of new versions of _all_ these objects, even if the majority of them has not been changed since the last version.
In our system landscape (and I suppose in many SAP customers’ system landscapes), the developments system is not equipped with good test data (let alone connections to all interface partners etc.), so we often have 10 test transports, before a change can be transported to the production the system. This, in turn, leads to a tenfold increase in the number of versions, which annoys me every time I use the version overview (see screenshot above).
After asking SAP for help with this issue (in this case without success), I helped myself by implementing an enhancement, which I want to share here. It suppresses the display of all ChaRM-generated versions that were created before the last production transport.
The enhancement is usually only needed in the development system, so you can implement it in a local ($)-package.
Position of the enhancement is include LSVRLF01, starting with line 70 (at the end of FORM READ_VERSIONS_FROM_DIR).
ENHANCEMENT 1 ZS_WB_REMOVE_TOC_VERSIONS. "active version get parameter id 'ZS_NO_TOC_VERSIONS' field data(z_show_versions). if sy-subrc = 0 and z_show_versions is not initial. select trkorr, trfunction from e070 for all entries in @vrs_dir_vrs where trkorr = @vrs_dir_vrs-korrnum into table @data(z_transports). check sy-subrc = 0. data z_is_after_last_p_transport type abap_bool value abap_true. loop at vrs_dir_vrs reference into data(z_version) where versno <> 0 and korrnum is not initial. read table z_transports with key trkorr = z_version->korrnum assigning field-symbol(<z_transport>). if sy-subrc = 0. if <z_transport>-trfunction <> 'T'. z_is_after_last_p_transport = abap_false. elseif z_is_after_last_p_transport = abap_false and <z_transport>-trfunction = 'T'. delete logvers_dir where versno = z_version->versno. delete vrs_dir_vrs using key loop_key. endif. endif. endloop. endif. ENDENHANCEMENT.
In addition to implementing this implicit enhancement, you need to create the GET/SET-Parameter. Developers can then set the parameter to X to achieve filtering of the unwanted versions.
Note: this enhancement works just for the classical SAPGUI workbench, not for ABAP in Eclipse. I might look for a possibility to bring the same feature to the version overview in Eclipse.