ddcds_ddlsource is a CDS View that provides data about "DDL Sources" in SAP S/4HANA. It reads from 6 data sources and exposes 11 fields with key fields ddlname, entity_name, state, entity_name, state. Part of development package SD_CDS_INFO_PROVIDER.
@EndUserText.label: 'DDL Sources'
@Metadata.ignorePropagatedAnnotations: true// parent sources
defineviewentity ddcds_ddlsource
asselectfrom ddddlsrc
innerjoin ddldependency
on ddldependency.ddlname = ddddlsrc.ddlname
and ddldependency.state = ddddlsrc.as4local
and ddldependency.objecttype = 'STOB'
{
keycast(ddddlsrc.ddlname asabap.char(40)) as ddlname,
keycast(ddldependency.objectname asabap.char(30)) as entity_name,
keycast(ddddlsrc.as4local as ddcds_state preserving type) as state,
cast('' asabap.char(40)) as parent_ddlname,
cast(ddddlsrc.source_type as ddcds_ddls_sourcetype preserving type) as source_type,
ddcds_remove_bas_inf_strng(source => ddddlsrc.source) as source
}
where ddddlsrc.parentname is initial
// view extends, source type E
unionallselectfrom ddddlsrc as extend_source
innerjoin ddldependency
on ddldependency.ddlname = extend_source.ddlname
and ddldependency.state = extend_source.as4local
and ddldependency.objecttype = 'STOB'
{
keycast(extend_source.ddlname asabap.char(40)) as ddlname,
keycast(ddldependency.objectname asabap.char(30)) as entity_name,
keycast(extend_source.as4local as ddcds_state preserving type) as state,
cast(extend_source.parentname asabap.char(40)) as parent_ddlname,
cast(extend_source.source_type as ddcds_ddls_sourcetype preserving type) as source_type,
ddcds_remove_bas_inf_strng(source => extend_source.source) as source
}
wherecast(extend_source.source_type as ddcds_ddls_sourcetype preserving type) = ddcds_ddls_sourcetype.#extend_view
// viewentity extends, source type X
unionallselectfrom ddddlsrc as parent_source
innerjoin ddddlsrc as extend_source
on extend_source.parentname = parent_source.ddlname
{
keycast(extend_source.ddlname asabap.char(40)) as ddlname,
keycast('' asabap.char(30)) as entity_name,
keycast(extend_source.as4local as ddcds_state preserving type) as state,
cast(extend_source.parentname asabap.char(40)) as parent_ddlname,
cast(extend_source.source_type as ddcds_ddls_sourcetype preserving type) as source_type,
ddcds_remove_bas_inf_strng(source => extend_source.source) as source
}
wherecast(extend_source.source_type as ddcds_ddls_sourcetype preserving type) = ddcds_ddls_sourcetype.#extend_entity