How to deal with “Not released” predefined VDM in S/4HANA
Purpose of this blog
This blog is about the ways how to deal with unreleased Virtual Data Model (VDM) in S/4HANA.
In S/4HANA, ABAP CDS View is used as the data source for analytical application, and VDM is the predefined View for business objects in S/4HANA created with ABAP CDS View. By using VDM instead of creating custom CDS View, development effort could be optimized. It can be used as parts of your custom CDS View.
Predefined VDM has the status of Released or Not Released (C1 contract). In the unreleased predefined VDM, the design is subject to change in future releases, and current designs are not guaranteed by SAP, e.g. field name and the keys would be changed, fields would be removed, the view would be removed. It is like an unreleased Function Module. In addition, only the released CDS Views can be used for Key User Extensibility Tools like Custom CDS View and Custom Analytical Queries.
This blog argues the ways to deal with the unreleased VDM in S/4HANA.
Stability Contracts for CDS Views
There are 3 types of Release status (Stability Contracts) for CDS Views, Contract for key user field extension (C0), Contract for system-internal use (C1) and Contract for remote API use (C2). The focus of this blog is about C1 contract. See detail about Stability Contracts) for CDS Views in the SAP help.
How to check the status of C1 contract (released/unreleased)?
It is possible to check the validity status in Fiori View Browser or ABAP Development Tools(ADT).
After opening the predefined VDM, go Menu: Window > Show View > Properties, and select API Status.
It can be changed from the context menu of the CDS View in ADT: Change API Status > Use System Internally (Contract C1).
But it is regarded as a modification to change it for the standard SAP delivered VDM. It is always the case to change the status for Custom CDS View for using it in Key User Extensibility Tools.
How to deal with the unreleased predefined VDM?
At first, it would help to create Customer Incident to request SAP to release the predefined VDMs you want to use.
For the predefined VDMs which are still not released, there are 2 ways to deal with the unreleased predefined VDMs: 1) not to use them but create custom CDS View instead, 2) use it at customers’ own responsibility.
I discussed this topic with some developers, colleagues in service team and have following personal observations (not official announcement as SAP).
- 2) is better. In option 1, efforts HAVE TO be paid to create custom CDS Views, but in option 2, efforts MIGHT have to be paid only for the predefined views which are changed in newer version when upgrading the system. Possibility to pay effort to some VDMs should be better than mandatory to pay effort for all views.
- In the experience of customers who used unreleased VDMs for custom CDS Views, they had to pay effort to adjust the model when upgrading S/4HANA to 1610 from 1511, but it was not so big effort.
- See also the SAP Note 2540701.
- Copying original standard VDM to create “Custom” CDS View should rather be worse than modifying original VDM like Copying standard source code to create custom program as potential risks would not be detected even when upgrading the system.
- Interface View could be used, but better to avoid using Private View as much as possible. It is reasonably expected that Interface View, especially Basic View, should not be changed so drastically. I_Material is not released. But it is based on MARA and MAKT, and it is reasonably expected that MARA and MAKT should not be changed in the future release, so the predefined VDM based on it should not be changed so drastically. Private View is only a part to create Interface View, but internal design is subject to be changed in the newer version, and in fact some Private Views are changed drastically in the newer version. I think Consumption View is expected to be changed more often than Interface View, but not more often than Private view as it is application specific view. But again, it is personal opinion, not official statement.
If you want to use unreleased predefined VDM in Key User Extensibility Tools like Custom CDS View, Custom Analytical Queries and Custom Business Object, or use it in Analytics Tools like SAC and BusinessObjects, change the status in ADT: Change API Status > Use System Internally (Contract C1) (Above) as in SAP Note 2595552, 2798285 ,2733553.
Hope you enjoy high productivity by using predefined VDM!