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: 
stockbal
Participant

Dear community,

I am excited to present you with the newest updates for the DevEpos family of add-ons for the ABAP Development Tools in Eclipse (ADT).

Contents

First up I am going to guide you through the changes in the ABAP Search and Analysis Tools Plug-in. It has received the most updates by far in comparison to the other two, which is also indicated in the major version change to 2.0.0.

ABAP Object Search: Enhancing Efficiency in Every Search

Search Dialog with fresh new Design

New Object Search Dialog

The Search Dialog got a complete revamp. The previous dropdown control with the available search types has been replaced with a Table Viewer Control. This way, there is a clear separation between the type and the available input controls for the selected type.

The change of the control has also the added benefit to being able to show an accompanying icon next to the search type name.

Both the sections Query Input and Options will be dynamically enhanced with new controls, depending on the selected search type.

Metadata-Driven UI

The new Search Dialog is generated for the most part from metadata that is retrieved from the ABAP backend. In the previous version, introducing a new filter or a complete new search type always required updating both the UI and the ABAP backend. By moving most of the search configuration a UI update is now only required for special search requirements.

This has also the advantage that no Java or Plug-in development know-how is required to enhance the search. So if anyone want's to contribute a new search type, it is now easier than ever (a contribution guide is planned, but not yet available).

New General Filters for all Types

All existing and new Search Types have now access to the following filters:

NameDescription
applApplication Component
compSoftware Component
createdCreation Date
changedLast Changed Date
changedbyLast Changed By

Especially the new date filters allow for a convenient access to e.g. "All CDS Views that were changed between last-week and today".

Divide and Conquer

The previous search type Database Table/View is now split into two distinct types Database Table and View. The change was required to include new filters, many of which either belonged to Database Table or View but not both.

Exclusive Database Table Filters

NameDescription
enhcatEnhancement Category
includeUsages of include structures
storetypeStorage Type
bufferingBuffering Status
buffertypeBuffering Type
dataclassData Class
sizecatSize Category

Exclusive View Filters

NameDescription
primtabPrimary Table
basetabBase Table
typeView Class (Help, Database, ...)

The new Kids on the Block

Although the search type View could count as a new type as well, it is mostly just a spin off with some additional filters.

However there are also two complete new entries into the Object Search family, namely Method and Message. Especially the method search required extra consideration. Mostly because of the distributed metadata storage which was not always easy to access. I can honestly say that it is the most complex implementation of all search types yet 😅

Custom Options for Method/Class

The Mode for Hierarchy Filters option allows you to resolve the complete inheritence path of a single value for either the super or the intf filter, which makes it much easier if you want to search inside a complex inheritence tree.

The option Set Focus of Admin-Data Filters to Method Include switches the search for the filters ownercreatedchangedby and changed to the method implementation instead of the method definition. This neat little flag enables you to quickly find the code you changed in a concrete date period.

CDS Analyzer

As I neglected explaining the CDS Analyzer View in my past blog posts I think it's about time that it got some much needed attention.

In the next sections I will provide a little overview of all the available analysis types of this view.

Analyze your CDS Hierarchy with the Top-Down Analysis

This analysis type provides an easy way to analyze all the components of a single CDS view. It is similar to the ADT Dependency Analyzer, but much more condensed. It only loads the direct sub components during the initial data load. Further subnodes are only retrieved upon expanding a concrete child node.
With the new Filter on Selection option via the context menu you can hide sibling nodes to focus only on a certain subtree.

Top Down Analysis Sample

Also worth mentioning, if a table function is used somewhere in your CDS tree, the analysis will show you the underlying ABAP Implementation and you can directly navigate from the CDS Analyzer to the AMDP method.

Easily traverse your CDS Views usages with the Where Used in CDS Analysis

In the previous analysis we went from top to bottom. Now it is the other way around. The Where-Used in CDS Analysis allows you to look for usages of database entities in the SELECT parts or in Associations of a CDS View. As with the Top-Down analysis, initially only the direct references are loaded into the tree. Further references are lazyly loaded if a node is expanded.

This release also introduced a new feature that allows you to load the complete where-used-tree up to the deepest occurring usage. Additionally you can restrict the result to entities with API state released (this works also with recursive loading enabled).

Where Used Analysis Sample

Field Analysis

Next up is the Field Analysis which is basically a combination of the previous two analysis types, but on field instead of entity level.

In the below screenshot you can see the top-down (i.e. Field Origin) mode for a CDS field, which shows you the origin down to the database level.

Field Analysis Sample

If you switch to the bottom-up mode (i.e. Usages in Fields) you will see where a given CDS field is used in the field of other CDS views. Which by the way, is also possible for fields of database tables or views.

Analyze the metrics of your CDS Views

Last but not least we have the Used Entities Analysis which give you an aggregated overview of all the used entities in a given CDS from top to bottom. Additionally you see all kinds of metrics, like count of GROUP BY clauses or just how often an entity is used in the CDS tree.

Used Entitites Analysis Sample

New capabilities in CDS Analyzer

Before we get to some general updates of the CDS Analyzer view there is a feature that has been included in the analysis types Top Down Where-Used in CDS and  Used Entities Analysis.
Each of those analysis types now has a local text filter enhancement, for easy additional filtering. You can trigger it with Ctrl+F or via the view menu.

Independent of any analysis type there is a new dropdown action in the view toolbar that allows you to switch the current input of the view to another available analysis type.

Easy way to switch to other analysis type for current Input

The available analysis types in a given CDS Analyzer view can be controlled in a config dialog that is accessible via the same menu (see previous screenshot).

Combining the previous feature and the possibility to create multiple instances of a CDS Analyzer it is now easily possible to organize your workspace layout, so each analysis type is opened in a view that is best suited depending on the required space.

Organize your analyses in the best way possible

The new rename feature helps in identifying the available analysis types just by looking at the name of a certain CDS Anlyzer view.

ABAP Tags

Now we leave the ABAP Search and Analysis Tools and go on to the ABAP Tags plug-in. If you are not yet familiar with this plug-in, you can read more about it in the following blog posts:

A while ago ABAP Tags received the capability to add tags to local classes and interfaces of global classes. In this release you can do the same thing as well in Programs, Includes, Function Modules and Function Group Includes.

 

Locally tagged interface in Program Include

General Updates to Search Capabilities

Local Text Filter in Search Results

In addition to specific updates all searches got a local text filter, which you can use to further filter the results after they have been retrieved from the ABAP backend.

Text Filter in ABAP Object Search Result

Unified Search Favorites Management

Your most used search queries are now only 2 clicks away. The new plug-in Search Favorites uses the Eclipse extension mechanism to bring search queries from

  • ABAP Object Search
  • ABAP Tagged Object Search
  • ABAP Code Search

together and stores them in one easy accessible location. It get's automatically installed once you install one of the above features, and you can start to save your most used queries directly from the toolbar of a search result.

Search Favorites dropdown menu in main eclipse toolbar

Via an additionally dialog you are able to sort your favorites in whatever way you like. The icon in the front tells you right away which search page it belongs to.

You can also decide to hide (deselect) favorites that you don't use as often but don't want to lose or delete. Hidden Favorites will not be shown in the dropdown (see previous screenshot).

Dialog to manage Search Favorites

WARNING

In the previous version of ABAP Search and Analysis Tools there was already a favorites feature integrated, which has been removed in favour of the new unified search favorites plug-in.

The old favorite entries won't get migrated to the new location. This must be done manually for each favorite if you don't want to lose them. The old object search favorites can be found in your Eclipse workspace folder at \.metadata\.plugins\com.devepos.adt.searchandanalysistools.ui\favorites.xml.

Links

All of my Eclipse plug-ins can be installed from the Eclipse Marketplace

or directly via the underlying update sites

For the corresponding ABAP Backend(s), please visit the following abapGit repository on GitHub.

Final Words

As always, I hope these plug-ins will speed up your day-to-day work. If you encounter any issues or have an idea for an additional feature, feel free to open an issue on the appropriate GitHub repository.
If you are looking for a detailed overview of all the included capabilities, please visit the corresonding help sections in the Eclipse IDE Help, or just use the shortcut F1, which should direct you immediately to the correct plug-in help section.

That's all for now. Now it's your turn to update or install - or forward the post to your ABAP colleagues 😉

5 Comments
Labels in this area