The Append-structure concept is used in SE11 to add additional fields to the preexisting table structure. In a same vein, let’s say a CDS-View shows 8 fields from a table or join of multiple tables, and we would like to show 3 more fields from the same data. In that scenario, we can extend the CDS view to show all 11 fields.
But in real projects, every thing is not happy path. You will always find some exceptions which no one teaches you in the training. You learn it the hard way.
If your base CDS-view contains Aggregate-functions like: SUM(), MIN(), MAX(), then during view-extension, it gives below error and you’ll not be able to activate the Extended-View.
In this tutorial, we will discuss how to resolve this error and make your extended-view work. First, let’s design our base-view and extended view.
I have utilized the SFLIGHT table to create a rudimentary ZCDS_FLIGHT CDS-view. Using the aggregate-function SUM(), we are including the following information: the aircraft type (planetype) and the total amount of current bookings (paymentsum) for that specific aircraft type. In this case, the view-name that will be generated in the DDIC and HANA databases is ZCDS_FLIGHT_VIEW. Let’s now expand this CDS-View.
You must choose the Extend-view option when creating an extension in order to construct a CDS extension. Use the screenshot as a guide.
You will receive this extended-view skeleton.
Let’s adjust a few things to meet our needs:
A new field called SEATSOCC (Occupied seats in Economy class) has been added. Since group by clause is used in the base view, it is required here. An error stating that “Parent view contains aggregate function and extension is not possible” appears when we try to activate this extended view. In order to fix this mistake, we must add the annotation ApapCatalog.viewEnhancementCategory to the Parent-View[]. The method for extending the view with CDS view extensions is indicated in this annotation. This array can include the following 4 enums: #GROUP_BY, #NONE, #PROJECTION_LIST, and #UNION.
The extension of fields that have already been chosen is made possible by #PROJECTION_LIST. Aggregated or non-aggregated components may be added to a SELECT list using an aggregated expression and the related modifications of the GROUP-BY clause are allowed with the aid of #GROUP_BY. For our scenario, these two enums are adequate.
The UNION clause can be used with #UNION, and further extensions are prohibited with enum #NONE.
The parent CDS-view “ZCDS_FLIGHT” will appear as follows upon modification:
Changed Parent-View
That’s all; both views are now operational after being activated. This is the finished product:
We are just getting started. We shall continue in order to gain a deeper comprehension of CDS Performance Tuning. Please keep watching.
you may be interested in this blog here :-
Oracle database structure diagram
Boosting Customer Service with Salesforce and SharePoint Integration