Guide

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'
AnnotationValuesMeaning
@VDM.lifecycle.status#ACTIVECurrent, supported view — safe to use
#DEPRECATEDScheduled for removal — migrate to successor
@VDM.lifecycle.successorView nameThe 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:

  1. CDSee Deprecated Page — Browse all deprecated views with their successors at /deprecated
  2. CDSee Search Filter — Use the deprecation filter in the CDS View search
  3. ABAP Development Tools (ADT) — Search for @VDM.lifecycle.status: #DEPRECATED in Eclipse
  4. 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 _2 suffix 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

  1. Inventory — Use CDSee's deprecated views page or run a custom code check to list all deprecated views used in your system
  2. Impact Assessment — For each deprecated view, identify where it is consumed: custom ABAP code, BW extractors, OData services, Fiori app extensions
  3. Find Successors — Check the @VDM.lifecycle.successor annotation (visible on CDSee detail pages) for the replacement view
  4. Field Mapping — Compare fields between the deprecated and successor view. Use CDSee's field comparison to identify differences
  5. 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 { ... }

Related Resources