ABAP Blog Posts
cancel
Showing results for 
Search instead for 
Did you mean: 
yury_sichov
Active Contributor
1,365

There are several ways to check and compare code versions for SAP ABAP: the old classic method in the SAP GUI, a very good option in Eclipse, and the industry standard in AbapGit or on GitHub. These are all useful, but some activities are monotonous and take more time than desired.

AVE.png

 

Therefore, a new program Abap Versions Eplorer was developed with faster access to modified objects by program/include/FM, class, TR/TASK, or package, with multiple display and filtering options. An additional "Who is Blame" feature was also implemented to identify the actual authors of the changes.

Pick one of the available object types to view its versions. Input the name and press Enter. As this is a multi-window application, pressing Enter again will launch a new window. You can open as many windows as your monitor can handle without getting claustrophobic ).

селскрин.png

There are several options for layout:

Side bar - by default, when data tables are on the left side, code is on the right side. It is good for Inline diff.

side.png

Or top-down layout - when code is below data tables and enough wide to show 2-pane diff.

top.png

We can hide tables in any layout by pressing toggle button "Maximize view" to explore code  and return back by pressing again toogle button "Standard View".

max.png

Almost all initial setting we can change by toogle buttons panel.

toolbar1.png

toolbar2.png

Show Diff - html diff view

Show Vers - usual GUI  code view for a single version.

Compact - show only changes

Full - show all lines + diff

The Blame function is useful for identifying the authors of changes.  Switched off by default as it is a bit time consuming.

blame.png

By default we can compare double-clicked version with the previous one. But If we want to compare any version we should toogle Diff Pref to Diff any

prev.png

choose a Base version and  press "Set Base" button,  then double-click any version to compare with the base one.

base.png

 

For example base version 16 was compared with v12.

any.png

So anyone can use/test this Version explorer. In case there is no AbapGit just copy and paste standalone version.

And as a bonus HTML/JS local comparer

 

5 Comments
Atul_Joshi85
Contributor

@yury_sichov   This is a very useful tool — especially for anyone who works across multiple transports, TOCs, or large development teams. The ability to quickly navigate versions, compare changes, and even identify authors through the “Who is Blame” feature is a big productivity boost. The multi‑window approach and the option to switch between inline and 2‑pane diff views also make real code review much easier than the classic SAP GUI versioning tools.

One thing I’m curious about as teams adopt this more widely: Have you noticed any performance considerations when exploring very large objects or classes with many includes and methods?

In some systems, version histories can be quite long, and I’m wondering if there are recommended limits, caching strategies, or settings that help keep the tool responsive.

Would love to hear your experience on this.

yury_sichov
Active Contributor

@Atul_Joshi85 Thanks! Of course performance probably could be better. (Diff was developed by Claude Opus/Sonnet 4.6) For code size about 10 thousands row diff build can take about several minutes especially with Blame checkbox. And the other porblem - is a large html also take time to render. So for objects > 10 000 rows onlt "Compact" view (only diff) is possible. For classes there are no problems as all methods are in separate includes. Performance issues can be only for standalones programs wihout includes.

yury_sichov
Active Contributor

Added: Per-instance cache for rendered diff HTML. Key: object type + name + versno old/new + flags (blame, two_pane, compact, debug). On hit — returns stored HTML immediately, skipping source load, diff and blame computation. On miss — computes as usual and stores the result. Cache is invalidated automatically when the popup window closes.

zfiori
Participant

Hi Community,

"

Pick one of the available object types to view its versions. Input the name and press Enter. As this is a multi-window application, pressing Enter again will launch a new window. You can open as many windows as your monitor can handle without getting claustrophobic ).

"

 

Thanks for your selfless sharing again, it really help us a lot.

🙂

 

Regards,

ZFiori.

custandcode
Explorer

pretty nice! congrats! 🤗