ABAP Tools - Work with Eclipse (CDS Analysis)
In the complex world of CDS views, it is important to have the right tool at hand to ensure an analysis of the structures and data sources.
Table of contents
In this article we want to take a look at the tools that we can use to easily analyze CDS views and their complexity.
Introduction
Core Data Services is the new modeling layer without having to access the base tables directly. This allows SAP some freedom when expanding the tables and data in the core and represents a certain security for the customer, so that all in-house developments still work properly even after an upgrade.
Outlines
The standard view "Outlines" already provides you with the first important information about working with Core Data Services. Here you get a quick overview of the view, the main source, the associations and the elements that are available in the view.
At the same time, you can navigate through the individual entries and end up in the right place in the view. If you navigate on an element, i.e. a field of the CDS view, all suitable annotations for the field are marked in addition to the actual field.
Hint: If there are too many elements in a view, you can sort them alphabetically to find the right element, otherwise the elements are sorted by definition.
CDS Navigator
The CDS Navigator is the first tool that is most likely not displayed by default. You can display this view via the menu item "Window --> Show View --> Other...". We can recommend the position right next to the outlines, since you need these two windows from time to time for an overview.
In the basic view, the tool offers you the following overview:
- Extensions - Extensions to the view, usually performed by the customer and to expand fields and functionality.
- Metadata Extensions - extension of the annotations. Is used in many cases for outsourcing the UI annotations, otherwise the view can become confusing.
- Access Controls - Objects that take over the authorization check of the view. This ensures that the data can only be viewed by authorized persons.
- Secondary Objects - Other objects and properties associated with the view, such as an activated search.
In the menu bar of the view you will find various functions that can help you with the analysis. These are briefly listed here again.
From left to right: Link with Editor, Refresh, Dependency Analyzer, Dictionary Log, Activation Graph, Active Annotations, Annotation Propagation.
Dependency Analyzer
When you click on the function, a new view is loaded in the editor. This consists of three tabs that can be used to display various dependencies and complexities.
SQL Dependency Tree
List of relationships to other CDS views and tables, based on the currently analyzed view. You will also receive information on the relationship (from or join), type of view and more.
SQL Dependency Graph
The graph is the graphical presentation of the relationships and dependencies and represents all objects in a tree. With the button at the top right you can also switch between CDS name and SQL view name if it is still the "old" VIEWS.
Complexity Metcris
The complexity is crucial for the performance of a view, but also for access and queries when it comes to calculated fields, for example. The list in this section can therefore provide information on performance.
Active Annotations
In many cases it can be important when analyzing where certain annotations in a view come from when analyzing behavior. The active annotations give you information about the individual elements and their active annotations. You should note that contrary to the definition in the view, the information appears under the elements.
In the "Origin Data Source" column you can find information about where the active annotation came from. In the example shown, some annotations come from the analyzed view, one from the interface view and some from the table.
Conclusion
The ABAP Development Tools offer you various tools for analyzing the complexity and structure of core data services. When it comes to working with CDS views, the ADTs are leading anyway and only here can new core data services be defined.