CDS_VIEW_CROSSREF_QUERY is a CDS View that provides data about "Referenced Objects of CDS View" in SAP S/4HANA. It reads from 3 data sources (VB_CDS_CROSSREFERENCE, ddheadanno, dd02b) and exposes 6 fields with key field DDLSourceName.
@AbapCatalog.sqlViewName: 'CDSCROSSREFQUERY'
@EndUserText.label: 'Referenced Objects of CDS View'
@ObjectModel.usageType.dataClass: #META@ObjectModel.usageType.serviceQuality: #C@ObjectModel.usageType.sizeCategory: #M@ClientHandling.algorithm: #SESSION_VARIABLE@AccessControl.authorizationCheck: #NOT_REQUIREDdefineview CDS_VIEW_CROSSREF_QUERY
withparameters
P_DDLSourceName : abap.char( 30 )
asselectfrom VB_CDS_CROSSREFERENCE as Cds_View_Crossreference
//innerjoin ddldependency as DDLSourceNames
//on DDLSourceNames.objectname = Cds_View_Crossreference.SQLViewName
//and DDLSourceNames.objecttype = 'VIEW'
//and DDLSourceNames.ddlname = :P_DDLSourceName
//
//leftouterjoin ddldependency as CDSNames
//on CDSNames.ddlname = Cds_View_Crossreference.ReferredObjectDDLSourceName
//and CDSNames.objecttype = 'STOB'
// DD02B displays name of the CDS viewin the raw camel case format.
leftouterjoin dd02b
on dd02b.strucobjn = Cds_View_Crossreference.ReferredObjectDDLSourceName and dd02b.as4local = 'A'
//This will be used to indentify private viewleftouterjoin ddheadanno as CDSPrivate
on CDSPrivate.strucobjn = Cds_View_Crossreference.ReferredObjectDDLSourceName
and CDSPrivate.name = 'VDM.PRIVATE' and CDSPrivate.value = 'true'
{
// key DDLSourceNames.ddlname as DDLSourceName,
key Cds_View_Crossreference.ObjectDDLSourceName as DDLSourceName,
keycasewhen Cds_View_Crossreference.ReferredObjectDDLSourceName isnullthen Cds_View_Crossreference.ReferredObject
else Cds_View_Crossreference.ReferredObjectDDLSourceName
endas ReferredObject,
casewhen Cds_View_Crossreference.ReferredObjectType = 'TRANSP' then 'TABLE'
when Cds_View_Crossreference.ReferredObjectType = 'POOL' then 'TABLE'
when Cds_View_Crossreference.ReferredObjectType = 'CLUSTER' then 'TABLE'
when Cds_View_Crossreference.ReferredObjectType = 'VIEW' and Cds_View_Crossreference.ReferredObjectDDLSourceName isnullthen 'TABLE'
when Cds_View_Crossreference.ReferredObjectType = 'VIEW' and Cds_View_Crossreference.ReferredObjectDDLSourceName isnotnullthen 'VIEW'
else ''
endas ReferredObjectType,
Cds_View_Crossreference.ReferredObjectDDLSourceName,
// Raw Text representation of CDS View Name.
dd02b.strucobjn_raw as ReferredObjectText,
case Cds_View_Crossreference.ReferredObjectType
when 'VIEW' then Cds_View_Crossreference._ReferredViewDescription[ddlanguage = $session.system_language ].ddtext
else Cds_View_Crossreference._ReferredTableDescription[ddlanguage = $session.system_language ].ddtext
endas ReferredObjectDescription,
// Description column - DDLSourceText converted to CAPS to make search on description case insensitive
case Cds_View_Crossreference.ReferredObjectType
when 'VIEW' then upper(Cds_View_Crossreference._ReferredViewDescription[ddlanguage = $session.system_language ].ddtext)
else upper(Cds_View_Crossreference._ReferredTableDescription[ddlanguage = $session.system_language ].ddtext)
endas ReferredObjectDescSearch,
'X' as CanNavigateToReferredObject,
cast ( casewhen CDSPrivate.value isnotnulland CDSPrivate.value = 'true'
then 'X' //Private
else '' //Not Private
endas boolean) as CDSPrivate
} where Cds_View_Crossreference.ObjectDDLSourceName = $parameters.P_DDLSourceName
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"VB_CDS_CROSSREFERENCE",
"DD02B",
"DD02T",
"DDDDLSRCT",
"DDHEADANNO"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/