DDCDS_LIST_DIRECT_BASE_ENTITY is a CDS View that provides data about "List direct base entities" in SAP S/4HANA. It reads from 10 data sources and exposes 4 fields with key fields entity_name, state, state, state. Part of development package SD_CDS_INFO_PROVIDER.
--@AbapCatalog.sqlViewName: 'DDCDS_E_DBE'
-- @AbapCatalog.compiler.compareFilter: true@Metadata.ignorePropagatedAnnotations : true@AccessControl.authorizationCheck: #NOT_REQUIRED@EndUserText.label: 'List direct base entities'
// ***********************************************************************************************************//
// This view list the direct base entities of a CDS entity which are part of selectfromor used in the
// Assoc path propagation. Tables used as direct base object are ignored here.
// ***********************************************************************************************************//
defineviewentity DDCDS_LIST_DIRECT_BASE_ENTITY
// ***********************************************************************************************************//
// -1- CDS V2 Entities with V1 and V2 as base entites
// ***********************************************************************************************************//
asselectfrom ddcds_fromclause as from_clause
{
@EndUserText.label: 'Entity Name(Uppercase)'
keycast(from_clause.entity_name asabap.char(30)) as entity_name,
@EndUserText.label: 'Entity State'
keycast(from_clause.as4local asabap.char(1)) as state,
@EndUserText.label: 'Direct Base Entity Name(Uppercase)'
cast(from_clause.base_obj_name asabap.char(30)) as direct_base_entity_name
}
where
from_clause.parameter_name = 'DIRECT_BASE_OBJECT'
and from_clause.base_obj_type = 'STOB'
and from_clause.as4local = 'A'
// ***********************************************************************************************************//
// -2- CDS V1 Views with V1 as base entities
// ***********************************************************************************************************//
unionselectfrom ddldependency as stob_dep
innerjoin ddldependency as view_dep on view_dep.objecttype = 'VIEW'
and view_dep.ddlname = stob_dep.ddlname
and view_dep.state = stob_dep.state
// innerjoin DDCDS_BASE_OBJECTS_V1 as dd2526v on dd2526v.viewname = view_dep.objectname
// and dd2526v.as4local = stob_dep.state
innerjoin dd26s as dd26s on dd26s.viewname = view_dep.objectname
and dd26s.as4local = stob_dep.state
innerjoin ddldependency as view_dep_dbo on view_dep_dbo.objecttype = 'VIEW'
and view_dep_dbo.objectname = dd26s.tabname
and view_dep_dbo.state = dd26s.as4local
innerjoin ddldependency as stob_dep_dbo on stob_dep_dbo.objecttype = 'STOB'
and stob_dep_dbo.ddlname = view_dep_dbo.ddlname
and stob_dep_dbo.state = view_dep_dbo.state
{
keycast(stob_dep.objectname asabap.char(30)) as entity_name,
keycast(stob_dep.state asabap.char(1)) as state,
cast(stob_dep_dbo.objectname asabap.char(30)) as direct_base_entity_name
}
where
stob_dep.objecttype = 'STOB'
and stob_dep.state = 'A'
// ***********************************************************************************************************//
// -3- CDS V1 Views on top of V2 Entities e.g. ViewonViewEntityorViewon Hierachy
// ***********************************************************************************************************//
unionselectfrom ddldependency as stob_dep
innerjoin ddldependency as view_dep on view_dep.objecttype = 'VIEW'
and view_dep.ddlname = stob_dep.ddlname
and view_dep.state = stob_dep.state
// innerjoin DDCDS_BASE_OBJECTS_V1 as dd2526v on dd2526v.viewname = view_dep.objectname
// and dd2526v.as4local = stob_dep.state
innerjoin dd26s as dd26s on dd26s.viewname = view_dep.objectname
and dd26s.as4local = stob_dep.state
innerjoin ddldependency as stob_dep_dbo on stob_dep_dbo.objecttype = 'STOB'
and stob_dep_dbo.objectname = dd26s.tabname
and stob_dep_dbo.state = dd26s.as4local
{
keycast(stob_dep.objectname asabap.char(30)) as entity_name,
keycast(stob_dep.state asabap.char(1)) as state,
cast(stob_dep_dbo.objectname asabap.char(30)) as direct_base_entity_name
}
where
stob_dep.objecttype = 'STOB'
and stob_dep.state = 'A'