CDS_VIEW_CROSSREF_QUERY

DDL: CDS_VIEW_CROSSREF_QUERY SQL: CDSCROSSREFQUERY Type: view

Referenced Objects of CDS View

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.

Data Sources (3)

SourceAliasJoin Type
VB_CDS_CROSSREFERENCE Cds_View_Crossreference from
ddheadanno CDSPrivate left_outer
dd02b dd02b left_outer

Parameters (1)

NameTypeDefault
P_DDLSourceName abap.char( 30 )

Annotations (7)

NameValueLevelField
AbapCatalog.sqlViewName CDSCROSSREFQUERY view
EndUserText.label Referenced Objects of CDS View view
ObjectModel.usageType.dataClass #META view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #NOT_REQUIRED view

Fields (6)

KeyFieldSource TableSource FieldDescription
KEY DDLSourceName VB_CDS_CROSSREFERENCE ObjectDDLSourceName
ReferredObjectDDLSourceName VB_CDS_CROSSREFERENCE ReferredObjectDDLSourceName
ReferredObjectText dd02b strucobjn_raw
ddtextendasReferredObjectDescription
ddtextendasReferredObjectDescSearch
CanNavigateToReferredObject
@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_REQUIRED
define view CDS_VIEW_CROSSREF_QUERY
with parameters 
    P_DDLSourceName : abap.char( 30 )

as select from VB_CDS_CROSSREFERENCE as Cds_View_Crossreference

//inner join ddldependency as DDLSourceNames

//on DDLSourceNames.objectname = Cds_View_Crossreference.SQLViewName

//and DDLSourceNames.objecttype = 'VIEW'

//and DDLSourceNames.ddlname = :P_DDLSourceName

//

//left outer join ddldependency as CDSNames

//on CDSNames.ddlname = Cds_View_Crossreference.ReferredObjectDDLSourceName

//and CDSNames.objecttype = 'STOB' 


// DD02B displays name of the CDS view in the raw camel case format.

left outer join dd02b
on dd02b.strucobjn = Cds_View_Crossreference.ReferredObjectDDLSourceName and dd02b.as4local = 'A'

//This will be used to indentify private view

left outer join 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,
  
  key case
    when Cds_View_Crossreference.ReferredObjectDDLSourceName is null then Cds_View_Crossreference.ReferredObject
    else Cds_View_Crossreference.ReferredObjectDDLSourceName
  end as ReferredObject,
        
  case 
    when 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 is null then 'TABLE'
    when Cds_View_Crossreference.ReferredObjectType = 'VIEW' and Cds_View_Crossreference.ReferredObjectDDLSourceName is not null then 'VIEW'
    else ''
  end as 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
  end as 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)
  end as ReferredObjectDescSearch,
  
  'X' as CanNavigateToReferredObject,
  
  cast ( case when CDSPrivate.value is not null and CDSPrivate.value = 'true'
    then 'X' //Private

    else '' //Not Private

  end  as 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":""
}
}*/