ddddls_viewstack_union is a CDS View that provides data about "Viewstack Union" in SAP S/4HANA. It reads from 7 data sources and exposes 7 fields with key fields dep_ddlname, dep_name, dep_sql_name, CDS_DDLasdep_ddlname, dep_name.
@EndUserText.label: 'Viewstack Union'
@Metadata.ignorePropagatedAnnotations: truedefineviewentity ddddls_viewstack_union
asselectfrom dd26s
leftouterjoin ddddls_viewstack_object_names as dep_join on dd26s.viewname = dep_join.CDS_DB_VIEW
leftouterjoin ddddls_viewstack_object_names as baseobj_join on dd26s.tabname = baseobj_join.CDS_DB_VIEW
leftouterjoin dd02l as dd02l on dd26s.tabname = dd02l.tabname
{
// dep obj type mapping
// V1 Entities
key dep_join.CDS_DDL as dep_ddlname,
key dep_join.CDS_ENTITY as dep_name,
key dd26s.viewname as dep_sql_name,
// key dep_join.CDS_OBJECT_TYPE as dep_objtype,
keycast( casewhen dep_join.CDS_OBJECT_TYPE isnot initial thencase dep_join.CDS_OBJECT_TYPE
when 'V' then 'STOB'
when 'W' then 'STVE'
when 'A' then 'STAE'
when 'C' then 'STCU'
when 'T' then 'STTF'
when 'P' then 'STPR'
when 'H' then 'STHI'
else dep_join.CDS_OBJECT_TYPE
endelse dd02l.tabclass
endasabap.char(10) ) as dep_objtype,
// datenbankartefakt mitnehmen (v2: gleich entity name, v1: select)
key baseobj_join.CDS_DDL as baseobj_ddlname,
keycasewhen baseobj_join.CDS_ENTITY isnotnullthen baseobj_join.CDS_ENTITY
else dd26s.tabname
endas baseobj_name,
key dd26s.tabname as baseobj_sql_name,
keycast( casewhen baseobj_join.CDS_OBJECT_TYPE isnot initial thencase baseobj_join.CDS_OBJECT_TYPE
when 'V' then 'STOB'
when 'W' then 'STVE'
when 'A' then 'STAE'
when 'C' then 'STCU'
when 'T' then 'STTF'
when 'P' then 'STPR'
when 'H' then 'STHI'
else baseobj_join.CDS_OBJECT_TYPE
endelse dd02l.tabclass
endasabap.char(10) ) as baseobj_objtype
}
unionselectfrom ddcds_fromclause
leftouterjoin ddddls_viewstack_object_names as dep_join on ddcds_fromclause.entity_name = dep_join.CDS_ENTITY
leftouterjoin ddddls_viewstack_object_names as baseobj_join on ddcds_fromclause.base_obj_name = baseobj_join.CDS_ENTITY
{
// V2 Entities
key dep_join.CDS_DDL as dep_ddlname,
key ddcds_fromclause.entity_name as dep_name,
key ddcds_fromclause.entity_name as dep_sql_name,
// key dep_join.CDS_OBJECT_TYPE as dep_objtype,
keycast( casewhen dep_join.CDS_OBJECT_TYPE isnot initial thencase dep_join.CDS_OBJECT_TYPE
when 'V' then 'STOB' //V1
when 'W' then 'STVE' //V2
when 'A' then 'STAE'
when 'C' then 'STCU'
when 'T' then 'STTF'
when 'P' then 'STPR'
when 'H' then 'STHI'
else dep_join.CDS_OBJECT_TYPE
endendasabap.char(10) ) as dep_objtype,
key baseobj_join.CDS_DDL as baseobj_ddlname,
key ddcds_fromclause.base_obj_name as baseobj_name,
// key ddcds_fromclause.base_obj_name as baseobj_sql_name,
key baseobj_join.CDS_DB_VIEW as baseobj_sql_name,
key ddcds_fromclause.base_obj_type as baseobj_objtype
}
where
ddcds_fromclause.parameter_name = 'DIRECT_BASE_OBJECT'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"DDDDLS_VIEWSTACK_OBJECT_NAMES",
"DD02L",
"DD26S",
"DDCDS_FROMCLAUSE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/