S/4HANA CDS View Deprecation: What You Need to Know
How SAP deprecates CDS Views in S/4HANA, how to identify deprecated views using VDM lifecycle annotations, and how to find successor views.
What Does Deprecated Mean for CDS Views?
SAP continuously evolves the S/4HANA data model. When a CDS View is no longer the recommended API, SAP marks it as deprecated via VDM lifecycle annotations. A deprecated view still works — it is not deleted immediately — but SAP signals that it will be removed in a future release and that you should migrate to the successor view.
VDM Lifecycle Annotations
SAP uses two key annotations to manage deprecation:
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_NewReplacementView'
| Annotation | Values | Meaning |
|---|---|---|
@VDM.lifecycle.status | #ACTIVE | Current, supported view — safe to use |
| #DEPRECATED | Scheduled for removal — migrate to successor | |
@VDM.lifecycle.successor | View name | The replacement view to migrate to |
Release Contracts and Deprecation
Deprecation interacts with release contracts:
- Released (C1) + Active — Safe to use; SAP guarantees backward compatibility
- Released (C1) + Deprecated — Still works, but will be de-released in a future version; migrate proactively
- Not Released + Deprecated — Can break at any time; migrate immediately
- Not Released + Active — Works but has no stability guarantee; consider using a released alternative
Identifying Deprecated Views
You can find deprecated CDS Views through several methods:
- CDSee Deprecated Page — Browse all deprecated views with their successors at /deprecated
- CDSee Search Filter — Use the deprecation filter in the CDS View search
- ABAP Development Tools (ADT) — Search for
@VDM.lifecycle.status: #DEPRECATEDin Eclipse - Custom Code Analysis — Use transaction SYCM or the Custom Code Migration app to find usage of deprecated views
Common Deprecation Patterns
SAP typically deprecates views for these reasons:
- Naming convention changes — Older views with inconsistent names replaced by properly named successors (e.g., adding the
_2suffix for a revised version) - VDM restructuring — Views moved to a different VDM layer or split into multiple specialized views
- Data model simplification — Views on legacy tables replaced by views on simplified tables (e.g., BSEG-based views replaced by ACDOCA-based views)
- API consolidation — Multiple overlapping views consolidated into a single, richer view
Migration Strategy
- Inventory — Use CDSee's deprecated views page or run a custom code check to list all deprecated views used in your system
- Impact Assessment — For each deprecated view, identify where it is consumed: custom ABAP code, BW extractors, OData services, Fiori app extensions
- Find Successors — Check the
@VDM.lifecycle.successorannotation (visible on CDSee detail pages) for the replacement view - Field Mapping — Compare fields between the deprecated and successor view. Use CDSee's field comparison to identify differences
- Adapt and Test — Replace references in custom code, test thoroughly, and deploy
Example: Deprecated View with Successor
-- Deprecated:
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_JournalEntryItem'
define view I_GLAccountLineItemRawData as select from acdoca { ... }
-- Successor (use this instead):
@VDM.lifecycle.status: #ACTIVE
define view I_JournalEntryItem as select from acdoca { ... }